Conceptual Overview

For an explanation of the design goals and design decisions, in addition to the rationale for why Catkin ("yet another build system?") was created, see the catkin/conceptual_overview page.

Note for ROS Fuerte Users: An experimental version of catkin was released with ROS Fuerte that is quite different from the version in Groovy. Those using ROS Fuerte should continue utilizing rosbuild.

Installing catkin

Catkin is included by default when ROS is installed. Catkin can also be installed from source or prebuilt packages. Most users will want to use the prebuilt packages, but installing it from source is also quite simple.

Install Prebuilt Package

If you are using a ROS binary distribution (Groovy or higher) on Ubuntu then you can install catkin with apt-get:

sudo apt-get install ros-$ROS_DISTRO-catkin

Most ROS installations will include this by default.

Install From Source

Catkin has the following dependencies:

  • CMake - A cross-platform, open-source build system.

  • Python - Python is a general-purpose, interpreted high-level programming language. Version 2.7 is required (reference).

    • catkin_pkg - A Python runtime library for catkin.

    • empy - A Python template library.

    • nose - A Python testing framework.

  • GTest - A cpp unittest framework from Google.

  • GNU C++ Compiler (g++) - The GNU C++ compiler

You can resolve these dependencies on Ubuntu with this command:

sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev build-essential

If you are not on Ubuntu you can install catkin_pkg from PyPi via pip.

If you have trouble installing the python-* packages in the command above, make sure you have added the debian repository to your apt source lists as described on this page.

Then install catkin like any CMake package

mkdir build && cd build && cmake ../ && make && sudo make install

Note: You usually want to pass a specific build type when invoking CMake, e.g. cmake -DCMAKE_BUILD_TYPE=Release ../ (or RelWithDebInfo / Debug instead of Release, see

Migrating from rosbuild

See catkin/migrating_from_rosbuild

External Documentation

See the external catkin docs containing:


Configuration File References

Glossary of Terms

See catkin/Glossary


Code Reviews

Report a Bug

GitHub ros/catkin

Wiki: catkin (last edited 2017-07-26 08:20:54 by GvdHoorn)