If your current packages are using rosbuild
you should really consider updating to catkin
.
While the goal is to keep rosbuild
working there are e.g. issues on Ubuntu 15.04 and newer with the way it works. Changes in upstream code broke it and there will only be a partial workaround to keep it working in most use cases. rosbuild
is not actively maintained anymore and if for some reason it will break again in the future it might be beyond repair.
Another reason might be that you won't ever be able to release
your packages when they are based on rosbuild
.
Now to your main question:
ROS 1 is using catkin
since Groovy and there is no plan to change that again.
What you might have heard are information about the ROS 2 development. That indeed uses something which is called differently: ament
. But ament
is basically an updated version of catkin
- you could call it catkin 2
.
A different name was chosen for multiple reasons:
- The so called
devel space
in catkin
was almost impossible to use when scaling a workspace up to hundreds of packages. Therefore that feature has been removed from ament
. But the advantage of having a devel space
(by not copying resources when running your code) has been preserved using a different approach (namely symlinked installs). - Python packages containing a
setup.py
require to be wrapped in CMake in catkin
. In ament
they do not anymore and are being processed with the "native" Python tools directly. - Some API changed slightly, e.g. some functions in catkin specify implicit target names (which could be considered magic) and
ament
is more clear about that by specifying them explicitly. Some of the catkin
API was developed with rosbuild
in mind and some of these design choices should have better been revised. - The order of some function calls needed to be changed to support currently not possible use cases. One example if the package
catkin_simple
which was an attempt to ease writing CMake code for ROS packages. It was never announce since it had fundamental flaws which couldn't easily be address with the way catkin
works.
But ultimately catkin
and ament
are very similar. catkin
will be used for ROS 1 and ament
for ROS 2. There is no plan to "backport" ament
to ROS 1 and also no plan to support catkin
for ROS 2.
Therefore I would highly recommend to update your code base from rosbuild
to catkin
. A potential step towards ROS 2 in the future will require you to update more of your code. The changes to the CMake files should be very simple at that point.