IntelRealSense / realsense-ros

ROS Wrapper for Intel(R) RealSense(TM) Cameras
http://wiki.ros.org/RealSense
Apache License 2.0
2.58k stars 1.76k forks source link

rosdep install error: `No definition of [xacro] for OS version [bionic]` #2309

Closed GuillaumeLaine closed 2 years ago

GuillaumeLaine commented 2 years ago

I have successfully installed the Realsense SDK following the Jetson Installation guide (https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_jetson.md) on a Jetson AGX + realsense-viewer is working successfully.

However, when trying to install the ROS2 wrapper from sources, step 4 with: rosdep install -i --from-path src --rosdistro $_ros_dist --skip-keys=librealsense2 -y gives same errors as mentioned in #2173 which are also fixed by replacing $_ros_dist by $ROS_DISTRO (curious that the issue has been closed but the readme wasn't updated? At least on the ros2 branch). Then running: rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys=librealsense2 -y gives me the error: No definition of [xacro] for OS version [bionic] I've tried to skip that key: rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys "librealsense2 xacro" -y and everything seemed to work afterwards. However, I'm not sure if this is normal and if this will cause issues in the future?

I'm trying to install the ROS2 wrapper within the container provided by isaac_ros_common (https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common)

MartyG-RealSense commented 2 years ago

Hi @GuillaumeLaine My understanding is that xacro would be important if you were going to be performing robot simulation with Gazebo.

One RealSense ROS user who experienced the No definition of [xacro] error with ROS2 Foxy and Ubuntu 20.04 last year resolved it with a different installation approach:

rosdep install -i --from-path src --ignore-src -r -y --rosdistro foxy

You would of course replace 'foxy' with the name of the ROS2 distro version that you are using, such as galactic

Others who have used the --ignore-src command have also used the --rosdistro $ROS_DISTRO command instead of specifying an exact version name, like in the original command.

GuillaumeLaine commented 2 years ago

Hi @MartyG-RealSense thanks for your reply, good to know!

I'll let you decide whether this issue should now be closed. I'm not planning on using Gazebo at the moment and this answers my question perfectly, however I imagine the missing xacro key might still be a problem to others; the rosdep -r flag seems to work by just ignoring installation errors and might not be a sufficient solution to everyone.

At any rate thanks again, cheers!

MartyG-RealSense commented 2 years ago

You are very welcome :)

As this is a rarely occurring issue, I will close the case. Thanks again!