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
808 stars 126 forks source link

Support for Zed cameras under Isaac ROS version 3 with JP 6 #164

Open jwknaup opened 3 weeks ago

jwknaup commented 3 weeks ago

Are there plans to officially support the Zed cameras again now that Stereolabs has released an update to their SDK that supports JetPack 6?

In the meantime, would I be better off trying to setup the integration with the Zed cameras myself or roll back to the previous version of Isaac ROS (2.1) and the Zed SDK using JetPack 5.1?

https://nvidia-isaac-ros.github.io/releases/index.html#limitations

Thanks!

gordongrigor commented 3 weeks ago

It's better to remain on Jetpack 5.x until StereoLabs updates the software for Jetpack 6. StereoLabs is working on this, and has commented on updating to Jetpack 6 in their forums.

jwknaup commented 3 weeks ago

Hi, thanks for the reply!

It looks like stereolabs has released support for Jetpack 6 (just a couple weeks ago). https://www.stereolabs.com/developers/release#412-7f794d6a747d

jwknaup commented 2 weeks ago

I was able to get it working using the latest versions of JetPack, Isaac ROS Visual SLAM, Zed SDK, and Zed ROS2 Wrapper.

In case anyone is curious, here are the steps I followed, with the launch file attached. I originally tried using the older versions of everything with the Isaac docker container, but ran into issues and found it was easier to work from the ground up with the latest versions. Cheers!

  1. Install Jetpack 6.0 (latest) (I am using an Orin Nano dev kit with an nvme SSD as the sole storage device)
  2. Complete NVIDIA Compute Setup
  3. Setup NVIDIA Isaac ROS apt repositories and install ROS2 Humble
  4. Install Zed SDK 4.1 (latest) for Jetpack 6.0
  5. Clone and build the (latest - master) Zed ROS2 packages
  6. Install the prebuilt Isaac ROS Visual SLAM package sudo apt-get install ros-humble-isaac-ros-visual-slam
  7. Create a custom ROS2 package with the attached launch file (be sure to remove the .txt extension). I filled in the parameters (e.g. topics and transform frames) using the info in the visual_slam API and Zed Node API
  8. Launch Zed Node ros2 launch zed_wrapper zed_camera.launch.py camera_model:={ZED_MODEL}
  9. Launch Isaac ROS Visual SLAM ros2 launch {CUSTOM_PACKAGE} {ATTACHED_LAUNCH_FILE}
immanueln98 commented 1 week ago

I was able to get it working using the latest versions of JetPack, Isaac ROS Visual SLAM, Zed SDK, and Zed ROS2 Wrapper.

In case anyone is curious, here are the steps I followed, with the launch file attached. I originally tried using the older versions of everything with the Isaac docker container, but ran into issues and found it was easier to work from the ground up with the latest versions. Cheers!

1. Install Jetpack 6.0 (latest) (I am using an Orin Nano dev kit with an nvme SSD as the sole storage device)

2. Complete NVIDIA [Compute Setup](https://nvidia-isaac-ros.github.io/getting_started/hardware_setup/compute/index.html)

3. Setup NVIDIA [Isaac ROS apt repositories and install ROS2 Humble](https://nvidia-isaac-ros.github.io/getting_started/isaac_apt_repository.html)

4. Install Zed [SDK 4.1 (latest) for Jetpack 6.0](https://www.stereolabs.com/developers/release)

5. Clone and build the (latest - master) [Zed ROS2 packages](https://www.stereolabs.com/docs/ros2#build-the-package)

6. Install the prebuilt Isaac ROS Visual SLAM package
   `sudo apt-get install ros-humble-isaac-ros-visual-slam`

7. Create a [custom ROS2 package](https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Creating-Your-First-ROS2-Package.html) with the [attached launch file](https://github.com/user-attachments/files/15843567/visual_slam.launch.py.txt) (be sure to remove the .txt extension). I filled in the parameters (e.g. topics and transform frames) using the info in the [visual_slam API](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_visual_slam/isaac_ros_visual_slam/index.html#api) and [Zed Node API](https://www.stereolabs.com/docs/ros2/zed-node)

8. Launch Zed Node
   `ros2 launch zed_wrapper zed_camera.launch.py camera_model:={ZED_MODEL}`

9. Launch Isaac ROS Visual SLAM
   `ros2 launch {CUSTOM_PACKAGE} {ATTACHED_LAUNCH_FILE}`

I seem not to be able to locate the package from the apt repo as shown below

sudo apt-get install -y ros-humble-isaac-ros-visual-slam Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package ros-humble-isaac-ros-visual-slam

jwknaup commented 6 days ago

Are you sure all the steps to add the NVIDIA Isaac repositories were successful and that you are using a supported architecture and OS? Seems like something must have gone wrong there.

hermanndererdmann commented 1 day ago

@jwknaup did you install the SDK in the docker container or outside? I have it outside and cannot install it inside. when i try to build the ROS package inside the container, i get this:

....
Finished <<< zed_interfaces [47.2s]
Starting >>> zed_components
--- stderr: zed_components                            
CMake Error at CMakeLists.txt:81 (find_package):
  By not providing "FindZED.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "ZED", but
  CMake did not find one.

  Could not find a package configuration file provided by "ZED" with any of
  the following names:

    ZEDConfig.cmake
    zed-config.cmake

  Add the installation prefix of "ZED" to CMAKE_PREFIX_PATH or set "ZED_DIR"
  to a directory containing one of the above files.  If "ZED" provides a
  separate development package or SDK, be sure it has been installed.

---
Failed   <<< zed_components [0.42s, exited with code 1]
...

looks like it doesn't see the installed SDK what did i do wrong?