Syncronized callbacks in ROS2

I’m actually a big proponent of the idea to backport ament to ROS 1 (and maybe even some ament features to catkin), because I think it lets people take a step toward ROS 2 without jumping in with both feet while simultaneously gaining some benefits (assumption is ament is better than catkin, which I do believe). Also, it lets developers more easily support ROS 1 and ROS 2 at the same time (same branch). This is especially attractive for packages which are mostly ROS agnostic, e.g. class_loader or the new rviz_rendering package.

I don’t want to hijack the thread, but just to expand on what @dirk-thomas said, I collected a list of things that would need to be addressed a while back:

  • support building packages with the build_type of ament_cmake (catkin_make_isolated and catkin_tools)
    • make the setup.*sh files (which are installed to the install folder’s root) source both catkin and ament setup files and environment hooks (currently only handles catkin stuff)
    • address conflicts which may occur when ament_cmake uses Python3, but the ROS 1 packages and the build tool in ROS 1 (catkin_make_isolated or catkin_tools) uses Python2
  • release all packages in the ament/ament_cmake, ament/ament_lint, and possibly ament/ament_index repositories
  • deal with ROS_PACKAGE_PATH versus ament_index
  • consolidate ros-infrastructure/catkin_pkg and ament/ament_package
    • not strictly needed, but would prevent us from having two implementations of package.xml parsing
  • deal with any issue that arise and update documentation so people are aware of the changes
1 Like