Catkin Tools

Introduction

  • Installation: sudo apt install python-catkin-tools

  • It's time to migrate from catkin_make to catkin build !

catkin build command

  • rosbuild was the very first build tool developed by ROS community

  • Then comes catkin_make to help automate the merged build process at the top level

  • To address the numerous drawbacks of the merged build process,catkin_make_isolated was introduced to isolated build process for each package

  • Finally, catkin build is the most recent method to build packages, with improved performance

  • See catkin history for more information

catkin devel space

  • In addition to the merged and isolated devel space layouts provided by catkin_make and catkin_make_isolated, respectively, catkin_tools provides a default linked layout which enables robust cleaning of individual packages from a workspace.

  • Specifically, catkin packages are built in the .private hidden directory at the root of the devel space. Files in devel space are symbolic links to files in .privatefolder.

  • Additionally, to avoid race condition on setup files (e.g., setup.bash) and other problems in parallelize building, in linked layout only one package generates these files. A package named catkin_tools_prebuild may be built first (before all other packages) for this purpose.

  • To use merged layout, run command catkin config --merge-devel.

example catkin commands

FAQ & Troubleshooting

  • This warning can be ignored and it will continue to use the cached path. It often happens after new workspaces are established and setup files are sourced.

  • Alternatively, it can be resolved by explicitly extending other workspaces.

    • catkin config --extend /opt/ros/melodic

    • to revert, catkin config --no-extend

Last updated

Was this helpful?