Why jaco_arm/joints_pos shape is (1, 6, 2) and how to do joint position control?
まだ誰も着手していません。
評価
- 難易度
- 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:
-
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? -
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 はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
google-deepmind/dm_control のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
google-deepmind/dm_control#552 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
google-deepmind/dm_control#540 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
google-deepmind/dm_control#537 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
google-deepmind/dm_control#529 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
google-deepmind/dm_control#527 · コメント 1 件 ·
google-deepmind/dm_control の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
anthropics/skills#1811 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
speaches-ai/speaches#678 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
datalayer/mcp-compose#42 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
conda-forge/spacy-feedstock#177 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
UKGovernmentBEIS/inspect_evals#2523 ·