Ingredient
ROS 2
Also known as: Robot Operating System 2, ROS
Open-source middleware framework for robotics — not an operating system but a set of libraries, tools, and conventions that make it possible to compose a robot from many independent processes (nodes) communicating over a publish-subscribe message bus. The standard framework for non-trivial robotics work: every academic-and-research robot, most autonomous-rover projects, and the FarmBot research community use ROS or ROS 2. Ships with battle-tested packages for navigation (Nav2), perception (point-cloud processing, 3D mapping), control (MoveIt!), simulation (Gazebo), and visualization (RViz). Apache 2.0 licensed.
Inputs / outputs
- Architecture: distributed nodes that publish/subscribe to typed topics, request/respond via services, and act as servers for actions
- Transport: DDS (Data Distribution Service) — auto-discovery, QoS-configurable
- Languages: C++, Python, with bindings for Rust, JavaScript
- Run on: Linux (Ubuntu officially supported), macOS, Windows; Docker images available
Solves / unlocks
- Composable robot architectures (perception, planning, control as separate nodes)
- Pre-built navigation (Nav2 — global + local planners, recovery behaviors, costmaps)
- Pre-built motion planning (MoveIt2 — kinematic-arm planning, collision detection)
- Simulation-first development (Gazebo + ROS2 = test in sim, deploy to hardware)
- Multi-robot coordination (DDS auto-discovery scales to fleets)
- Sensor fusion (multiple LiDAR + cameras + IMU + GPS into a coherent estimate)
Constraints
- Heavy — ROS2 is not for tiny hobbyist projects; an Arduino with three lines of code is faster to deploy than a ROS2 graph.
- Learning curve — concepts of nodes, topics, parameters, lifecycle, QoS take time to internalize.
- Real-time is hard — ROS2 supports real-time but the default DDS path is not RT-friendly; pair with a deterministic MCU below the ROS layer.
- Versioning churn — Foxy, Humble, Iron, Jazzy, Kilted, Lyrical: each LTS is a 2-year cycle; pick the current LTS and stick with it.
Source
- Project: https://docs.ros.org/ (Apache 2.0)
- Nav2: https://nav2.org/
- MoveIt2: https://moveit.picknik.ai/
- Gazebo: https://gazebosim.org/
- Tutorials: https://docs.ros.org/en/humble/Tutorials.html
See also
Auto-generated from this entry’s typed relations: frontmatter, grouped by relation type so the editorial signal isn’t flattened.
- Member of: [[ingredient]]
- Combines with: [[raspberry-pi]] · [[nvidia-jetson]] · [[lidar-rangefinder]] · [[rgbd-camera]] · [[servo-motor]] · [[stepper-motor]] · [[acorn-rover]]
What links here, and how
Inbound connections from across the wiki, grouped by lens and by relationship. These appear automatically — every entity page declares what it links to, and that data populates here on the targets.
Practical
combines with
- Acorn rover Acorn rover reference design is built on ROS2
- BeagleBone Black ROS2 runs on Debian ARM; PRUs handle the deterministic motion layer below ROS
- GPS-RTK ROS2 nmea_navsat_driver and ublox_gps packages publish to /fix; standard input to robot_localization EKF
- IMU (MPU6050 / BNO085) ROS2 imu_tools package fuses IMU + GPS into pose estimation via robot_localization
- LiDAR rangefinder ROS2 has drivers for every common LiDAR; standard input to Nav2 navigation stack
- NVIDIA Jetson Jetson is the standard ROS2 perception-and-navigation node for hobbyist autonomous rovers
- OpenCV cv_bridge converts between ROS2 image messages and OpenCV Mat objects
- PX4 / ArduPilot autopilot MAVROS bridges PX4/ArduPilot to ROS2 for higher-level mission planning and computer-vision integration
- Raspberry Pi ROS2 runs natively on Ubuntu ARM64; Pi 4/5 is the standard low-cost ROS2 control node
- RGB-D camera ROS2 has mature drivers for RealSense, ZED, Astra; standard input to 3D perception nodes
- Servo motor ROS2 servo controllers expose joint-position interfaces for arm-style robots
- YOLO (object detection) ros2_yolo packages turn YOLO into a ROS2 perception node
contains
- Farm-tech toolkit framework / robotics middleware
combines
- Recipe: autonomous row-crop weeder the middleware tying perception, navigation, and actuation into one graph
14 inbound links · 8 outbound