Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Why jaco_arm/joints_pos shape is (1, 6, 2) and how to do joint position control?

オープン
#489 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
ドキュメント
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
python

調査の方向性

まず、Gymnasium の最小限の例を実行し、lift_large_box_features-v0 について報告される観測およびアクションの仕様を調べます。その環境で使用されている Jaco アームの観測および制御設定を追跡します。jaco_arm/joints_pos の形状が (1, 6, 2) になる理由、それが qpos とどのように関係するか、関節位置制御がサポートされているか、またはどのように設定すべきかを文書化できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

@yuvaltassa @kevinzakka

Hi dm_control developers team,

As the title suggested, I have 2 questions:

  1. For the default manipulation env with kinova jaco arm, why the joint position has 2 dim for each joint for a 6-DoF jaco arm? How to convert this observation to qpos, which has exactly 1 dim per joint?

  2. For the same env, how to turn the torque control to joint position control (control qpos)?

The minimum code is:

import gymnasium as gym
env = gym.make("dm_control/lift_large_box_features-v0", render_mode="rgb_array")
print(env.observation_spec())
print(env.action_spec())

and this gives me:

env.observation_spec(): OrderedDict([
        ('jaco_arm/joints_pos', Array(shape=(1, 6, 2), dtype=dtype('float64'), name='jaco_arm/joints_pos')),
        ('jaco_arm/joints_torque', Array(shape=(1, 6), dtype=dtype('float64'), name='jaco_arm/joints_torque')),
        ('jaco_arm/joints_vel', Array(shape=(1, 6), dtype=dtype('float64'), name='jaco_arm/joints_vel')),
        ('jaco_arm/jaco_hand/joints_pos', Array(shape=(1, 3), dtype=dtype('float64'), name='jaco_arm/jaco_hand/joints_pos')),
        ('jaco_arm/jaco_hand/joints_vel', Array(shape=(1, 3), dtype=dtype('float64'), name='jaco_arm/jaco_hand/joints_vel')),
        ('jaco_arm/jaco_hand/pinch_site_pos', Array(shape=(1, 3), dtype=dtype('float64'), name='jaco_arm/jaco_hand/pinch_site_pos')),
        ('jaco_arm/jaco_hand/pinch_site_rmat', Array(shape=(1, 9), dtype=dtype('float64'), name='jaco_arm/jaco_hand/pinch_site_rmat')),
        ('unnamed_model/angular_velocity', Array(shape=(1, 3), dtype=dtype('float64'), name='unnamed_model/angular_velocity')),
        ('unnamed_model/linear_velocity', Array(shape=(1, 3), dtype=dtype('float64'), name='unnamed_model/linear_velocity')),
        ('unnamed_model/orientation', Array(shape=(1, 4), dtype=dtype('float64'), name='unnamed_model/orientation')),
        ('unnamed_model/position', Array(shape=(1, 3), dtype=dtype('float64'), name='unnamed_model/position')),
    ])

env.action_spec(): (
        BoundedArray(shape=(9,), dtype=dtype('float64'), name='jaco_arm/joint_1\tjaco_arm/joint_2\tjaco_arm/joint_3\tjac
        o_arm/joint_4\tjaco_arm/joint_5\tjaco_arm/joint_6\tjaco_arm/jaco_hand/finger_1\tjaco_arm/jaco_hand/finger_2\tjac
        o_arm/jaco_hand/finger_3', minimum=[-0.62831853 -0.62831853 -0.62831853 -0.83775804 -0.83775804 -0.83775804
         -5.         -5.         -5.        ], maximum=[0.62831853 0.62831853 0.62831853 0.83775804 0.83775804
        0.83775804
         5.         5.         5.        ])
    

by processing info from above we have:

('jaco_arm/joints_pos', Array(shape=(1, 6, 2), dtype=dtype('float64'), name='jaco_arm/joints_pos')),

And I just wonder why it's (1, 6, 2).

主要言語
Python
スター
4.7k
フォーク
765
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

google-deepmind/dm_control のほかの issue

google-deepmind/dm_control の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。