Skip to content

Commit abd3a40

Browse files
committed
Update messages to use index-aligned name, pose, and is_valid arrays
1 parent 343ef5a commit abd3a40

6 files changed

Lines changed: 14 additions & 19 deletions

File tree

examples/teleop_ros2/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ Robot assets are never downloaded by `teleop_ros2_node.py` at runtime.
6060
## Published Topics
6161

6262
- `xr_teleop/hand_left` (`teleop_ros2_interfaces/msg/HandJointPoses`)
63-
- Named left OpenXR hand joint poses; `joints` has 25 entries, each with `name`, `pose`, and `valid`; includes `WRIST`, omits `PALM`
63+
- Named left OpenXR hand joint poses; `name`, `pose`, and `is_valid` each have 25 index-aligned entries; includes `WRIST`, omits `PALM`
6464
- `xr_teleop/hand_right` (`teleop_ros2_interfaces/msg/HandJointPoses`)
65-
- Named right OpenXR hand joint poses; `joints` has 25 entries, each with `name`, `pose`, and `valid`; includes `WRIST`, omits `PALM`
65+
- Named right OpenXR hand joint poses; `name`, `pose`, and `is_valid` each have 25 index-aligned entries; includes `WRIST`, omits `PALM`
6666
- `xr_teleop/ee_pose_left` (`geometry_msgs/PoseStamped`)
6767
- Left hand/controller EE pose; published when the left EE source is active
6868
- `xr_teleop/ee_pose_right` (`geometry_msgs/PoseStamped`)

examples/teleop_ros2/python/integration_tests/teleop_ros2_topic_verifier.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,18 @@ def _unpack_msgpack(msg: ByteMultiArray) -> dict:
5555
def _assert_hand_joint_poses(msg: HandJointPoses) -> None:
5656
if msg.header.frame_id != "world":
5757
raise ValueError(f"unexpected frame_id {msg.header.frame_id!r}")
58-
names = [joint.name for joint in msg.joints]
58+
names = list(msg.name)
5959
if names != _EXPECTED_HAND_POSE_NAMES:
6060
raise ValueError("hand joint pose names do not match the expected order")
6161
if len(set(names)) != len(names):
6262
raise ValueError("hand joint pose names are not unique")
63-
if not any(bool(joint.valid) for joint in msg.joints):
63+
if len(msg.pose) != len(names) or len(msg.is_valid) != len(names):
64+
raise ValueError("hand joint pose arrays differ in length")
65+
if not any(bool(is_valid) for is_valid in msg.is_valid):
6466
raise ValueError("all hand joint poses are invalid")
6567

6668
positions = []
67-
for joint in msg.joints:
68-
pose = joint.pose
69+
for pose in msg.pose:
6970
position = (pose.position.x, pose.position.y, pose.position.z)
7071
orientation = (
7172
pose.orientation.x,

examples/teleop_ros2/python/messages.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from geometry_msgs.msg import Pose, PoseStamped
1212
from scipy.spatial.transform import Rotation
1313
from sensor_msgs.msg import JointState
14-
from teleop_ros2_interfaces.msg import HandJointPose, HandJointPoses
14+
from teleop_ros2_interfaces.msg import HandJointPoses
1515

1616
from isaacteleop.retargeting_engine.interface import OptionalTensorGroup
1717
from isaacteleop.retargeting_engine.tensor_types.indices import (
@@ -240,9 +240,9 @@ def build_hand_msg_from_hand(
240240
pose = apply_transform_to_pose(pose, transform_rot, transform_trans)
241241
else:
242242
pose = to_pose([0.0, 0.0, 0.0])
243-
msg.joints.append(
244-
HandJointPose(name=joint_name, pose=pose, valid=joint_is_valid)
245-
)
243+
msg.name.append(joint_name)
244+
msg.pose.append(pose)
245+
msg.is_valid.append(joint_is_valid)
246246
return msg
247247

248248

examples/teleop_ros2/teleop_ros2_interfaces/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ find_package(rosidl_default_generators REQUIRED)
1010
find_package(std_msgs REQUIRED)
1111

1212
rosidl_generate_interfaces(${PROJECT_NAME}
13-
"msg/HandJointPose.msg"
1413
"msg/HandJointPoses.msg"
1514
DEPENDENCIES
1615
geometry_msgs

examples/teleop_ros2/teleop_ros2_interfaces/msg/HandJointPose.msg

Lines changed: 0 additions & 7 deletions
This file was deleted.

examples/teleop_ros2/teleop_ros2_interfaces/msg/HandJointPoses.msg

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@
33

44
# Named hand joint poses in the same frame.
55
std_msgs/Header header
6-
HandJointPose[] joints
6+
string[] name
7+
geometry_msgs/Pose[] pose
8+
bool[] is_valid

0 commit comments

Comments
 (0)