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
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 403
- Fork
- 94
- Merge trung bình
- 2 ngày 17 phút
- Pull request đã merge (30 ngày)
- 121
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/IsaacCapture
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
NVIDIA/IsaacCapture#910 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
NVIDIA/IsaacCapture#891 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
NVIDIA/IsaacCapture#1217 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Release Notes Draft: 1.5Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 20/100
NVIDIA/IsaacCapture#1214 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 50/100
NVIDIA/IsaacCapture#1181 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của NVIDIA/IsaacCapture
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
aws-samples/sample-per-model-bedrock#295 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
pyrevitlabs/pyRevit#3792 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
zephyrproject-rtos/reqmgmt#177 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
polarsource/polar#15580 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[开源推荐] Windows 系统维护工具箱,支持后台任务队列Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
521xueweihan/HelloGitHub#4011 ·