rosdep

how to manage ros dependencies.

What is rosdep?

rosdep is ROS’s dependency management utility that can work with ROS packages and external libraries. rosdep is a command-line utility for identifying and installing dependencies to build or install a package.

When we need rosdep

  • Dependencies to build our Project.
  • Dependencies to execute our Project.

package.xml

package.xml is the file where is specified all the dependencies for our project. Should be an exhaustive list of any non-builtin libraries and packages it requires.

The dependencies need to be in package.xml like:

  • For dependencies only used in building the code, use <build_depend>.

  • For dependencies needed by headers the code exports, use <build_export_depend>.

  • For dependencies only used when running the code, use <exec_depend>.

  • Recommended by default: For mixed purposes, use <depend>, which covers build, export, and execution time dependencies.

Example package.xml

<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
  <name>eufs_launcher</name>
  <version>2.0.0</version>
  <description>Configures and launches eufs_sim.</description>

  <maintainer email="cambobmat@icloud.com">Cameron Matthew</maintainer>
  <maintainer email="siliconlad@protonmail.com">Angus Stewart</maintainer>

  <license>MIT</license>

  <url type="website">http://eufs.co</url>
  <url type="repository">https://gitlab.com/eufs/eufs_sim</url>
  <url type="bugtracker">https://gitlab.com/eufs/eufs_sim/issues</url>

  <depend>rclpy</depend>
  <depend>rqt_gui</depend>

  <depend>launch</depend>
  <depend>launch_ros</depend>

  <depend>python3-yaml</depend>
  <depend>python3-pandas</depend>

  <export>
    <build_type>ament_python</build_type>
    <rqt_gui plugin="${prefix}/plugin.xml"/>
  </export>
</package>
Last modified March 18, 2023: Fix link to image (62e4b8e)