REP: 2001 Title: ROS 2 Variants Author: Tully Foote <tfoote@openrobotics.org>, Mikael Arguedas <mikael@openrobotics.org>, Ruffin White <roxfoxpox@gmail.com>, David V. Lu!! <davidvlu@gmail.com>, Steven! Ragnarok <steven@openrobotics.org>, Chris Lalancette <clalancette@openrobotics.org> 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 [2] and in ros-infrastructure/infra-variants [3] repositories on github.com.
The definitions in this REP are concise for clearer purpose, and do not list all transitive dependencies explicitly.
We define various entry points for ROS users.
- desktop_full: The desktop_full variant provides a "batteries included" experience, enabling novice users to complete most entry tutorials without knowledge of the underlying library structure.
- desktop (recommended): The desktop variant provides all commonly used libraries as well as visualization tools and tutorials.
- ros_base: The ros_base variant composes the ros_core metapackage with commonly used libraries. It may not contain any GUI dependencies.
- ros_core: The ros_core variant composes the core communication protocols. It may not contain any GUI dependencies.
- perception: The perception variant includes packages commonly used for perception capabilities.
- simulation: The simulation variant includes packages that are needed for automated simulation, without extra debugging tools.
- ros-build-essential: The ros-build-essential ROS distribution independent variant includes only the packages that are required for building standalone ROS 2 packages. ROS developers should use ros-dev-tools instead for the full set of recommended tools.
- ros-dev-tools: The ros-dev-tools ROS distribution independent variant provides the commonly-used tools and libraries that a user would want if they're developing ROS 2 packages.
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_action, 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]
- perception: extends: [ros_base] packages: [image_common, image_pipeline, image_transport_plugins, laser_filters, laser_geometry, perception_pcl, vision_opencv]
- simulation: extends: [ros_base] packages: [ros_ign_bridge, ros_ign_gazebo, ros_ign_image, ros_ign_interfaces]
- desktop_full: extends: [desktop] packages: [perception, simulation, ros_ign_gazebo_demos]
- 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_action, 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]
- perception: extends: [ros_base] packages: [image_common, image_pipeline, image_transport_plugins, laser_filters, laser_geometry, perception_pcl, vision_opencv]
- simulation: extends: [ros_base] packages: [ros_ign_bridge, ros_ign_gazebo, ros_ign_image, ros_ign_interfaces]
- desktop_full: extends: [desktop] packages: [perception, simulation, ros_ign_gazebo_demos]
- 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_action, 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]
- perception: extends: [ros_base] packages: [image_common, image_pipeline, image_transport_plugins, laser_filters, laser_geometry, perception_pcl, vision_opencv]
- simulation: extends: [ros_base] packages: [ros_gz_bridge, ros_gz_sim, ros_gz_image, ros_gz_interfaces]
- desktop_full: extends: [desktop] packages: [perception, simulation, ros_gz_sim_demos]
- 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_action, 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_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]
- perception: extends: [ros_base] packages: [image_common, image_pipeline, image_transport_plugins, laser_filters, laser_geometry, perception_pcl, vision_opencv]
- simulation: extends: [ros_base] packages: [ros_gz_bridge, ros_gz_sim, ros_gz_image, ros_gz_interfaces]
- desktop_full: extends: [desktop] packages: [perception, simulation, ros_gz_sim_demos]
These variants are not released as ROS packages within each distribution as the others are. Instead they are made available as independent packages outside of any ROS distribution.
In addition to the explicitly listed packages this variant should include the base toolchain for any operating system (such as build-essential on Debian) as well as GNU Make and a C++ compiler if not already part of that toolchain.
- ros-build-essential: packages: [cmake, git, python3, python3-setuptools]
- ros-dev-tools: extends: [ros-build-essential] packages: [python3-bloom, python3-colcon-common-extensions, python3-colcon-mixin, python3-rosdep, python3-vcstool, wget]
[1] | (1, 2) REP 108: Diamondback Variants (http://www.ros.org/reps/rep-0108.html) |
[2] | ROS Variants Repository (https://github.com/ros2/variants) |
[3] | ROS Infrastructure Metapackages Repository (https://github.com/ros-infrastructure/infra-variants) |
This document has been placed in the public domain.