Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de 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

Abierto
#1,173 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
cpp, python
Área
robotics

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
393
Forks
93
Merge medio
2 d 5 h
PR fusionados (30 d)
95

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de NVIDIA/IsaacCapture

Todos los issues de NVIDIA/IsaacCapture

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.