Note: This tutorial assumes that you have completed the previous tutorials: Using ROSBUILD with Catkin. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Switching from rosbuild to catkin
Description: How to change packages to be catkin-based.Tutorial Level: INTERMEDIATE
Contents
Introduction
Migrating the build-system of existing software always requires work and careful thought. Here are some guidelines to help you along.
Using a catkin workspace
If you locally have a workspace that you used with ROS fuerte or electric, you need to create a separate workspace for packages migrated to catkin.
It is probably wise to move your stacks/packages into the new workspace one at a time, switching to catkin one at a time.
Branching off fuerte-devel
Assuming you have your source under source-control (which you should), it may be good to keep a branch of your sources around in a state that can be built with ROS Fuerte.
At Willow Garage, it is now common to have branches for each ROS distribution, so you might just go and call that branch "fuerte-devel".
Migrating stacks and packages
catkin/migrating_from_rosbuild
Migrating documentation
Do not forget that you also may have documentation in your sources, personal webpages and such, those also need to be updated.
Migrating roswiki pages
You may have instructions on wiki pages for how to build your package, here are guidelines of how to provide new build instructions while keeping the earlier ones around.
Use the wiki buildsystem macro to declare the different ways, e.g.
<<Buildsystem()>> {{{{#!wiki buildsystem rosbuild Call: {{{ $ rosmake package_name }}} }}}} {{{{#!wiki buildsystem catkin Call: {{{ $ cd ~/catkin_ws $ catkin_make }}} }}}}
Result:
Call:
$ rosmake package_name
Call:
$ cd ~/catkin_ws $ catkin_make
note the use of 4 curly braces {{{{ to escape 3 curly braces {{{