ROS 2 Variants
Abstract
This REP describes the variants for ROS 2 releases.
Motivation
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.
Specification
End-user entry points
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.
Institution-specific and robot-specific
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.
Variants
Ardent Apalone (December 2017 - December 2018)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen,
tf2_geometry_msgs, tf2_ros, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
- 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]
Bouncy Bolson (June 2018 - June 2019)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen,
tf2_geometry_msgs, tf2_ros, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- 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]
Crystal Clemmys (December 2018 - December 2019)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen,
tf2_geometry_msgs, tf2_ros, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
- 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]
Dashing Diademata (May 2019 - May 2021)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [kdl_parser, robot_state_publisher, tf2, tf2_eigen,
tf2_geometry_msgs, tf2_kdl, tf2_ros, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
- 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]
Eloquent Elusor (November 2019 - November 2020)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 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
1
2
3
- ros_base:
extends: [ros_core]
packages: [geometry2, kdl_parser, robot_state_publisher, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
- 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]
Foxy Fitzroy (May 2020 - May 2023)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [geometry2, kdl_parser, robot_state_publisher,
rosbag2, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
- 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]
Galactic Geochelone (May 2021 - November 2022)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [geometry2, kdl_parser, robot_state_publisher,
rosbag2, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
- 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]
Humble Hawksbill (May 2022 - May 2027)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [geometry2, kdl_parser, robot_state_publisher,
rosbag2, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
- 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
1
2
3
4
5
- perception:
extends: [ros_base]
packages: [image_common, image_pipeline, image_transport_plugins,
laser_filters, laser_geometry, perception_pcl,
vision_opencv]
Simulation
1
2
3
- simulation:
extends: [ros_base]
packages: [ros_ign_bridge, ros_ign_gazebo, ros_ign_image, ros_ign_interfaces]
Desktop Full
1
2
3
- desktop_full:
extends: [desktop]
packages: [perception, simulation, ros_ign_gazebo_demos]
Iron Irwini (May 2023 - November 2024)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [geometry2, kdl_parser, robot_state_publisher,
rosbag2, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
- 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
1
2
3
4
5
- perception:
extends: [ros_base]
packages: [image_common, image_pipeline, image_transport_plugins,
laser_filters, laser_geometry, perception_pcl,
vision_opencv]
Simulation
1
2
3
- simulation:
extends: [ros_base]
packages: [ros_ign_bridge, ros_ign_gazebo, ros_ign_image, ros_ign_interfaces]
Desktop Full
1
2
3
- desktop_full:
extends: [desktop]
packages: [perception, simulation, ros_ign_gazebo_demos]
Jazzy Jalisco (May 2024 - May 2029)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [geometry2, kdl_parser, robot_state_publisher,
rosbag2, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
- 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
1
2
3
4
5
- perception:
extends: [ros_base]
packages: [image_common, image_pipeline, image_transport_plugins,
laser_filters, laser_geometry, perception_pcl,
vision_opencv]
Simulation
1
2
3
- simulation:
extends: [ros_base]
packages: [ros_gz_bridge, ros_gz_sim, ros_gz_image, ros_gz_interfaces]
Desktop Full
1
2
3
- desktop_full:
extends: [desktop]
packages: [perception, simulation, ros_gz_sim_demos]
Rolling Ridley (June 2020 - Ongoing)
ROS Core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 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
1
2
3
4
- ros_base:
extends: [ros_core]
packages: [geometry2, kdl_parser, robot_state_publisher,
rosbag2, urdf]
Desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
- 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
1
2
3
4
5
- perception:
extends: [ros_base]
packages: [image_common, image_pipeline, image_transport_plugins,
laser_filters, laser_geometry, perception_pcl,
vision_opencv]
Simulation
1
2
3
- simulation:
extends: [ros_base]
packages: [ros_gz_bridge, ros_gz_sim, ros_gz_image, ros_gz_interfaces]
Desktop Full
1
2
3
- desktop_full:
extends: [desktop]
packages: [perception, simulation, ros_gz_sim_demos]
ROS Distribution Independent (September 2022 - Ongoing)
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.
Build Essential
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.
1
2
- ros-build-essential:
packages: [cmake, git, python3, python3-setuptools]
Dev Tools
1
2
3
4
5
- ros-dev-tools:
extends: [ros-build-essential]
packages: [python3-bloom, python3-colcon-common-extensions,
python3-colcon-mixin, python3-rosdep,
python3-vcstool, wget]
References
Copyright
This document has been placed in the public domain.
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) ↩︎