Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#1,173 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
cpp, python
Lĩnh vực
robotics

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

  1. Install the pinned SDK (install_avatar_sdk.sh) and build/install the plugin with
    -DBUILD_PLUGIN_SHARPA_AVATAR=ON.
  2. Start a TeleopSession that launches avatar_hand_plugin with
    --datasets=human,raw,robot,haptic and reads avatar_robot_left with a JointStateTracker.
  3. 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 JointStateSource with the example's names received no usable
    RAW/ROBOT values while the HUMAN hand stream was valid. We did not run live_view.py itself; it
    uses the same JointStateSource mechanism and names.
  • JointStateSource zero-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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của NVIDIA/IsaacCapture

Tất cả issue của NVIDIA/IsaacCapture

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.