sharpa_avatar: RAW/ROBOT joint names are published as joint_0..joint_21, so name-based consumers (incl. the sharpa_avatar example) read all zeros
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Start at src/plugins/sharpa_avatar/core/avatar_hand_tracking_plugin.cpp:593 and compare the published names with raw_joint_names and robot_joint_names in the pinned SDK configuration referenced by src/plugins/sharpa_avatar/install_avatar_sdk.sh. Read src/core/schema/fbs/joint_state.fbs, joint_state_source.py:111, and the example configuration at live_view.py:48-99. Done means RAW and ROBOT consumers receive the intended stable names or the plugin documentation and example consistently use positional names.
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
With the pinned production Avatar SDK (avatar-sdk 1.7.3-17, production_version in
src/plugins/sharpa_avatar/install_avatar_sdk.sh), avatar_hand_plugin publishes RAW and ROBOT
JointStateOutput frames whose JointState.name values are joint_0 … joint_21. The plugin
forwards the SDK's per-DOF names verbatim
(src/plugins/sharpa_avatar/core/avatar_hand_tracking_plugin.cpp:593):
joint->name = i < hand.joint.name.size() ? hand.joint.name[i] : std::string{};
The schema defines JointState.name as a stable DOF name and the key consumers look joints up by
(src/core/schema/fbs/joint_state.fbs). The reference JointStateSource matches its configured
joint_names against the wire names and fills 0.0 for any name it cannot find
(src/python/isaaccapture/retargeting_engine/deviceio_source_nodes/joint_state_source.py:111).
The sharpa_avatar example configures its RAW/ROBOT JointStateSources with names "copied verbatim
from the pinned production SDK (avatar-sdk 1.7.3-17 share/sdk_config.json)": thumb_CMC_FE,
thumb_CMC_AA, … (examples/sharpa_avatar/python/isaaccapture_examples/sharpa_avatar/live_view.py:48-99,
used at :559). None of them match joint_<i>, so every RAW/ROBOT joint resolves to 0.0 without
any error.
To reproduce
- Install the pinned SDK (
install_avatar_sdk.sh) and build/install the plugin with
-DBUILD_PLUGIN_SHARPA_AVATAR=ON. - Start a
TeleopSessionthat launchesavatar_hand_pluginwith
--datasets=human,raw,robot,hapticand readsavatar_robot_leftwith aJointStateTracker. - Print
[j.name for j in frame.joints]for a received frame.
Expected behavior
Either the SDK/plugin publishes the DOF names from the SDK's sdk_config.json
(raw_joint_names / robot_joint_names), which the example and the schema assume, or the
plugin README/example state that RAW/ROBOT names are positional (joint_<i>) and consumers must
read them by index.
Observed behavior
- RAW and ROBOT names are
joint_0,joint_1, …,joint_21, in index order. - An application configuring
JointStateSourcewith the example's names received no usable
RAW/ROBOT values while the HUMAN hand stream was valid. We did not runlive_view.pyitself; it
uses the sameJointStateSourcemechanism and names. JointStateSourcezero-fills silently on a name mismatch, which makes this hard to notice.
Platforms
- Isaac Teleop Version: main (sharpa_avatar plugin.yaml version 1.1.0)
- Avatar SDK: avatar-sdk 1.7.3-17 (production)
- OS: Ubuntu 22.04
- Integrations: custom TeleopSession pipeline
- XR Device: N/A
- Additional Devices: Sharpa Avatar gloves
Additional context
Possible fixes: have the SDK fill Joint.name from its config, or keep a pinned RAW/ROBOT name
table in the plugin (as src/plugins/sharpa_avatar/AGENTS.md already requires for the
HUMAN→OpenXR table and the example's name snapshots) and publish those names.
- 主要言語
- Python
- スター
- 435
- フォーク
- 105
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 166
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA/IsaacCapture のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
NVIDIA/IsaacCapture#1421 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
NVIDIA/IsaacCapture#910 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
NVIDIA/IsaacCapture#891 ·
メンテナーはふだん 1 日以内に返信
-
HandTracker: sample timestamps of hands injected via push devices are lost; MCAP `sample_time` is the query time対応中かも @nv-jakob が 7 日前に担当しました。 オープン
NVIDIA/IsaacCapture#1382 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
cloudxr: possible exec race in background.start_and_wait() (needs owner triage)対応中かも @nv-jakob が 8 日前に担当しました。 オープンNVIDIA
NVIDIA/IsaacCapture#1378 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
NVIDIA/IsaacCapture の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
jejjohnson/gaussx#752 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
521xueweihan/HelloGitHub#4270 ·
-
enhancement owner: den-haag
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
メンテナーはふだん 6 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
ok-oldking/ok-wuthering-waves#1828 ·
メンテナーはふだん 1 日以内に返信
-
lesson-submission pending-review
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
Ikalus1988/MisakaNet#4512 ·
メンテナーはふだん 1 日以内に返信