Ament/Colcon



Resources

A Minimal Environment

On Ubuntu, setup the ROS2 repository and install the colcon packages, e.g.

sudo apt install curl
curl http://repo.ros2.org/repos.key | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64,arm64] http://repo.ros2.org/ubuntu/main xenial main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo apt update
sudo apt install python3-vcstool python3-colcon-core python3-colcon-common-extensions
sudo apt install 

Check out my source cross-compile kobuki for something that configures a very minimal environment for compilation. The lads from OSRC/Ekumen also embarked on using binary dockerised recipes of the same for ci github actions for the maliput libraries.

Topics

  • Build Folder
    • Separated into many build/<package> subdirectories
    • Each folder it's own CMake build directory
    • All the usual things apply for cmake
      • ccmake for changing cached variables
      • make clean / make -j5 for building
  • PkgConfig
    • Missing at the moment (2018Q1), so accessing from a non-cmake build system will be difficult

Package Manifests

  • catkin_pkg still provides libraries for parsing package.xml files, even though it is no longer aptly named (should be ament)
  • There is a command line tool, ament_index, that helps find the root directory for any package in a runtime environment.
    • Check ament_index_python for code snippets
    • Example commande line usage: ament_index packages py_trees

ToDo

  • Pure CMake Projects in Colcon - write up how to map pure cmake packages between cmake project names and ament package.xml dependency names (did for Sophus in the kobuki cross-compile builds)
  • How to find a package.xml