Important Packages and Libraries
Essential ROS & ROS 2 Packages: A Developer's Curated Guide
The Robot Operating System (ROS and its successor ROS 2) offers a powerful and flexible framework for robotics software development. This ecosystem is enriched by a vast collection of open-source packages that provide functionalities for a wide array of robotics tasks. This guide, drawing from community-curated lists like "awesome-ros," "awesome-ros2," and "awesome-robotics-libraries," highlights essential and foundational packages across various categories.
1. Core ROS Infrastructure & Communication
These packages form the bedrock of any ROS/ROS 2 system, enabling communication, node management, and system configuration.
ROS (Robot Operating System)
An open-source, flexible framework providing libraries and tools to build robot applications. Includes message passing, package management, hardware abstraction, and more 1.
ROS 1, ROS 2
ROS Wiki
The primary documentation hub for ROS 1 packages, tutorials, and community information 1.
ROS 1
ROS 2 Documentation
Official documentation for ROS 2, covering concepts, tutorials, design, and migration from ROS 1 2.
ROS 2
ros_core
/ ros_base
(ROS 1)
Metapackages. ros_core
includes essential communication (roscore, rosmaster, topics, services, parameters) and build tools. ros_base
adds common tools like tf
and actionlib
1.
ROS 1
ros2_core
(ROS 2)
Metapackage (defined in REP 2001) including core client libraries (rclcpp, rclpy), CLI tools (ros2cli), build system (ament), middleware interface (rmw), message generation 2.
ROS 2
Client Libraries (roscpp
, rospy
)
(ROS 1) Core C++ (roscpp
) and Python (rospy
) libraries for writing ROS nodes, handling topics, services, parameters, and managing callbacks and timing 1.
ROS 1
Client Libraries (rclcpp
, rclpy
, rclc
)
(ROS 2) Core C++ (rclcpp
), Python (rclpy
), and C (rclc
) client libraries for ROS 2 development 2.
ROS 2
roslib
(ROS 1) Base dependency for ROS Client Libraries and tools. Contains common data structures (e.g., ros::Time
, ros::Duration
) and tools for message/service generation and path bootstrapping 1.
ROS 1
rcutils
(ROS 2)
(ROS 2) Common C utility functions and data structures used across ROS 2 core packages and client libraries 2.
ROS 2
Message Definitions (common_interfaces
)
Standardized message types (e.g., std_msgs
, sensor_msgs
, geometry_msgs
, nav_msgs
) for common data structures ensuring interoperability. Grouped under common_interfaces
in ROS 2 12.
ROS 1, ROS 2
IDL Generators (rosidl_generator_*
)
(ROS 2) Packages that generate language-specific code (C++, Python, C, Java, etc.) from ROS Interface Definition Language (.msg, .srv, .action) files 2.
ROS 2
tf2 (Transform Library)
Manages coordinate frame transformations in 3D space over time. Successor to tf
. geometry2
is the metapackage for tf2 in ROS 2 12.
ROS 1, ROS 2
Launch System (roslaunch
, ros2 launch
)
Tools for starting and managing multiple ROS nodes concurrently, often with parameters and configurations defined in XML (ROS 1) or Python/XML/YAML (ROS 2) launch files 12.
ROS 1, ROS 2
Parameter System (rosparam
, ros2 param
)
Allows nodes to store and retrieve configuration parameters dynamically or from YAML files at runtime 12.
ROS 1, ROS 2
Actions (actionlib
, ros2 action
)
Mechanism for long-running, preemptible tasks (actions) with feedback, such as navigation or manipulation goals 12.
ROS 1, ROS 2
Dynamic Reconfigure (dynamic_reconfigure
)
(ROS 1) Allows parameters of a running node to be changed dynamically without restarting. Useful for tuning. (ROS 2 uses parameter event handlers) 1.
ROS 1
message_filters
/ ros2_message_filters
Synchronizes messages arriving on different topics, often based on timestamps. Crucial for fusing data from multiple sensors 12.
ROS 1, ROS 2
RMW (ROS Middleware Interface) & DDS Implementations
(ROS 2) RMW provides an abstraction layer for different DDS (Data Distribution Service) implementations like Fast-RTPS (default), Cyclone DDS, Connext DDS, etc. 2.
ROS 2
Eclipse Zenoh
A scalable, performant protocol for pub/sub, store/query, compute. Can integrate with ROS 2 (e.g., rmw_zenoh
, zenoh-plugin-dds
) for WAN communication 2.
ROS 2
rosbridge_suite
Provides a JSON API to ROS functionality for non-ROS programs (e.g., web browsers, external applications) via WebSockets 12.
ROS 1, ROS 2
SOSS (System of Systems Synthesizer)
(ROS 2) Integrates ROS 2 with other communication systems via the ROS 2 Integration Service 2.
ROS 2
2. Build Systems & Package Management
Catkin
(ROS 1) The primary build system for ROS 1, based on CMake. Manages package compilation, linking, and generation of messages, services, and actions 1.
ROS 1
Ament
(ROS 2) The build system for ROS 2, designed for more flexibility and support for multiple build types (e.g., ament_cmake
, ament_python
). It supports features like isolated builds and overlays 2.
ROS 2
rosdep
Command-line tool for installing system dependencies for ROS packages based on package.xml
files 1.
ROS 1, ROS 2
rosinstall
/ vcstool
rosinstall
(ROS 1) and vcstool
(ROS 1 & ROS 2) are command-line tools for managing multiple SCM repositories (Git, SVN, etc.) within a ROS workspace 1.
ROS 1, ROS 2
Colcon
(ROS 2) A command-line tool to build, test, and deploy sets of software packages. It is the recommended build tool for ROS 2 workspaces 2.
ROS 2
bloom
Tool for releasing catkin (ROS 1) and ament (ROS 2) packages into rosdistro
for binary distribution (e.g., via apt
) 1.
ROS 1, ROS 2
rosdistro
Defines ROS distributions, listing packages and their versions for each distribution 1.
ROS 1, ROS 2
3. Robot Modeling & Description
URDF (Unified Robot Description Format)
XML format for describing the kinematics, dynamics, visual, and collision properties of a robot model. Parsed by libraries like urdfdom
and urdfdom_headers
1.
ROS 1, ROS 2
Xacro (XML Macros)
An XML macro language used to create more modular, readable, and maintainable URDF files by defining reusable macros and using properties 1.
ROS 1, ROS 2
SDF (Simulation Description Format)
An XML format that describes objects and environments for robot simulators (like Gazebo), visualization, and control. More expressive than URDF for simulation environments 1.
ROS 1, ROS 2 (via Gazebo)
robot_state_publisher
Reads the robot's URDF and joint states (from sensor_msgs/JointState
) to publish the tf2
transformations of the robot's links. Essential for visualization and kinematics 12.
ROS 1, ROS 2
joint_state_publisher
/ joint_state_publisher_gui
Publishes sensor_msgs/JointState
messages. The GUI version provides sliders for manually setting joint positions, useful for testing URDFs and simple control 1.
ROS 1, ROS 2
Phobos (Blender Add-on)
An add-on for Blender for creating URDF and SMURF (Supplementary Model URDF Format) robot models 1.
N/A (Tool)
onshape-to-robot
Tool for converting OnShape CAD assemblies to robot definition files (SDF or URDF) 1.
N/A (Tool)
4. Visualization, Introspection & Debugging Tools
RViz / RViz2
A powerful 3D visualization tool. Displays sensor data (laser scans, point clouds, images), robot models (URDF), coordinate frames (tf), navigation paths, markers, and custom visualizations via plugins 12.
ROS 1, ROS 2
rqt (Framework & Common Plugins)
A Qt-based GUI framework for developing plugins and tools for ROS. Common plugins include rqt_graph
, rqt_plot
, rqt_console
, rqt_image_view
, rqt_publisher
, rqt_reconfigure
, rqt_bag
1.
ROS 1, ROS 2
rosbag / rosbag2
Command-line tools and APIs for recording messages published on ROS topics to a file (.bag
) and replaying them. Invaluable for debugging, testing, and data analysis 12. rosbag2
is the ROS 2 version.
ROS 1, ROS 2
ROS Command-Line Tools (ros*
/ ros2 *
)
Suite of command-line utilities for introspecting and interacting with a running ROS system: listing topics, publishing messages, calling services, viewing node info, managing parameters, etc 12.
ROS 1, ROS 2
PlotJuggler
A Qt-based tool for visualizing time series data, particularly useful for plotting data from ROS topics or rosbag
files. More feature-rich than rqt_plot
1.
ROS 1, ROS 2
Foxglove Studio
Integrated visualization and debugging desktop/web app for robotics data. Combines functionality of tools like RViz, rqt, and more. Supports ROS 1 & 2, MCAP 2.
ROS 1, ROS 2
Webviz (Cruise)
Web-based application for inspecting and visualizing ROS 1 bag files 1.
ROS 1
diagnostics
(diagnostic_updater
, diagnostic_aggregator
)
Framework for collecting, publishing, and analyzing diagnostic data from robot hardware and software components. Helps monitor system health 12.
ROS 1, ROS 2
5. Simulation Environments & Tools
Gazebo (Classic & Ignition/Gazebo Sim)
A powerful 3D robotics simulator with physics engines, sensor simulation, and extensive ROS integration via gazebo_ros_pkgs
(ROS 1) or ros_gz
(ROS 2) 12. Ignition Gazebo is the next generation.
ROS 1, ROS 2
Webots
A professional open-source robot simulator widely used for R&D and education. Provides ROS and ROS 2 interfaces 12.
ROS 1, ROS 2
Unity Robotics Hub
Tools, tutorials, and resources for robotics simulation in the Unity game engine, including high-performance communication with ROS/ROS 2 12.
ROS 1, ROS 2
NVIDIA Isaac Sim
NVIDIA’s robotics simulation application and synthetic data generation tool, built on Omniverse. Offers photorealistic rendering and physics simulation with ROS/ROS 2 support 1.
ROS 1, ROS 2
CoppeliaSim (formerly V-REP)
A versatile and scalable robot simulation framework with ROS and ROS 2 interfaces 1.
ROS 1, ROS 2
AirSim (Microsoft)
Open-source simulator for autonomous vehicles (drones, cars) based on Unreal Engine, with ROS support 1.
ROS 1, ROS 2
CARLA Simulator
Open-source simulator for autonomous driving research, built on Unreal Engine, with ROS integration 1.
ROS 1, ROS 2
Habitat-Sim
A flexible, high-performance 3D simulator for embodied AI research (navigation, instruction following) with a Python API 1.
Python
PyBullet
Python bindings for the Bullet Physics SDK, enabling quick prototyping of robotics, reinforcement learning, and VR 1.
Python
Stage (stage_ros
)
A lightweight 2D multi-robot simulator, suitable for testing 2D navigation and SLAM algorithms with less computational overhead than 3D simulators 1.
ROS 1
ARGoS
A physics-based simulator designed for large-scale heterogeneous robot swarms 1.
C++
MORSE (Modular Open Robots Simulation Engine)
A generic simulator for academic robotics, allowing simulation of small to large indoor and outdoor environments, with various robots and sensors 1.
ROS 1 (primarily)
6. Navigation, SLAM & Localization (Mobile Robots)
Core packages for enabling mobile robots to perceive their environment, determine their location, build maps, and move autonomously.
Navigation Stack (ROS 1) / Navigation2 (nav2_bringup
, etc.)
Comprehensive software stacks for 2D mobile robot navigation. Includes global/local planners, costmap layers, localization (AMCL), recovery behaviors 12. nav2_bringup
is key for launching Navigation2.
ROS 1, ROS 2
AMCL (Adaptive Monte Carlo Localization)
A probabilistic 2D localization algorithm using a particle filter to track a robot's pose against a known map, based on sensor data (typically laser scans) and odometry 12.
ROS 1, ROS 2
AMCL (ROS Wiki) (ROS 1) nav2_amcl (GitHub) (ROS 2)
GMapping (slam_gmapping
)
A widely used laser-based SLAM (Simultaneous Localization and Mapping) algorithm that creates 2D occupancy grid maps using a Rao-Blackwellized particle filter 12.
ROS 1, (ROS 2 community ports)
Cartographer ROS (cartographer_ros
)
Google's system for real-time SLAM in 2D and 3D across multiple platforms and sensor configurations (LiDAR, IMU, odometry, cameras). Produces globally consistent maps 12.
ROS 1, ROS 2
SLAM Toolbox
A set of tools and capabilities for 2D SLAM (based on Karto), offering features like lifelong mapping, map editing, robust localization, and map merging 12.
ROS 1, ROS 2
Hector SLAM (hector_slam
)
A SLAM approach primarily for laser scanners that can operate without odometry, relying on high scan matching rates. Useful for platforms like handheld mapping systems or UAVs 1.
ROS 1
ORB-SLAM2 / ORB-SLAM3 (ROS Wrappers)
Highly acclaimed visual SLAM systems that compute camera trajectory and a sparse 3D reconstruction with monocular, stereo, or RGB-D cameras 12. ROS wrappers facilitate integration.
ROS 1, ROS 2 (community ports)
RTAB-Map (Real-Time Appearance-Based Mapping)
Graph-based SLAM for RGB-D and stereo cameras, capable of large-scale, long-term mapping with loop closure. Generates 2D occupancy grids and 3D point clouds 1.
ROS 1, ROS 2
robot_localization
Provides sensor fusion (EKF, UKF) for estimating a robot's 3D pose by fusing odometry, IMU, GPS, and visual odometry data 1.
ROS 1, ROS 2
move_base
(ROS 1)
The central node in the ROS 1 Navigation Stack that links global/local planners with a costmap to achieve navigation goals. Replaced by a modular architecture in Navigation2 1.
ROS 1
teb_local_planner
A local planner plugin for move_base
(ROS 1) and Navigation2 (ROS 2) that optimizes trajectories considering time, obstacles, and kinematic constraints (Timed Elastic Band) 1.
ROS 1, ROS 2
DWB_controller (Navigation2)
A highly configurable local planner in Navigation2, successor to DWA and Eband planners, using plugin-based critics to score trajectories 2.
ROS 2
OctoMap (octomap_server
, octomap_mapping
)
Efficient probabilistic 3D mapping framework based on octrees. Represents free, occupied, and unknown space. octomap_server
provides ROS integration 12. octomap_server2
is a ROS 2 port.
ROS 1, ROS 2
LIO-SAM (LIO-SAM
)
A tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping system for robust navigation in complex environments 1. ROS packages available.
ROS 1
FAST_LIO (FAST_LIO
)
A computationally efficient and robust Lidar-inertial odometry package 1. ROS packages available.
ROS 1
VINS-Mono / VINS-Fusion
Robust and versatile monocular/stereo visual-inertial state estimator 1. ROS packages available.
ROS 1
LeGO-LOAM
Lightweight and Ground-Optimized Lidar Odometry and Mapping for UAVs or ground vehicles 1. ROS packages available.
ROS 1
NDT (Normal Distributions Transform)
A scan matching algorithm often used for localization and mapping, particularly with 3D LiDAR data. Various ROS implementations exist.
ROS 1, ROS 2
(Search "NDT SLAM ROS" or "NDT localization ROS")
ICP (Iterative Closest Point)
A widely used algorithm for aligning 3D point clouds. Used in SLAM and registration tasks. PCL provides implementations.
ROS 1, ROS 2 (via PCL)
(Refer to PCL ROS packages)
7. Manipulation, Control & Kinematics (Robot Arms)
MoveIt
A comprehensive and widely used open-source software platform for mobile manipulation. Incorporates motion planning, manipulation, 3D perception, kinematics, control, and navigation 12.
ROS 1, ROS 2
ros_control / ros2_control
A framework for real-time robot control in ROS/ROS 2. It provides a set of controllers, transmissions, and hardware interfaces, making controllers generic and reusable across different robots. Essential for interfacing with physical robot hardware 12.
ROS 1, ROS 2
ros_controllers
/ ros2_controllers
A library of standard controllers for ros_control
/ros2_control
, including joint state, effort, velocity, position, and joint trajectory controllers 12.
ROS 1, ROS 2
KDL (Orocos Kinematics and Dynamics Library) (orocos_kdl
)
C++ library for kinematics and dynamics of rigid body systems. Provides solvers for FK, IK (Jacobian-based), dynamics. Often used by MoveIt. ROS wrappers like python_kdl
and kdl_parser
exist 12.
ROS 1, ROS 2
Orocos KDL (GitHub) (Core) kdl_parser (ROS Wiki) (ROS wrapper)
Trac-IK (trac_ik_kinematics_plugin
)
An inverse kinematics solver, often faster and more robust than the default KDL solver, especially near singularities or for redundant manipulators. Usable as a MoveIt plugin 1.
ROS 1, ROS 2
IKFast (OpenRAVE)
A powerful analytical inverse kinematics solver generator. Generates optimized C++ code for fast, reliable IK solutions for specific robot kinematic chains by analyzing the URDF 1.
ROS 1 (often used with)
OpenRAVE IKFast (Search tutorials on generating IKFast plugins for MoveIt)
Pinocchio
C++ library with Python bindings for poly-articulated systems based on rigid body dynamics. Implements efficient algorithms for kinematics, dynamics, and their analytical derivatives. Supports URDF 1.
C++/Python
Robotics Library (RL)
A self-contained C++ library for robot kinematics, motion planning, and control 1.
C++
RBDL (Rigid Body Dynamics Library)
C++ library with Python bindings for efficient forward and inverse dynamics of articulated rigid body systems. Supports URDF 1.
C++/Python
OMPL (Open Motion Planning Library)
A library of sampling-based motion planning algorithms (RRT, PRM, etc.). Heavily used by MoveIt for path planning 1.
C++
GraspIt!
A simulation environment specifically for robotic grasping research. Allows for designing robot hands, importing object models, and testing grasp planning algorithms 1.
ROS 1 (integration)
agile_grasp
ROS package for finding antipodal grasps in 3D point clouds, useful for robotic picking applications 1.
ROS 1
moveit_simple_grasps
(ROS 1) A basic grasp generator for MoveIt, for simple objects like blocks or cylinders 1.
ROS 1
PID Controller (pid
package / ros2_control
PID)
Packages/implementations providing Proportional-Integral-Derivative (PID) controllers for ROS/ROS 2, widely used for closed-loop control of joints or other systems 12.
ROS 1, ROS 2
ros2_SimRealRobotControl
ROS 2 (Humble) packages for controlling various industrial and collaborative robots (ABB IRB-120, UR3) in simulation (Gazebo) and real-world, using MoveIt!2 2.
ROS 2
PyKDL
Python bindings for the Orocos KDL library, allowing kinematic calculations in Python.
Python
http://wiki.ros.org/pykdl_utils
(ROS wrapper example)
(Usually installed with KDL ROS packages)
8. Perception (Vision, Point Clouds, Sensors)
Libraries and packages crucial for enabling robots to "see" and interpret their environment.
OpenCV (vision_opencv
)
ROS wrappers for the OpenCV library. cv_bridge
converts between ROS images and OpenCV images. image_geometry
handles camera models 12.
ROS 1, ROS 2
PCL ROS (perception_pcl
)
ROS integration for the Point Cloud Library (PCL), for processing 3D point cloud data (filtering, segmentation, registration, etc.) 1.
ROS 1, ROS 2
image_common
Metapackage including image_transport
(compressed image transport), camera_info_manager
(handles camera calibration data), cv_bridge
12.
ROS 1, ROS 2
image_pipeline
(ROS 1)
(ROS 1) Collection of nodes for common image processing: camera_calibration
, image_proc
(rectification, color processing), depth_image_proc
(depth to point cloud) 1. Functionality often split or integrated differently in ROS 2.
ROS 1
camera_calibration
Tools for calibrating monocular and stereo cameras using a checkerboard pattern 12.
ROS 1, ROS 2
Kalibr
Advanced toolbox for calibrating multiple cameras, camera-IMU systems, and rolling shutter cameras 1.
ROS 1
easy_handeye
ROS package wrapping hand-eye calibration routines (e.g., from ViSP) to find the transform between a robot's end-effector and a sensor 1.
ROS 1, ROS 2
find_object_2d
Simple Qt interface to try OpenCV feature detectors/descriptors (SIFT, SURF, ORB, FAST, BRIEF) for 2D object detection 1.
ROS 1
AprilTag ROS (apriltag_ros
)
ROS/ROS 2 wrapper for AprilTag fiducial marker detection, providing pose estimation 12.
ROS 1, ROS 2
Darknet ROS (darknet_ros
)
ROS/ROS 2 wrapper for Darknet (YOLO object detection) 2.
ROS 1, ROS 2
Specific Camera Drivers
realsense-ros
, zed-ros-wrapper
/zed-ros2-wrapper
, libuvc_camera
, pylon_camera
(Basler), camera_aravis
(GigE), ros2_raspicam_node
, ros_astra_camera
, ros2_usb_camera
12.
ROS 1, ROS 2
(Search ROS Index or GitHub for specific camera models, e.g., realsense-ros (GitHub))
Specific LiDAR Drivers
velodyne_driver
, sick_scan
/sick_scan2
, urg_node
, ouster_ros
/ros2_ouster_drivers
, ydlidar_ros2_driver
, hesai_lidar
, livox_ros_driver
12.
ROS 1, ROS 2
(Search ROS Index or GitHub for specific LiDAR models, e.g., Velodyne (GitHub))
ViSP (visp_ros
)
Visual Servoing Platform with ROS integration for vision-based control tasks 1.
ROS 1, ROS 2
image_view
A simple tool to display images published on a ROS topic 1.
ROS 1, ROS 2
stereo_image_proc
Processes stereo camera images to produce disparity images and point clouds 1.
ROS 1, ROS 2
depth_image_proc
Processes depth images from RGB-D cameras, enabling conversion to point clouds, registration with color images, etc 1.
ROS 1, ROS 2
Basalt VIO (basalt_ros2
)
ROS 2 wrapper for Basalt Visual-Inertial Odometry 2.
ROS 2
fiducials
(Ubiquity Robotics)
SLAM and localization using fiducial markers (e.g., ArUco) 1.
ROS 1
image_recognition_openvino
ROS2 wrapper for OpenVINOâ„¢ toolkit for image recognition tasks.
ROS 2
https://github.com/intel/ros2_openvino_toolkit/tree/main/openvino_node_demos/image_recognition_openvino
9. Hardware Interfacing, Drivers & Communication
joy
/ joystick_drivers
Generic ROS driver for joysticks/gamepads, publishing sensor_msgs/Joy
. teleop_twist_joy
converts Joy to Twist for robot control 12.
ROS 1, ROS 2
rosserial
(ROS 1) ROS communication with microcontrollers (Arduino, ESP32) over serial, allowing MCUs to act as ROS nodes 1.
ROS 1
micro-ROS
(ROS 2) Framework to bring ROS 2 to microcontrollers (STM32, ESP32, RPi Pico). Uses Micro XRCE-DDS. Supported by FreeRTOS, Zephyr, NuttX 2. Includes micro_ros_arduino
.
ROS 2
ros_canopen
/ ros2_canopen
Packages for integrating CANopen devices (common in industrial automation) with ROS/ROS 2 1.
ROS 1, ROS 2
SocketCAN (socketcan_interface
, ros2_socketcan
)
Provides an interface to CAN bus devices using SocketCAN drivers in Linux 1.
ROS 1, ROS 2
EtherCAT (ros_ethercat
, ethercat_driver_ros2
)
Packages for interfacing with EtherCAT devices, a high-performance industrial Ethernet protocol 1.
ROS 1, ROS 2
Modbus (modbus
, modbus_ros
)
Libraries and ROS wrappers for Modbus TCP/IP and serial communication, common in industrial settings 1.
ROS 1, ROS 2
libmodbus (Core library) modbus (ROS Wiki - ROS 1)
ROS-Industrial (ros_industrial
)
Open-source project extending ROS to industrial robots and automation (Fanuc, ABB, Motoman, Universal Robots). Universal_Robots_ROS2_Driver
is a key example 12.
ROS 1, ROS 2
Dynamixel SDK / Dynamixel Workbench
Libraries and ROS packages for controlling Dynamixel smart servo motors 1.
ROS 1, ROS 2
HRIM (Hardware Robot Information Model)
A standard interface for robot modules, aiming to improve interoperability in modular robotics 2.
ROS 2
HRIM (GitHub - Erle Robotics, original) (Search for current community efforts)
serial
(ROS 1) / serial_driver
(ROS 2)
Libraries for serial port communication, often used for custom hardware interfaces. serial_driver
in ROS 2 is part of ros-drivers
.
ROS 1, ROS 2
Husarnet VPN
P2P, secure VPN for ROS & ROS 2, facilitating multi-robot communication over various networks 2.
ROS 1, ROS 2
FIROS2
ROS 2 integrable tool for intercommunication between ROS 2 and FIWARE (open source platform for smart solutions) 2.
ROS 2
PX4 ROSCom (mavros
, px4_ros_com
)
mavros
(ROS 1) and px4_ros_com
/ px4_msgs
(ROS 2) bridge for communication between ROS/ROS 2 and PX4 Autopilot (for drones) 12.
ROS 1, ROS 2
ODrive (odrive_ros2_control
)
ROS 2 driver for ODrive motor controllers 2.
ROS 2
Phidgets ROS (phidgets_drivers
)
ROS packages for Phidgets sensors and interface kits.
ROS 1, ROS 2
10. Machine Learning & AI Integration
Packages that bridge ROS with popular machine learning frameworks.
TensorFlow ROS (tensorflow_ros_cpp
, ros2-tensorflow
)
Bindings and wrappers for using TensorFlow within ROS/ROS 2 C++ or Python nodes, often for computer vision and perception tasks 12.
ROS 1, ROS 2
PyTorch ROS (ros2_pytorch
, ros2_pytorch_cuda
)
ROS 2 nodes for computer vision tasks using PyTorch, with CUDA support extensions 2.
ROS 2
OpenAI Gym ROS (openai_ros
, gym-gazebo
)
(ROS 1) Provides a common structure and tools for training reinforcement learning agents with robots in simulation (e.g., Gazebo) using the OpenAI Gym interface 1.
ROS 1
OpenVINO Toolkit ROS (ros2_openvino_toolkit
)
ROS 2 wrapper for Intel's OpenVINOâ„¢ toolkit for optimizing and deploying deep learning inference for computer vision applications 2.
ROS 2
Intel Movidius NCS ROS (ros2_intel_movidius_ncs
)
ROS 2 wrapper for Movidiusâ„¢ Neural Compute Stick (NCS) Neuronal Compute API, for hardware-accelerated deep learning inference 2.
ROS 2
easy_perception_deployment
(ROS 2) Package aimed at accelerating training and deployment of Computer Vision models for industrial applications 2.
ROS 2
(See Awesome ROS 2 list for potential links - specific public repo may vary)
easy_manipulation_deployment
(ROS 2) Package that integrates perception elements to establish an end-to-end pick and place task, likely leveraging ML for perception 2.
ROS 2
(See Awesome ROS 2 list for potential links - specific public repo may vary)
ros2_object_analytics
ROS 2 wrapper for real-time object detection, localization, and tracking, often leveraging underlying ML models 2.
ROS 2
Edge Impulse for Linux ROS Node
Brings Edge Impulse's embedded machine learning capabilities to ROS, enabling ML on edge devices 2.
ROS 2
https://github.com/edgeimpulse/linux-ros
(Check for ROS 2 specific branches/info)
This expanded guide provides a more comprehensive starting point for exploring the rich ecosystem of ROS and ROS 2 packages. The "Awesome" lists from which this is derived are excellent resources for discovering even more specialized tools and libraries. Always refer to the official documentation for each package for the most up-to-date information and usage guidelines.
ShareExportRewrite
Last updated