ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

As @dornhege mentioned we provided backwards compatibility such that rosbuild packages can depend on catkin packages. To do this a lot of effort went into catkin to emulate what rosbuild expects.

catkin has been designed from the ground up with cleaner dependencies and have capabilities which were missing in rosbuild. As such catkin tracks a lot more information than rosbuild does and as such you cannot cleanly build catkin packages on top of rosbuild packages. Furthermore to enable catkin to build on top of rosbuild packages you would need to depend on rosbuild and it's entire infrastructure, which was part of the reason for the redesign. This leads to a circular dependency. With catkin at the bottom we can have the cleaner system at the core and it can work it's way up through the dependency tree. As we progress through the system rosbuild will be phased out and once you have transitioned across the boundary rosbuild will no longer effect your development.

The other approach would be to work from the leafs inward, but that's much worse as it would require the leaf nodes to work in lockstep instead of the core. Where leaf packages are potentially unreleased and unlisted.