From 6d7ef4a13764e88a2fc5da631956a9b398c24793 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 19 Mar 2018 09:20:31 -0400 Subject: [PATCH] Add in REP-150: updated metapackages for ROS Melodic (#144) * Add in REP-150 Signed-off-by: Chris Lalancette * Fixes from review. 1. Add Tully back as one of the authors. 2. Remove collada_urdf from the packages for robot. 3. Remove all language prior to Melodic. 4. Fix the desktop_full variant to make urdf_tutorial a package. Signed-off-by: Chris Lalancette * Add urdf_sim_tutorial to the list of packages in desktop_full. Signed-off-by: Chris Lalancette * Fix up the wording around urdf tutorials. Signed-off-by: Chris Lalancette * Move the changes up to the Motivation section. Signed-off-by: Chris Lalancette * Fix Tully's email address. Signed-off-by: Chris Lalancette * Update Tully's email address everwhere. * Move urdf_tutorial into desktop. * Remove an obsolete comment. Signed-off-by: Chris Lalancette * More fixes from review. Signed-off-by: Chris Lalancette * Remove duplicate rosconsole_bridge. Signed-off-by: Chris Lalancette * More fixes from review. 1. Make ros and ros_comm packages as part of ros_core 2. Restore rosgraph_msgs and std_srvs as part of ros_core 3. Add angles to desktop Signed-off-by: Chris Lalancette --- rep-0003.rst | 2 +- rep-0100.rst | 2 +- rep-0107.rst | 2 +- rep-0131.rst | 2 +- rep-0133.rst | 2 +- rep-0142.rst | 2 +- rep-0150.rst | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 211 insertions(+), 6 deletions(-) create mode 100644 rep-0150.rst diff --git a/rep-0003.rst b/rep-0003.rst index 6624b3f7e..b64fd8994 100644 --- a/rep-0003.rst +++ b/rep-0003.rst @@ -1,6 +1,6 @@ REP: 3 Title: Target Platforms -Author: Tully Foote , Ken Conley +Author: Tully Foote , Ken Conley Status: Active Type: Informational Content-Type: text/x-rst diff --git a/rep-0100.rst b/rep-0100.rst index 7c9f30d7e..f7ef7d605 100644 --- a/rep-0100.rst +++ b/rep-0100.rst @@ -1,6 +1,6 @@ REP: 100 Title: ROS Stack Separation -Author: Tully Foote , Ken Conley , Brian Gerkey +Author: Tully Foote , Ken Conley , Brian Gerkey Status: Final Type: Standards Track Content-Type: text/x-rst diff --git a/rep-0107.rst b/rep-0107.rst index fcb1b58ff..c1ab3bcd3 100644 --- a/rep-0107.rst +++ b/rep-0107.rst @@ -1,6 +1,6 @@ REP: 107 Title: Diagnostic System for Robots Running ROS -Author: Tully Foote +Author: Tully Foote Status: Final Type: Standards Track Content-Type: text/x-rst diff --git a/rep-0131.rst b/rep-0131.rst index 409f1d339..979ad1fcb 100644 --- a/rep-0131.rst +++ b/rep-0131.rst @@ -1,6 +1,6 @@ REP: 131 Title: ROS Groovy Variants -Author: Tully Foote +Author: Tully Foote Status: Active Type: Informational Content-Type: text/x-rst diff --git a/rep-0133.rst b/rep-0133.rst index 726c950e2..db274489c 100644 --- a/rep-0133.rst +++ b/rep-0133.rst @@ -1,6 +1,6 @@ REP: 133 Title: Separation of build environment and source tree tools -Author: Tully Foote , Dirk Thomas, Thibault Kruse , William Woodall +Author: Tully Foote , Dirk Thomas, Thibault Kruse , William Woodall Status: Active Type: Informational Content-Type: text/x-rst diff --git a/rep-0142.rst b/rep-0142.rst index 149b40b3c..c8f40f199 100644 --- a/rep-0142.rst +++ b/rep-0142.rst @@ -1,6 +1,6 @@ REP: 142 Title: ROS Indigo and Newer Metapackages -Author: Tully Foote +Author: Tully Foote Status: Active Type: Informational Content-Type: text/x-rst diff --git a/rep-0150.rst b/rep-0150.rst new file mode 100644 index 000000000..d766f6154 --- /dev/null +++ b/rep-0150.rst @@ -0,0 +1,205 @@ +REP: 150 +Title: ROS Melodic and Newer Metapackages +Author: Tully Foote , Chris Lalancette +Status: Active +Type: Informational +Content-Type: text/x-rst +Created: 03-Nov-2017 +Post-History: + + +Abstract +======== + +This REP describes the metapackages for the ROS Melodic release and for releases that follow until otherwise replaced by a similar update REP. +This REP updates REP 131 [3]_ and REP 142 [5]_ for changes in packages. + + +Motivation +========== + +For a discussion on the general motivation and role of variants, +please see REP 108 [1]_. + +As of ROS Hydro we have completed the transition to using +metapackages instead of variants. +For more information on metapackages see REP 127 [2]_. + +This document covers the common metapackages used for recommended +installations. +It is expressed in the ros/metapackages repository on github.com +[4]_. + +This REP proposes the same entrypoints as REP 108 and merely updates +the variant definitions to reflect the organizational changes in ROS +stacks. +In particular, in ROS Melodic the `robot` metapackage is contracted to remove +`robot_model` and instead explicitly list the necessary packages. + +The definitions in this REP are more focused and concise for clearer +purpose, and do not list all transitive dependencies explicitly. + + +Specification +============= + +End-user entry points +--------------------- + +We define the same three main entry points for ROS users as REP 108 +[1]_. + + * desktop_full (recommended) + * desktop + * ros_base + +Metapackages +------------ + +ROS Core +'''''''' + +The `ros_core` metapackage composes the core communication protocols. +It may not contain any GUI dependencies. + +:: + + - ros_core: + packages: [catkin, cmake_modules, common_msgs, gencpp, geneus, genlisp, + genmsg, gennodejs, genpy, message_generation, message_runtime, + ros, ros_comm, rosbag_migration_rule, rosconsole_bridge, + roscpp_core, rosgraph_msgs, roslisp, rospack, std_msgs, std_srvs] + +ROS Base +'''''''' + +The `ros_base` metapackage composes the `ros_core` metapackage with +commonly used libraries. +It may not contain any GUI dependencies. + +:: + + - ros_base: + extends: [ros_core] + packages: [actionlib, bond_core, class_loader, + dynamic_reconfigure, nodelet_core, + pluginlib] + +Robot metapackage +''''''''''''''''' + +The `robot` metapackage is defined to be core, stable, ROS libraries +for any robot hardware. +It is the "general robotics" libraries of ROS. +It may not contain any GUI dependencies. + +:: + + - robot: + extends: [ros_base] + packages: [control_msgs, diagnostics, executive_smach, filters, geometry, + joint_state_publisher, kdl_parser, kdl_parser_py, + robot_state_publisher, urdf, urdf_parser_plugin, xacro] + +Capability variants +''''''''''''''''''' + +The capability variants organize commonly used libraries that are +specific to a class of use case. +We also define a `simulators` variant that provides an organizational +role for higher-level variants. +We discourage GUI dependencies in these stacks, if possible. + +:: + + - perception: + extends: [ros_base] + packages: [image_common, image_pipeline, + image_transport_plugins, laser_pipeline, + perception_pcl, vision_opencv] + + - simulators: + extends: [robot] + packages: [gazebo_ros_pkgs, rqt_common_plugins, rqt_robot_plugins, + stage_ros] + + - viz: + extends: [ros_base] + packages: [rqt_common_plugins, rqt_robot_plugins, rviz] + +Desktop variants +'''''''''''''''' + +The `desktop` variants are main entry points for users. +The `desktop_full` is a "batteries included" experience for users and +attempts to collect stable, well-documented libraries. +These libraries may be specific to certain classes of robots, such as +mobile robots, though they are not specific to a particular robot. +The `desktop` variant is more minimal and only provides the stacks in +the `robot` variant, plus visualization and debugging tools. +Both of these variants contain tutorials for the stacks they provide. + +:: + + - desktop: + extends: [robot, viz] + packages: [angles, common_tutorials, geometry_tutorials, ros_tutorials, + roslint, urdf_tutorial, visualization_tutorials] + - desktop_full: + extends: [desktop, perception, simulators] + packages: [urdf_sim_tutorial] + +Institution-specific and robot-specific +''''''''''''''''''''''''''''''''''''''' + +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. + + +Backwards Compatibility +======================= + +The metapackages in this REP provide the same semantic top level +entry points while simplifying the definitions. + + +References +========== + +.. [1] REP 108: Diamondback Variants + (http://www.ros.org/reps/rep-0108.html) + +.. [2] REP 127: Specification of package manifest format + (http://ros.org/reps/rep-0127.html) + +.. [3] REP 131: Groovy Variants + (http://www.ros.org/reps/rep-0131.html) + +.. [4] ROS Metapackages Repository + (https://github.com/ros/metapackages) + +.. [5] REP 142: Indigo Variants + (http://www.ros.org/reps/rep-0142.html) + + +Copyright +========= + +This document has been placed in the public domain. + + +.. + Local Variables: + mode: indented-text + indent-tabs-mode: nil + sentence-end-double-space: t + fill-column: 70 + coding: utf-8 + End: