Hi there!
I am running Isaac Sim with ROS bridge on a container, looks ok.
-
I downloaded the Isaac Examples → ROS2 → Isaac ROS → Sample Scene.
-
I then run the Dev Contanier with Visual Slam using the
run_dev.sh
script and launch the visual slam node usingros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_isaac_sim.launch.py
. -
On the dev container, I can see the simulation and vslam node publishing the topics:
/back_stereo_imu/imu
/chassis/imu
/chassis/odom
/clicked_point
/clock
/cmd_vel
/front_3d_lidar/lidar_points
/front_stereo_camera/left/camera_info
/front_stereo_camera/left/image_rect_color
/front_stereo_camera/right/camera_info
/front_stereo_camera/right/image_rect_color
/front_stereo_imu/imu
/goal_pose
/initialpose
/left_stereo_imu/imu
/parameter_events
/right_stereo_imu/imu
/rosout
/tf
/tf_static
/visual_slam/tracking/odometry
/visual_slam/tracking/slam_path
/visual_slam/tracking/vo_path
/visual_slam/vis/gravity
/visual_slam/vis/gravity_array
/visual_slam/vis/landmarks_cloud
/visual_slam/vis/loop_closure_cloud
/visual_slam/vis/observations_cloud
/visual_slam/vis/pose_graph_edges
/visual_slam/vis/pose_graph_edges2
/visual_slam/vis/pose_graph_edges2_array
/visual_slam/vis/pose_graph_edges_array
/visual_slam/vis/pose_graph_nodes
/visual_slam/vis/velocity
-
I also run rviz2 with the configurations from
isaac_sim.cfg.rviz
, setting the Global Options → Fixed Frame tobase_link
, I see the cameras streaming and the robot moving. -
Expanding
TF
I seeStatus: OK
, and all components showsTransform OK
.
-
Listening to the
/tf
topic also shows the TF are properly published:
$ ros2 topic echo /tf I see proper publishing of TFs
transforms:
- header:
stamp:
sec: 1
nanosec: 616666750
frame_id: odom
child_frame_id: base_link
transform:
translation:
x: 0.0016629675261941293
y: -8.179422032922156e-08
z: -2.621147083945744e-06
rotation:
x: -4.6947013650158655e-07
y: 7.45005632965058e-08
z: -7.991802979175412e-07
w: 0.9999999999995677
---
transforms:
- header:
stamp:
sec: 1
nanosec: 616666750
frame_id: base_link
child_frame_id: chassis_link
transform:
translation:
x: 0.0
y: 0.0
z: -0.0
rotation:
x: -8.222087899412145e-09
y: -1.6094709280878305e-05
z: -2.8014255804009736e-07
w: 1.0000001192092896
---
transforms:
- header:
stamp:
sec: 1
nanosec: 616666750
frame_id: base_link
child_frame_id: front_stereo_camera_right_optical
transform:
translation:
x: 0.10030002892017365
y: -0.07500199973583221
z: 0.3459000587463379
rotation:
x: 0.5
y: -0.5
z: 0.4999999701976776
w: -0.4999999701976776
- header:
stamp:
sec: 1
nanosec: 616666750
frame_id: base_link
child_frame_id: front_stereo_camera_left_optical
transform:
translation:
x: 0.10030005127191544
y: 0.07499799877405167
z: 0.3459000587463379
rotation:
x: 0.5
y: -0.5
z: 0.4999999701976776
w: -0.4999999701976776
- header:
stamp:
sec: 1
nanosec: 616666750
frame_id: base_link
child_frame_id: front_stereo_camera_imu
So where is the problem you ask??
For some reason, and after all the verifications above about proper TF configurations, the visual slam node says:
$ ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_isaac_sim.launch.py
[INFO] [launch]: All log files can be found below /home/admin/.ros/log/2024-07-24-13-34-30-665284-Ubuntu-22-31266
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container-1]: process started with pid [31276]
[component_container-1] [INFO] [1721817270.959576961] [visual_slam_launch_container]: Load Library: /workspaces/isaac_ros-dev/install/isaac_ros_visual_slam/lib/libvisual_slam_node.so
[component_container-1] [INFO] [1721817270.998213558] [visual_slam_launch_container]: Found class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::visual_slam::VisualSlamNode>
[component_container-1] [INFO] [1721817270.998256909] [visual_slam_launch_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::visual_slam::VisualSlamNode>
[component_container-1] [INFO] [1721817271.004584547] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/std/libgxf_std.so
[component_container-1] [INFO] [1721817271.007748567] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_gxf_helpers.so
[component_container-1] [INFO] [1721817271.009934256] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_sight.so
[component_container-1] [INFO] [1721817271.012228678] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_atlas.so
[component_container-1] 2024-07-24 13:34:31.019 WARN external/com_nvidia_gxf/gxf/std/program.cpp@532: No GXF scheduler specified.
[component_container-1] [INFO] [1721817271.019751976] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/multimedia/libgxf_multimedia.so
[component_container-1] [INFO] [1721817271.023287444] [visual_slam_node.ManagedNitrosSubscriber]: Starting Managed Nitros Subscriber
[component_container-1] [INFO] [1721817271.023872940] [visual_slam_node.ManagedNitrosSubscriber]: Starting Managed Nitros Subscriber
[component_container-1] [INFO] [1721817271.031796809] [visual_slam_node]: cuVSLAM version: 12.2
[component_container-1] [INFO] [1721817271.086209433] [visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 0.054394
[component_container-1] [INFO] [1721817271.091074493] [visual_slam_node]: Initializing cuVSLAM.
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/visual_slam_node' in container '/visual_slam_launch_container'
[component_container-1] [ERROR] [1721817271.182657839] [visual_slam_node]: Transform is impossible. canTransform(base_link->front_stereo_camera_left_optical) returns false
[component_container-1] [INFO] [1721817278.169419587] [visual_slam_node]: Could not transform front_stereo_camera_left_optical to base_link: Lookup would require extrapolation into the past. Requested time 64.766670 but the earliest data is at time 64.783337, when looking up transform from frame [front_stereo_camera_left_optical] to frame [base_link]
[component_container-1] terminate called after throwing an instance of 'std::runtime_error'
[component_container-1] what(): Could not find the requested transform!
[ERROR] [component_container-1]: process has died [pid 31276, exit code -6, cmd '/opt/ros/humble/lib/rclcpp_components/component_container --ros-args -r __node:=visual_slam_launch_container -r __ns:=/'].
It says [visual_slam_node]: Transform is impossible. canTransform(base_link->front_stereo_camera_left_optical) returns false
and [component_container-1] [INFO] [1721817278.169419587] [visual_slam_node]: Could not transform front_stereo_camera_left_optical to base_link ...
What is wrong here?
Thank you!