REP: 2001 Title: ROS 2 Variants Author: Tully Foote <[email protected]>, Mikael Arguedas <[email protected]>, Ruffin White <[email protected]> Status: Active Type: Informational Content-Type: text/x-rst Created: 16-Jul-2018 Post-History: 17-Sep-2018, 15-Mar-2019, 10-Nov-2021
This REP describes the variants for ROS 2 releases.
For a discussion on the general motivation and role of variants, please see REP 108 [1].
This document covers the common variants used for recommended installations. It is expressed in the ros2/variants repository on github.com [2].
The definitions in this REP are concise for clearer purpose, and do not list all transitive dependencies explicitly.
We define three main entry points for ROS users.
- desktop (recommended): The desktop metapackage is the main entry point for users. It provides all commonly used libraries as well as visualization tools and tutorials.
- ros_base: The ros_base metapackage composes the ros_core metapackage with commonly used libraries. It may not contain any GUI dependencies.
- ros_core: The ros_core variants composes the core communication protocols. It may not contain any GUI dependencies.
Please see REP 108 [1] for discussion of institution-specific metapackages.
When creating robot or institution specific metapackages consider using the *_robot and *_desktop and *_base form where * is the institution or robot name.
An institution is not required to provide a metapackage, they are mainly provided for convenience and identity.
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2msg, ros2node, ros2pkg, ros2run, ros2service, ros2srv, ros2topic, ros_environment, rosidl_default_generators, rosidl_default_runtime] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - Connext: [rmw_connext, rosidl_typesupport_connext] - Opensplice: [rmw_opensplice, rosidl_typesupport_opensplice]
- ros_base: extends: [ros_core] packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen, tf2_geometry_msgs, tf2_ros, urdf]
- desktop: extends: [ros_base] packages: [composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclpy_executors, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, rviz2, rviz_default_plugins, sros2, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor]
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2launch, ros2lifecycle, ros2msg, ros2node, ros2param, ros2pkg, ros2run, ros2service, ros2srv, ros2topic, ros_environment, rosidl_default_generators, rosidl_default_runtime] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - Connext: [rmw_connext, rosidl_typesupport_connext] - Opensplice: [rmw_opensplice, rosidl_typesupport_opensplice]
- ros_base: extends: [ros_core] packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen, tf2_geometry_msgs, tf2_ros, urdf]
- desktop: extends: [ros_base] packages: [angles, composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclpy_executors, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, rviz2, rviz_default_plugins, sros2, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor]
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2launch, ros2lifecycle, ros2msg, ros2multicast, ros2node, ros2param, ros2pkg, ros2run, ros2service, ros2srv, ros2topic, ros_environment, rosidl_default_generators, rosidl_default_runtime] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - Connext: [rmw_connext, rosidl_typesupport_connext] - Opensplice: [rmw_opensplice, rosidl_typesupport_opensplice]
- ros_base: extends: [ros_core] packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen, tf2_geometry_msgs, tf2_ros, urdf]
- desktop: extends: [ros_base] packages: [angles, composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_action_client, examples_rclcpp_minimal_action_server, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclpy_executors, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, rviz2, rviz_default_plugins, sros2, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor]
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2action, ros2component, ros2launch, ros2lifecycle, ros2msg, ros2multicast, ros2node, ros2param, ros2pkg, ros2run, ros2service, ros2srv, ros2topic, ros_environment, rosidl_default_generators, rosidl_default_runtime, sros2, sros2_cmake] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - Connext: [rmw_connext, rosidl_typesupport_connext] - Opensplice: [rmw_opensplice, rosidl_typesupport_opensplice]
- ros_base: extends: [ros_core] packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen, tf2_geometry_msgs, tf2_kdl, tf2_ros, urdf]
- desktop: extends: [ros_base] packages: [action_tutorials, angles, composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_action_client, examples_rclcpp_minimal_action_server, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclpy_executors, examples_rclpy_minimal_action_client, examples_rclpy_minimal_action_server, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, pendulum_msgs, quality_of_service_demo_cpp, quality_of_service_demo_py, rqt_common_plugins, rviz2, rviz_default_plugins, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor, turtlesim]
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2action, ros2component, ros2doctor, ros2interface, ros2launch, ros2lifecycle, ros2msg, ros2multicast, ros2node, ros2param, ros2pkg, ros2run, ros2service, ros2srv, ros2topic, ros_environment, rosidl_default_generators, rosidl_default_runtime, sros2, sros2_cmake] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - Connext: [rmw_connext, rosidl_typesupport_connext] - Opensplice: [rmw_opensplice, rosidl_typesupport_opensplice]
- ros_base: extends: [ros_core] packages: [geometry2, kdl_parser, robot_state_publisher, urdf]
- desktop: extends: [ros_base] packages: [action_tutorials_cpp, action_tutorials_interfaces, action_tutorials_py, angles, composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_action_client, examples_rclcpp_minimal_action_server, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclpy_executors, examples_rclpy_minimal_action_client, examples_rclpy_minimal_action_server, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, pendulum_msgs, quality_of_service_demo_cpp, quality_of_service_demo_py, rqt_common_plugins, rviz2, rviz_default_plugins, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor, turtlesim]
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, launch, launch_ros, launch_testing, launch_testing_ament_cmake, launch_testing_ros, launch_xml, launch_yaml, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2action, ros2component, ros2doctor, ros2interface, ros2launch, ros2lifecycle, ros2multicast, ros2node, ros2param, ros2pkg, ros2run, ros2service, ros2topic, ros_environment, rosidl_default_generators, rosidl_default_runtime, sros2, sros2_cmake] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - CycloneDDS: [cyclonedds, rmw_cyclonedds] - Connext: [rmw_connext, rosidl_typesupport_connext]
- ros_base: extends: [ros_core] packages: [geometry2, kdl_parser, robot_state_publisher, rosbag2, urdf]
- desktop: extends: [ros_base] packages: [action_tutorials_cpp, action_tutorials_interfaces, action_tutorials_py, angles, composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_action_client, examples_rclcpp_minimal_action_server, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclcpp_multithreaded_executor, examples_rclpy_executors, examples_rclpy_minimal_action_client, examples_rclpy_minimal_action_server, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, pendulum_msgs, quality_of_service_demo_cpp, quality_of_service_demo_py, rqt_common_plugins, rviz2, rviz_default_plugins, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor, turtlesim]
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, launch, launch_ros, launch_testing, launch_testing_ament_cmake, launch_testing_ros, launch_xml, launch_yaml, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2cli_common_extensions, ros2launch, ros_environment, rosidl_default_generators, rosidl_default_runtime, sros2, sros2_cmake] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - CycloneDDS: [cyclonedds, rmw_cyclonedds] - Connext: [rmw_connextdds]
- ros_base: extends: [ros_core] packages: [geometry2, kdl_parser, robot_state_publisher, rosbag2, urdf]
- desktop: extends: [ros_base] packages: [action_tutorials_cpp, action_tutorials_interfaces, action_tutorials_py, angles, composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_action_client, examples_rclcpp_minimal_action_server, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclcpp_multithreaded_executor, examples_rclpy_executors, examples_rclpy_minimal_action_client, examples_rclpy_minimal_action_server, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, pendulum_msgs, quality_of_service_demo_cpp, quality_of_service_demo_py, rqt_common_plugins, rviz2, rviz_default_plugins, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor, turtlesim]
- ros_core: packages: [ament_cmake, ament_cmake_auto, ament_cmake_gmock, ament_cmake_gtest, ament_cmake_pytest, ament_cmake_ros, ament_index_cpp, ament_index_python, ament_lint_auto, ament_lint_common, class_loader, common_interfaces, launch, launch_ros, launch_testing, launch_testing_ament_cmake, launch_testing_ros, launch_xml, launch_yaml, pluginlib, rcl_lifecycle, rclcpp, rclcpp_lifecycle, rclpy, ros2cli_common_extensions, ros2launch, ros_environment, rosidl_default_generators, rosidl_default_runtime, sros2, sros2_cmake] And at least one of the following rmw_implementation: - Fast-RTPS: [Fast-CDR, Fast-RTPS, rmw_fastrtps] - CycloneDDS: [cyclonedds, rmw_cyclonedds] - Connext: [rmw_connextdds]
- ros_base: extends: [ros_core] packages: [geometry2, kdl_parser, robot_state_publisher, rosbag2, urdf]
- desktop: extends: [ros_base] packages: [action_tutorials_cpp, action_tutorials_interfaces, action_tutorials_py, angles, composition, demo_nodes_cpp, demo_nodes_cpp_native, demo_nodes_py, depthimage_to_laserscan, dummy_map_server, dummy_robot_bringup, dummy_sensors, examples_rclcpp_minimal_action_client, examples_rclcpp_minimal_action_server, examples_rclcpp_minimal_client, examples_rclcpp_minimal_composition, examples_rclcpp_minimal_publisher, examples_rclcpp_minimal_service, examples_rclcpp_minimal_subscriber, examples_rclcpp_minimal_timer, examples_rclcpp_multithreaded_executor, examples_rclpy_executors, examples_rclpy_minimal_action_client, examples_rclpy_minimal_action_server, examples_rclpy_minimal_client, examples_rclpy_minimal_publisher, examples_rclpy_minimal_service, examples_rclpy_minimal_subscriber, image_tools, intra_process_demo, joy, lifecycle, logging_demo, pcl_conversions, pendulum_control, pendulum_msgs, quality_of_service_demo_cpp, quality_of_service_demo_py, rqt_common_plugins, rviz2, rviz_default_plugins, teleop_twist_joy, teleop_twist_keyboard, tlsf, tlsf_cpp, topic_monitor, turtlesim]
[1] | (1, 2) REP 108: Diamondback Variants (http://www.ros.org/reps/rep-0108.html) |
[2] | ROS Variants Repository (https://github.com/ros2/variants) |
This document has been placed in the public domain.