Migration guide

For ROS Indigo Igloo, these packages have been changed and provide some form of migration notes or tutorials for users which depend on these packages:

rosbuild support

As of Indigo the ROS buildfarm also only supports documenting and continuous integration testing of catkin-based packages. Since Indigo is a LTS release and aims to be supported for several years maintaining the legacy code for rosbuild-based packages is impractical. Building from source is still supported.

Python 3 support

While Indigo Debian packages will still use Python 2 by default all packages should aim to make their Python code work with both Python 2.7 as well as Python 3.3. Please see a list of common changes necessary: How to make your Python code compatible with version 2.7 and 3.3

Background research can be found here: http://lists.ros.org/pipermail/ros-release/2013-December/004327.html

boost::signals2

Since boost::signals is deprecated and might be removed in the near future several packages have updated their API to use the new version. The following packages are affected by this:

catkin

Some deprecated functionality has been removed in Indigo which might require some update to your CMakeLists.txt files.

See catkin Indigo Migration Guide

Additionally, the FindEigen.cmake CMake module used to reside in the catkin package, it now lives in the cmake_modules package.

Furthermore catkin_make will also run the run_tests target with multiple jobs in parallel by default. So if you have tests which can only be run sequentially you have to handle that in your tests on your own or always invoke the test target with -j1.

cmake_modules

There is a new package called cmake_modules which contains some commonly used dependencies which do not have CMake modules by default. Currently the list includes:

  • FindEigen.cmake

  • FindNUMPY.cmake
  • FindTBB.cmake
  • FindTinyXML.cmake
  • FindXenomai.cmake

If you would like to use one of these in your CMakeLists.txt of your package, simply follow the usage instructions here:

https://github.com/ros/cmake_modules/blob/0.3-devel/README.md#usage

If you would like to contribute additional CMake Modules, please refer to our contributing guidelines for this package before opening a pull request:

https://github.com/ros/cmake_modules/blob/0.3-devel/CONTRIBUTING.md

diagnostic_msgs

The diagnostic_msgs/DiagnosticStatus message has been updated, causing the MD5 to change. Thus, you should really not mix rosdistros when dealing with robot dashboards.

gencpp

The generated C++ code of message has been modified and the previous member variable __connection_header is not available anymore. If your code uses this variable it will fail to compile. The information can still be accessed via the MessageEvent class. Please update your callbacks to use the signature with the message event as described in the tutorials.

rosconsole

The ROSCONSOLE_DEFINE_LOCATION macro exposed two variables (enabled and loc). Since those may easily collide with user defined variables they have been prefixed with __rosconsole_define_location__. rosconsole_bridge was the only location which used these symbols and has been updated accordingly.

urdfdom

  • The urdfdom parser previously included the notion of group names for link visual & collision geometry (undocumented feature, not part of URDF). This notion has been removed in ROS Indigo, and users that relied on it should use the visual_array and collision_array members of links instead. The notion of a group_name for link collisions and visuals has also been removed.

  • The name attribute for collisions and visuals is now implemented (XML format). This name is optional and is used by URDF extensions only.

OpenCV

The OpenCV packages are not built in the ROS ecosystem anymore, they rely on upstream packages. The rosdep keys are now: libopencv-dev and python-opencv

If your package supports Hydro and Indigo on one common branch, you want to depend on a common key that will pull in the right OpenCV for you (the ROS package on Hydro and the distribution package on Indigo). Hence, just depend on cv_bridge (which will also pull in rosconsole and sensor_msgs) or image_geometry (which will only pull in sensor_msgs but is harder to understand as a dependency, purpose-wise).

Gazebo

ROS Indigo works with Gazebo 2.x. This is not documented in REP-0003, but noted on Gazebo website.

An alternative installation is provided to install Gazebo 5.x on Indigo with a subset of the features. (official notice on Gazebo website).

Wiki: indigo/Migration (last edited 2017-02-05 01:00:33 by IsaacSaito)