I've tried searches for documentation on the package but whilst I can sudo apt install -y ros-humble-perception or load it via docker as "ros-humble-perception" I didn't find any documentation to explain what it is apart from a mention on the humble release, ROS 2 Humble Hawksbill Released!

It appears to have added packages over base but not include simulation or full desktop.


2 Answers 2


The proper reference is the ROS Enhancement Proposals (REPs) which provide a concise technical specification for various things related to ROS. There you can find a document describing the different ROS 2 variants. It says

The perception variant includes packages commonly used for perception capabilities.

and as you can see it is only available from Humble Hawksbill. Thus the ros-humble-perception variant contains following packages:

- perception:
    extends:  [ros_base]
    packages: [image_common, image_pipeline, image_transport_plugins,
               laser_filters, laser_geometry, perception_pcl,

including ros_base that is defined as

- ros_base:
    extends:  [ros_core]
    packages: [geometry2, kdl_parser, robot_state_publisher,
               rosbag2, urdf]

and ros_core with

- 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]

As you can see it doesn't contain any packages needed for a "desktop experience" like rviz2.
Therefore you need to install the largest package via sudo apt install -y ros-humble-desktop-full which contains everything that is officially supplied for ROS 2. (Gazebo must be installed separately, see their instructions)

- desktop_full:
    extends:  [desktop]
    packages: [perception, simulation, ros_ign_gazebo_demos]
  • $\begingroup$ Thanks - the point is I don't want the full desktop but wanted to know what else was available in perception. Thanks for your update! $\endgroup$ Commented Jan 11, 2023 at 15:58

Looking around online, I found this page, which says (in part):

Installing ROS perception We are going to install a single package called perception, which is a meta package of ROS containing all the perception related packages such as OpenCV, PCL, and so on.

In ROS Jade

$ sudo apt-get install ros-jade-perception

In ROS Indigo

$ sudo apt-get install ros-indigo-perception

This looks like the same command you've posted; sudo apt install -y ros-humble-perception, just for a different ROS release.

Looking around some more, I found this Github repo, which seems to be as described in the article.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.