CenterPose visualizer does not show pose axes on Jetson Thor with Isaac ROS 4.5

Hi,

I am testing the Isaac ROS CenterPose quickstart on Jetson Thor with Isaac ROS 4.5.

sudo apt-get install -y ros-jazzy-isaac-ros-centerpose
sudo apt-get install -y ros-jazzy-isaac-ros-examples

I followed the official CenterPose example without modifying the source code:

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py \
  launch_fragments:=centerpose,centerpose_visualizer \
  interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_centerpose/quickstart_interface_specs.json \
  model_name:=centerpose_shoe \
  model_repository_paths:=[${ISAAC_ROS_WS}/isaac_ros_assets/models/triton]

Then I played the provided rosbag:

ros2 bag play -l ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_centerpose/quickstart.bag

and visualized the result using:

ros2 run rqt_image_view rqt_image_view /centerpose/image_visualized

The CenterPose detection itself seems to work correctly. The 3D bounding boxes are displayed around the shoes, as shown in the first attached image.

However, the XYZ pose axes are not displayed.

I also tested the same CenterPose example previously on an AGX platform with Isaac ROS 3.2, without modifying the CenterPose code. In that setup, both the 3D bounding boxes and the RGB XYZ pose axes were displayed correctly, as shown in the second attached image.

Isaac ROS 4.5 on Thor:

  • CenterPose detection works
  • 3D bounding boxes are displayed
  • Pose axes are not displayed

Isaac ROS 3.2 on AGX:

  • CenterPose detection works
  • 3D bounding boxes are displayed
  • Pose axes are displayed correctly

According to the Isaac ROS 4.5 documentation, CenterPoseVisualizerNode still has the show_axes parameter, and its default value is true.

Is there any known change or issue in CenterPoseVisualizerNode between Isaac ROS 3.2 and 4.5, especially on Jetson Thor, that could cause the pose axes not to be rendered?

Is there any additional parameter or configuration required in Isaac ROS 4.5 to enable the axes?

Thank you.

Hello @ray.zheng,

Thanks for reporting this. I was able to reproduce the issue on Jetson Thor with Isaac ROS 4.5. The issue appears to be in the 4.5 CenterPoseVisualizerNode axis keypoint construction path.
The pose data itself is still published correctly on centerpose/detections. The affected part is the RGB axis overlay in centerpose/image_visualized.

As a temporary workaround, you could either get the pose data from centerpose/detections directly or manually apply the below patch in centerose_visualizer_node.cpp to restore the axis visualization.

  --- a/isaac_ros_centerpose/src/centerpose_visualizer_node.cpp
  +++ b/isaac_ros_centerpose/src/centerpose_visualizer_node.cpp
  @@ -206,9 +206,9 @@
       DrawBoundingBox(reprojected_points, bounding_box_color, img);

       if (show_axes) {
  -      Eigen::Vector3f points_3d_cam_mean = points_3d_cam.colwise().mean().transpose();
         Eigen::MatrixXfRM keypoints3d(1 + points_3d_cam.rows(), points_3d_cam.cols());
  -      keypoints3d << points_3d_cam_mean, points_3d_cam;
  +      keypoints3d.row(0) = points_3d_cam.colwise().mean();
  +      keypoints3d.block(1, 0, points_3d_cam.rows(), points_3d_cam.cols()) = points_3d_cam;
         DrawAxes(keypoints3d, camera_matrix_eigen, img);
       }
     }

Note: Please treat this patch as a temporary workaround for unblocking your testing. The official fix should come from a future Isaac ROS source update.