NVIDIA-ISAAC-ROS / isaac_ros_visual_slam

Visual SLAM/odometry package based on NVIDIA-accelerated cuVSLAM
https://developer.nvidia.com/isaac-ros-gems
Apache License 2.0
816 stars 126 forks source link

In WSL2 with Docker - ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam.launch.py starts but nothing shows in RViz #117

Closed Twenkid closed 7 months ago

Twenkid commented 9 months ago

Hi. I’m trying to run Isaac ROS Visual SLAM on WSL2/Win10, Ubuntu 22.04, ROS2 humble with docker from the Quickstart tutorial on github:

GitHub - NVIDIA-ISAAC-ROS/isaac_ros_visual_slam: Visual odometry package based on hardware-accelerated NVIDIA Elbrus library with world class quality and performance.

and I managed to run the three commands inside the containers (in my case I edited the docker run call with --gpus all for runtime, because it didn't run with the original syntax "nvidia" - if that could be the problem? (with nvidia it couldn't find it although it's defined in the .json file as default)

That's the original docker call from /isaac_ros_common/scripts/run_dev.sh:

docker run -it --rm \
    --privileged \
    --network host \
    ${DOCKER_ARGS[@]} \
    -v $ISAAC_ROS_DEV_DIR:/workspaces/isaac_ros-dev \
    -v /dev/*:/dev/* \
    -v /etc/localtime:/etc/localtime:ro \
    --name "$CONTAINER_NAME" \
    --runtime nvidia \
    --user="admin" \
    --entrypoint /usr/local/bin/scripts/workspace-entrypoint.sh \
    --workdir /workspaces/isaac_ros-dev \
    $@ \
    $BASE_NAME \
    /bin/bash

This is mine:

 docker run -it --rm \
    --privileged \
    --network host \
    ${DOCKER_ARGS[@]} \
    -v $ISAAC_ROS_DEV_DIR:/workspaces/isaac_ros-dev \
    -v /dev/*:/dev/* \
    -v /etc/localtime:/etc/localtime:ro \
    --name "$CONTAINER_NAME" \
    --gpus all \
    --user="admin" \
    --entrypoint /usr/local/bin/scripts/workspace-entrypoint.sh \
    --workdir /workspaces/isaac_ros-dev \
    $@ \
    $BASE_NAME \
    /bin/bash

I run the ros2 launch, ros bag, Rviz and ros2 topic list shows the topics (however ros2 topic echo … doesn’t show data on what I tested).

However I can’t make Rviz display data streams. Sometimes the visual_slam node crashes after sending some of the rosbag messages, either normal play or stepping with pause. Also there is an error in the colcon test, something about the ros bag, see below:

“[component_container-1] [INFO] [1694991878.030846786] [visual_slam_node]: left_pose_right reading from CameraInfo [component_container-1] [INFO] [1694991878.030933786] [visual_slam_node]: Baseline is : 0.119973 [component_container-1] [INFO] [1694991878.030961786] [visual_slam_node]: Use use_gpu: true [component_container-1] [INFO] [1694991878.030970386] [visual_slam_node]: Enable IMU Fusion: false [ERROR] [component_container-1]: process has died [pid 60612, exit code -6, cmd ‘/opt/ros/humble/install/lib/rclcpp_components/component_container --ros-args -r __node:=visual_slam_launch_container -r __ns:=/’].”

A run without a crash:

admin@docker-desktop:/workspaces/isaac_ros-dev$ ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam.launch.py [INFO] [launch]: All log files can be found below /home/admin/.ros/log/2023-09-18-02-45-28-586828-docker-desktop-60821 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [component_container-1]: process started with pid [60832] [component_container-1] [INFO] [1694994328.983372297] [visual_slam_launch_container]: Load Library: /workspaces/isaac_ros-dev/install/isaac_ros_visual_slam/lib/libvisual_slam_node.so [component_container-1] [INFO] [1694994329.077823602] [visual_slam_launch_container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-1] [INFO] [1694994329.077909502] [visual_slam_launch_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate [component_container-1] [INFO] [1694994329.107644204] [visual_slam_node]: cuVSLAM version: 11.0 [component_container-1] [INFO] [1694994329.737315939] [visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 0.629579 [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node ‘/visual_slam_node’ in container ‘/visual_slam_launch_container’

The ros bag:

admin@docker-desktop:/workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/test_cases/rosbags/s st/test_cases/rosbags/small_pol_test$ ros2 bag play . [INFO] [1694994333.512453554] [rosbag2_storage]: Opened database ‘./small_pol_test_0.db3’ for READ_ONLY. [INFO] [1694994333.512532254] [rosbag2_player]: Set rate to 1 [INFO] [1694994333.525553355] [rosbag2_player]: Adding keyboard callbacks. [INFO] [1694994333.525618355] [rosbag2_player]: Press SPACE for Pause/Resume [INFO] [1694994333.525649155] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message [INFO] [1694994333.525659055] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10% [INFO] [1694994333.525696155] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10% [INFO] [1694994333.526117055] [rosbag2_storage]: Opened database ‘./small_pol_test_0.db3’ for READ_ONLY. [INFO] [1694994333.730491466] [rosbag2_player]: Set rate to 1.1 [INFO] [1694994335.264625650] [rosbag2_player]: Pausing play. [INFO] [1694994336.427604508] [rosbag2_player]: Playing next message. [INFO] [1694994336.842728029] [rosbag2_player]: Playing next message. [INFO] [1694994355.713989050] [rosbag2_player]: Playing next message. [INFO] [1694994356.377952574] [rosbag2_player]: Playing next message. [INFO] [1694994356.626903483] [rosbag2_player]: Playing next message. [INFO] [1694994356.819417589] [rosbag2_player]: Playing next message.

RViz:

admin@docker-desktop:/workspaces/isaac_ros-dev$ source /workspaces/isaac_ros-dev/install/setup.bash && rviz2 -d src/isaac_ros_visual_slam/isaac_ros_visual_slam/rviz/default.cfg.rviz QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-admin’ [INFO] [1694994421.281468627] [rviz2]: Stereo is NOT SUPPORTED [INFO] [1694994421.281609827] [rviz2]: OpenGl version: 3.1 (GLSL 1.4) [INFO] [1694994421.359709827] [rviz2]: Stereo is NOT SUPPORTED

image

The tests after the building returned an error, could it be just a bad ros bag? Once I did git lfs pull and it reloaded some of the files (due to interrupted installs). Is this a normal state of the folder?

admin@docker-desktop:/workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/test_cases/rosbags/small_pol_test$

-rw-r–r-- 1 admin admin 2295 Sep 17 22:43 metadata.yaml -rw-r–r-- 1 admin admin 335986688 Sep 17 22:45 small_pol_test_0.db3 -rw-r–r-- 1 admin admin 32768 Sep 17 22:43 small_pol_test_0.db3-shm -rw-r–r-- 1 admin admin 0 Sep 17 22:43 small_pol_test_0.db3-wal

Now it shows the repo is up to date: :~/workspaces/isaac_ros-dev/src/isaac_ros_visual_slam$ git pull Already up to date.

The files seem as in github as of their size.

admin@docker-desktop:/workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/test_cases/rosbags/small_pol_test$ ros2 bag play . [INFO] [1694980094.881163931] [rosbag2_storage]: Opened database ‘./small_pol_test_0.db3’ for READ_ONLY. [INFO] [1694980094.881298331] [rosbag2_player]: Set rate to 1 [INFO] [1694980094.893504134] [rosbag2_player]: Adding keyboard callbacks. [INFO] [1694980094.893554634] [rosbag2_player]: Press SPACE for Pause/Resume [INFO] [1694980094.893577634] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message [INFO] [1694980094.893592334] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10% [INFO] [1694980094.893606934] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10% [INFO] [1694980094.894067234] [rosbag2_storage]: Opened database ‘./small_pol_test_0.db3’ for READ_ONLY.

The build error from the logs:

89% tests passed, 1 tests failed out of 9

Label Time Summary: copyright = 3.03 secproc (1 test) cppcheck = 0.27 secproc (1 test) cpplint = 1.11 secproc (1 test) flake8 = 0.86 secproc (1 test) launch_test = 14.92 secproc (1 test) lint_cmake = 0.16 secproc (1 test) linter = 7.55 secproc (8 tests) pep257 = 0.26 secproc (1 test) uncrustify = 0.31 secproc (1 test) xmllint = 1.54 secproc (1 test)

Total Test time (real) = 22.47 sec

test 1 Start 1: test_isaac_ros_visual_slam_pol.py

1: Test command: /usr/bin/python3.8 “-u” “/opt/ros/humble/install/share/ament_cmake_test/cmake/run_test.py” “/workspaces/isaac_ros-dev/build/isaac_ros_visual_slam/test_results/isaac_ros_visual_slam/test_isaac_ros_visual_slam_pol.py.xunit.xml” “–package-name” “isaac_ros_visual_slam” “–output-file” “/workspaces/isaac_ros-dev/build/isaac_ros_visual_slam/launch_test/test_isaac_ros_visual_slam_pol.py.txt” “–command” “/usr/bin/python3” “-m” “launch_testing.launch_test” “/workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/isaac_ros_visual_slam_pol.py” “–junit-xml=/workspaces/isaac_ros-dev/build/isaac_ros_visual_slam/test_results/isaac_ros_visual_slam/test_isaac_ros_visual_slam_pol.py.xunit.xml” “–package-name=isaac_ros_visual_slam” 1: Working Directory: /workspaces/isaac_ros-dev/build/isaac_ros_visual_slam 1: Test timeout computed to be: 60 1: – run_test.py: invoking following command in ‘/workspaces/isaac_ros-dev/build/isaac_ros_visual_slam’: 1: - /usr/bin/python3 -m launch_testing.launch_test /workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/isaac_ros_visual_slam_pol.py --junit-xml=/workspaces/isaac_ros-dev/build/isaac_ros_visual_slam/test_results/isaac_ros_visual_slam/test_isaac_ros_visual_slam_pol.py.xunit.xml --package-name=isaac_ros_visual_slam 1: [INFO] [launch]: All log files can be found below /home/admin/.ros/log/2023-09-18-03-01-33-188043-docker-desktop-61011 1: [INFO] [launch]: Default logging verbosity is set to INFO 1: [INFO] [component_container-1]: process started with pid [61029] 1: [INFO] [ros2-2]: process started with pid [61031] 1: [component_container-1] [INFO] [1694995293.532268805] [visual_slam_container]: Load Library: /workspaces/isaac_ros-dev/install/isaac_ros_visual_slam/lib/libvisual_slam_node.so 1: [component_container-1] [INFO] [1694995293.637919205] [visual_slam_container]: Found class: rclcpp_components::NodeFactoryTemplate 1: [component_container-1] [INFO] [1694995293.637996105] [visual_slam_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate 1: [component_container-1] [INFO] [1694995293.665533506] [isaac_ros_test.visual_slam_test.visual_slam_node]: cuVSLAM version: 11.0 1: [ros2-2] stdin is not a terminal device. Keyboard handling disabled.[INFO] [1694995293.686868506] [rosbag2_storage]: Opened database ‘/workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/test_cases/rosbags/small_pol_test/small_pol_test_0.db3’ for READ_ONLY. 1: [ros2-2] [INFO] [1694995293.686957706] [rosbag2_player]: Set rate to 1 1: [ros2-2] [INFO] [1694995293.698917106] [rosbag2_player]: Adding keyboard callbacks. 1: [ros2-2] [INFO] [1694995293.698989306] [rosbag2_player]: Press SPACE for Pause/Resume 1: [ros2-2] [INFO] [1694995293.699000606] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message 1: [ros2-2] [INFO] [1694995293.699009606] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10% 1: [ros2-2] [INFO] [1694995293.699017206] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10% 1: [ros2-2] [INFO] [1694995293.699584206] [rosbag2_storage]: Opened database ‘/workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/test_cases/rosbags/small_pol_test/small_pol_test_0.db3’ for READ_ONLY. 1: [component_container-1] [INFO] [1694995294.312104910] [isaac_ros_test.visual_slam_test.visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 0.646491 1: [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node ‘/isaac_ros_test/visual_slam_test/visual_slam_node’ in container ‘/visual_slam_container’ 1: test_visual_slam_node (isaac_ros_visual_slam.IsaacROSVisualSlamTest) … [INFO] [1694995295.387861017] [isaac_ros_test.isaac_ros_base_test_node]: Starting test for case: /workspaces/isaac_ros-dev/src/isaac_ros_visual_slam/isaac_ros_visual_slam/test/test_cases/rosbags/small_pol_test 1: [component_container-1] [INFO] [1694995296.220361099] [isaac_ros_test.visual_slam_test.visual_slam_node]: left_pose_right reading from CameraInfo 1: [component_container-1] [INFO] [1694995296.220510699] [isaac_ros_test.visual_slam_test.visual_slam_node]: Baseline is : 0.119973 1: [component_container-1] [INFO] [1694995296.220587299] [isaac_ros_test.visual_slam_test.visual_slam_node]: Use use_gpu: true 1: [component_container-1] [INFO] [1694995296.220612299] [isaac_ros_test.visual_slam_test.visual_slam_node]: Enable IMU Fusion: false 1: [ERROR] [component_container-1]: process has died [pid 61029, exit code -6, cmd ‘/opt/ros/humble/install/lib/rclcpp_components/component_container --ros-args -r node:=visual_slam_container -r ns:=/’]. 1: [INFO] [ros2-2]: process has finished cleanly [pid 61031] 1: Processes under test stopped before tests completed 1: Process ‘component_container-1’ exited with -6 1: ##### ‘component_container-1’ output ##### 1: [INFO] [1694995293.532268805] [visual_slam_container]: Load Library: /workspaces/isaac_ros-dev/install/isaac_ros_visual_slam/lib/libvisual_slam_node.so 1: 1: [INFO] [1694995293.637919205] [visual_slam_container]: Found class: rclcpp_components::NodeFactoryTemplate 1: [INFO] [1694995293.637996105] [visual_slam_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate 1: 1: [INFO] [1694995293.665533506] [isaac_ros_test.visual_slam_test.visual_slam_node]: cuVSLAM version: 11.0 1: 1: [INFO] [1694995294.312104910] [isaac_ros_test.visual_slam_test.visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 0.646491 1: 1: [INFO] [1694995296.220361099] [isaac_ros_test.visual_slam_test.visual_slam_node]: left_pose_right reading from CameraInfo 1: [INFO] [1694995296.220510699] [isaac_ros_test.visual_slam_test.visual_slam_node]: Baseline is : 0.119973 1: [INFO] [1694995296.220587299] [isaac_ros_test.visual_slam_test.visual_slam_node]: Use use_gpu: true 1: [INFO] [1694995296.220612299] [isaac_ros_test.visual_slam_test.visual_slam_node]: Enable IMU Fusion: false 1: 1: ########################################## 1: terminate called without an active exception 1: – run_test.py: return code -6 1: – run_test.py: verify result file ‘/workspaces/isaac_ros-dev/build/isaac_ros_visual_slam/test_results/isaac_ros_visual_slam/test_isaac_ros_visual_slam_pol.py.xunit.xml’ 1/9 Test #1: test_isaac_ros_visual_slam_pol.py …***Failed 14.92 sec (sorry for the edits: an accidental prss of a key)

I just the Troubleshooting page on _common but I didn't detect an appropriate solution. The main page of the visual_slam repo mentions the Fixed Frame for Rviz, but the RViz option is only "map". What should be entered there?

Thanks

Twenkid commented 9 months ago

I just built it again, building returns no errors, but testing returns an error from isaac_ros_visual_slam:

admin@docker-desktop:/workspaces/isaac_ros-dev$  colcon build --symlink-install
Starting >>> isaac_ros_common
Starting >>> isaac_ros_test
Finished <<< isaac_ros_common [1.23s]
Starting >>> isaac_ros_gxf
Starting >>> isaac_ros_nitros_interfaces
Starting >>> isaac_ros_apriltag_interfaces
Finished <<< isaac_ros_test [2.60s]
Starting >>> isaac_ros_pointcloud_interfaces
Finished <<< isaac_ros_gxf [1.68s]
Starting >>> isaac_ros_tensor_list_interfaces
Finished <<< isaac_ros_nitros_interfaces [4.43s]
Starting >>> isaac_ros_nitros
Finished <<< isaac_ros_pointcloud_interfaces [3.79s]
Starting >>> isaac_ros_visual_slam_interfaces
Finished <<< isaac_ros_apriltag_interfaces [5.22s]
Starting >>> isaac_ros_bi3d_interfaces
Finished <<< isaac_ros_nitros [2.77s]
Starting >>> isaac_ros_nitros_april_tag_detection_array_type
Finished <<< isaac_ros_tensor_list_interfaces [5.92s]
Starting >>> isaac_ros_nitros_camera_info_type
Finished <<< isaac_ros_bi3d_interfaces [3.74s]
Starting >>> isaac_ros_nitros_compressed_image_type
Finished <<< isaac_ros_nitros_april_tag_detection_array_type [1.90s]
Starting >>> isaac_ros_nitros_detection2_d_array_type
Finished <<< isaac_ros_nitros_camera_info_type [1.60s]
Starting >>> isaac_ros_nitros_disparity_image_type
Finished <<< isaac_ros_nitros_compressed_image_type [1.57s]
Starting >>> isaac_ros_nitros_flat_scan_type
Finished <<< isaac_ros_nitros_disparity_image_type [1.50s]
Starting >>> isaac_ros_nitros_image_type
Finished <<< isaac_ros_nitros_detection2_d_array_type [1.93s]
Starting >>> isaac_ros_nitros_imu_type
Finished <<< isaac_ros_nitros_image_type [1.58s]
Starting >>> isaac_ros_nitros_occupancy_grid_type
Finished <<< isaac_ros_nitros_flat_scan_type [1.76s]
Starting >>> isaac_ros_nitros_point_cloud_type
Finished <<< isaac_ros_nitros_imu_type [1.60s]
Starting >>> isaac_ros_nitros_pose_array_type
Finished <<< isaac_ros_visual_slam_interfaces [8.38s]
Starting >>> isaac_ros_nitros_pose_cov_stamped_type
Finished <<< isaac_ros_nitros_occupancy_grid_type [1.78s]
Starting >>> isaac_ros_nitros_std_msg_type
Finished <<< isaac_ros_nitros_point_cloud_type [1.79s]
Starting >>> isaac_ros_nitros_tensor_list_type
Finished <<< isaac_ros_nitros_pose_array_type [1.80s]
Starting >>> isaac_ros_visual_slam
Finished <<< isaac_ros_nitros_pose_cov_stamped_type [1.81s]
Finished <<< isaac_ros_nitros_std_msg_type [1.60s]
Finished <<< isaac_ros_nitros_tensor_list_type [1.58s]
Finished <<< isaac_ros_visual_slam [1.96s]

Summary: 25 packages finished [18.0s]
admin@docker-desktop:/workspaces/isaac_ros-dev$ ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam.launch.py^C
admin@docker-desktop:/workspaces/isaac_ros-dev$   source install/setup.bash
admin@docker-desktop:/workspaces/isaac_ros-dev$
admin@docker-desktop:/workspaces/isaac_ros-dev$
admin@docker-desktop:/workspaces/isaac_ros-dev$ colcon test --executor sequential
Starting >>> isaac_ros_common
Finished <<< isaac_ros_common [2.38s]
Starting >>> isaac_ros_test
Finished <<< isaac_ros_test [14.9s]
Starting >>> isaac_ros_apriltag_interfaces
Finished <<< isaac_ros_apriltag_interfaces [1.14s]
Starting >>> isaac_ros_bi3d_interfaces
Finished <<< isaac_ros_bi3d_interfaces [1.14s]
Starting >>> isaac_ros_gxf
Finished <<< isaac_ros_gxf [1.43s]
Starting >>> isaac_ros_nitros_interfaces
Finished <<< isaac_ros_nitros_interfaces [0.90s]
Starting >>> isaac_ros_pointcloud_interfaces
Finished <<< isaac_ros_pointcloud_interfaces [0.90s]
Starting >>> isaac_ros_tensor_list_interfaces
Finished <<< isaac_ros_tensor_list_interfaces [1.17s]
Starting >>> isaac_ros_visual_slam_interfaces
Finished <<< isaac_ros_visual_slam_interfaces [1.13s]
Starting >>> isaac_ros_nitros
Finished <<< isaac_ros_nitros [8.78s]
Starting >>> isaac_ros_nitros_april_tag_detection_array_type
Finished <<< isaac_ros_nitros_april_tag_detection_array_type [8.12s]
Starting >>> isaac_ros_nitros_camera_info_type
Finished <<< isaac_ros_nitros_camera_info_type [8.01s]
Starting >>> isaac_ros_nitros_compressed_image_type
Finished <<< isaac_ros_nitros_compressed_image_type [8.00s]
Starting >>> isaac_ros_nitros_detection2_d_array_type
Finished <<< isaac_ros_nitros_detection2_d_array_type [8.22s]
Starting >>> isaac_ros_nitros_disparity_image_type
Finished <<< isaac_ros_nitros_disparity_image_type [8.03s]
Starting >>> isaac_ros_nitros_flat_scan_type
Finished <<< isaac_ros_nitros_flat_scan_type [8.14s]
Starting >>> isaac_ros_nitros_image_type
Finished <<< isaac_ros_nitros_image_type [7.09s]
Starting >>> isaac_ros_nitros_imu_type
Finished <<< isaac_ros_nitros_imu_type [6.93s]
Starting >>> isaac_ros_nitros_occupancy_grid_type
Finished <<< isaac_ros_nitros_occupancy_grid_type [8.00s]
Starting >>> isaac_ros_nitros_point_cloud_type
Finished <<< isaac_ros_nitros_point_cloud_type [22.9s]
Starting >>> isaac_ros_nitros_pose_array_type
Finished <<< isaac_ros_nitros_pose_array_type [6.96s]
Starting >>> isaac_ros_nitros_pose_cov_stamped_type
Finished <<< isaac_ros_nitros_pose_cov_stamped_type [8.03s]
Starting >>> isaac_ros_nitros_std_msg_type
Finished <<< isaac_ros_nitros_std_msg_type [7.91s]
Starting >>> isaac_ros_nitros_tensor_list_type
Finished <<< isaac_ros_nitros_tensor_list_type [9.10s]
Starting >>> isaac_ros_visual_slam
--- stderr: isaac_ros_visual_slam
Errors while running CTest
Output from these tests are in: /workspaces/isaac_ros-dev/build/isaac_ros_visual_slam/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
---
Finished <<< isaac_ros_visual_slam [21.4s]      [ with test failures ]

Summary: 25 packages finished [3min 1s]
  1 package had stderr output: isaac_ros_visual_slam
  1 package had test failures: isaac_ros_visual_slam
swapnesh-wani-nvidia commented 9 months ago

Hello, thank you for reaching out.

For --runtime nvidia flag not working, could you confirm that step 1 of Quickstart section is done? Also, what is the version of docker that you are running on Ubuntu 22.04 (inside WSL)?

For the crash, are you observing it instantaneously or after a few seconds? Are you seeing any output on the visual_slam/tracking/odometry topic?

Twenkid commented 9 months ago

Hi, thanks for the comment and the suggestions!

I installed the repos there: ~/workspaces/isaac_ros-dev$

Also:

echo $ISAAC_ROS_WS

points there.

 docker --version
Docker version 24.0.6, build ed223bc

Re docker, I read contradicting suggestions, some people advice to turn off the service in WSL as Windows is translating it from the Windows Desktop version.

It is running now:

sudo systemctl status docker status docker ... ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2023-09-17 21:52:16 EEST; 2 days ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 12626 (dockerd) Tasks: 11 Memory: 44.6M CGroup: /system.slice/docker.service └─12626 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.640754187+03:00" level=info msg="Default brid> Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.782300389+03:00" level=info msg="Loading cont> Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.799770290+03:00" level=warning msg="WARNING: > Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.799819590+03:00" level=warning msg="WARNING: > Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.799827790+03:00" level=warning msg="WARNING: > Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.799833090+03:00" level=warning msg="WARNING: > Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.799850290+03:00" level=info msg="Docker daemo> Sep 17 21:52:15 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:15.799885890+03:00" level=info msg="Daemon has c> Sep 17 21:52:16 DESKTOP-LQSDBBS dockerd[12626]: time="2023-09-17T21:52:16.034339194+03:00" level=info msg="API listen o> Sep 17 21:52:16 DESKTOP-LQSDBBS systemd[1]: Started Docker Application Container Engine.

On Windows it's 4.3.2, Docker Engine 20.10.11

image

Oh, I thought it's supposed to update itself automatically. I guess that could be an incompatibility issue? Now I see I have to manually install a new version.

For the crash, are you observing it instantaneously or after a few seconds? Are you seeing >any output on the visual_slam/tracking/odometry topic?

It was crashing after running the ros bag. I couldn't make RViz show anything. I rerun it a bit earlier but it crashed immediately after starting the rosbag replay, so I guess there's no time to send/capture a proper message.

I'll update it and try again, starting with the original docker command.

Twenkid commented 9 months ago

BTW, I missed to mention the GPU: it's a modest 750 Ti, but it supports CUDA 12.2 and compute capabilities 5.0. The repo suggests: "x86_64 | NVIDIA GPU | Ubuntu 20.04+CUDA 11.8+".

Could this be a problem, is it supposed to run with this amount of GPU RAM?

I know that Isaac Sim/Omniverse require RTX, but I assume that Isaac ROS uses the RViz' renderer, so it may have lower requirement. Is that right?

 nvidia-smi
Wed Sep 20 16:40:57 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.04              Driver Version: 536.23       CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 750 Ti      On  | 00000000:01:00.0  On |                  N/A |
| 33%    0C    P0               1W /  38W |    508MiB /  2048MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A        23      G   /Xwayland                                 N/A      |
|    0   N/A  N/A        24      G   /Xwayland                                 N/A      |
+---------------------------------------------------------------------------------------+
 nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
Twenkid commented 9 months ago

I updated docker inside WSL to 24.0.6 and repeated the procedure, with the same results... I managed to run the container, RViz opened, the slam launched, but as soon as the rosbag was played, the slam node died (with the original docker start script "nvidia"). The tests of the building process again returns error in the package, all the rest passes.

The last thing I tried was setting the:

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"
}

Script in the Windows Docker

The default was:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false
}

Again an error in colcon test.

I guess I'll have to move to a real Linux.

Twenkid commented 9 months ago

I managed to run the example on a proper native Linux with a powerful GPU (but I see in nvidia-smi that it uses just hundreds of MBs), with one small issue: the image windows didn't show in RViz, I opened one with rqt_image_view.

image

swapnesh-wani-nvidia commented 9 months ago

Great that you are able to run with a newer GPU. For the image not shown, could you check if RViz is subscribing to the correct image topic? For WSL2 case, your GPU - GTX 750 Ti is based on older architecture and it is not compatible with the cuVSLAM library.

Twenkid commented 8 months ago

Thanks for the clarification about the GPU requirements! Unfortunately I can't test it on that machine anymore, but I guess the problem was what you said, probably I've missed to add the image topic, if it wasn't included automatically.

Twenkid commented 8 months ago

What are the minimum GPU requirement/architecture? I can't find explicit data so far. There's info about RTX for Isaac SIM, but this one uses RViz and ROS. My test was on an RTX 3090.

jaiveersinghNV commented 8 months ago

You can find the required hardware for running Isaac ROS on x86 here.

Twenkid commented 8 months ago

OK, so Volta+ and Geforce RTX. I managed to run the demo on a 3090. Thanks

GateraGael commented 2 months ago

Hello were you able to get this very basic package to work with your initial setup (IsaacSim-ros_workspace) ? Windows 11 (Isaac Sim), ROS2 (Docker on WSL2) ? From what I am finding is that 1) ISAAC Sim has to run on the same computer as where ROS2 is running (even when you specify --network host for docker it doesn't communicate with the running isaac sim 2) WSL2 does not support Vulkan therefore this cannot work (https://forums.developer.nvidia.com/t/my-issac-sim-at-omniverse-in-wsl2-can-not-launch/246932).

Twenkid commented 2 months ago

Hi, I was on Win10 and was following the instruction for the specific example, it was crashing as explained. It was ros2 (isaac is in ros2 only, right?), but I think not IsaacSim, just isaac_ros (if working, it should be with the ros2 visualisation: rviz2 etc.); it shouldn't have run either because the GPU on the Win machine was a GF 750 TI, but I haven't found a clear info about the requirements.