Navigation

  • index
  • modules |
  • next |
  • previous |
  • catkin 0.8.9 documentation »
  • How to do common tasks »

Logo

Table of Contents

  • Package format 2 (recommended)
    • Overview
    • Resolving dependencies
    • Building and installing targets
    • Configuring and running unit tests
    • Migrating from package format 1

Previous topic

How to do common tasks

Next topic

Catkin configuration overview

This Page

  • Show Source

Quick search

Package format 2 (recommended)¶

When writing a ROS package several tasks often need to be done. These pages give examples of how to handle most of the common ones.

Note

These instructions are for <package format="2">.

If you are making small changes to a format 1 package, please use Package format 1 (legacy) instead. If you are ready to upgrade a format 1 package to format 2, see: Migrating from format 1 to format 2.

Overview¶

  • Catkin configuration overview

Resolving dependencies¶

Packages almost always use features provided by other packages. Describe all your direct dependencies. Their transitive dependencies on other packages are handled automatically by catkin.

  • C++ catkin library dependencies
  • C++ system library dependencies
  • C++ message or service dependencies
  • Python module dependencies

Building and installing targets¶

Build targets are generated binaries, shared libraries, message headers, and other objects. Various targets require special handling.

  • Building and installing C++ executables
  • Building and installing C++ libraries and headers
  • Building messages, services or actions
  • Dynamic reconfiguration
  • Installing Python scripts and modules
  • Installing CMake files
  • Installing other files

Configuring and running unit tests¶

All configuration steps related to testing should be only done conditionally when CATKIN_ENABLE_TESTING is set, which is true by default. Passing -DCATKIN_ENABLE_TESTING=0 to CMake enables configuring and building packages without any testing overhead.

  • Downloading test data
  • Configuring gtest for C++
  • Configuring Python nose tests
  • Configuring rostest
  • Running unit tests

Migrating from package format 1¶

When a format 1 package is revised, it probably makes sense to upgrade its package.xml to format 2.

  • Migrating from format 1 to format 2

Navigation

  • index
  • modules |
  • next |
  • previous |
  • catkin 0.8.9 documentation »
  • How to do common tasks »
© Copyright 2010-2020, Troy Straszheim, Morten Kjaergaard, Brian Gerkey, Dirk Thomas. Created using Sphinx 1.8.5.