| REP | 2001 |
|---|---|
| title | ROS 2 Variants |
| author | Tully Foote Mikael Arguedas Ruffin White David V. Lu!! Steven! Ragnarok Chris Lalancette \ |
| tag | Active |
| category | Informational |
| date | 2018-07-16 |
This REP describes the variants for ROS 2 releases.
For a discussion on the general motivation and role of variants, please see REP 1081.
This document covers the common variants used for recommended installations. It is expressed in the ros2/variants2 and in ros-infrastructure/infra-variants3 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]{.title-ref} variant provides a "batteries included" experience, enabling novice users to complete most entry tutorials without knowledge of the underlying library structure.
- [desktop]{.title-ref} (recommended): The [desktop]{.title-ref} variant provides all commonly used libraries as well as visualization tools and tutorials.
- `ros_base`: The [ros_base]{.title-ref} variant composes the [ros_core]{.title-ref} metapackage with commonly used libraries. It may not contain any GUI dependencies.
- `ros_core`: The [ros_core]{.title-ref} variant composes the core communication protocols. It may not contain any GUI dependencies.
- `perception`: The [perception]{.title-ref} variant includes packages commonly used for perception capabilities.
- `simulation`: The [simulation]{.title-ref} variant includes packages that are needed for automated simulation, without extra debugging tools.
- `ros-build-essential`: The [ros-build-essential]{.title-ref} ROS distribution independent variant includes only the packages that are required for building standalone ROS 2 packages. ROS developers should use [ros-dev-tools]{.title-ref} instead for the full set of recommended tools.
- `ros-dev-tools`: The [ros-dev-tools]{.title-ref} 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 1084 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]{.title-ref} 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]
This document has been placed in the public domain.
Footnotes
-
REP 108: Diamondback Variants (http://www.ros.org/reps/rep-0108.html) ↩
-
ROS Variants Repository (https://github.com/ros2/variants) ↩
-
ROS Infrastructure Metapackages Repository (https://github.com/ros-infrastructure/infra-variants) ↩
-
REP 108: Diamondback Variants (http://www.ros.org/reps/rep-0108.html) ↩