Software matrix
Eighteen robotics frameworks, simulators and libraries on one page, with the version at the time of writing, licence, operating system support, language bindings and what each is good at.
This page is for anyone choosing a robotics stack or checking that theirs is current. We read every version from the project’s own release page, tag list or package index on 14 November 2026. We read every licence from the repository’s LICENSE file. Operating system support is what each project’s documentation states, not what a community port achieves. Versions drift within weeks, so check the release page before you pin anything.
The matrix
| Project | Version at the time of writing | Licence | OS support (from the project’s docs) | Bindings | Strengths |
|---|---|---|---|---|---|
| ROS 2 | Lyrical Luth (LTS, released 22 May 2026, supported to May 2031) is the latest release. Jazzy Jalisco (LTS, May 2024, supported to May 2029) is the previous LTS | Apache-2.0 (core client libraries) | Lyrical: Tier 1 on Ubuntu 26.04 (amd64, arm64) and Windows 11, Tier 2 on RHEL 10. Jazzy: Tier 1 on Ubuntu 24.04 and Windows 10, Tier 2 on RHEL 9. macOS is Tier 3 for both, which means a source build with no binaries | C++ (rclcpp), Python (rclpy) | Shared middleware with launch, parameters, tf2, bags and a large package ecosystem, so drivers and tools from different groups fit together |
| Gazebo | Jetty (LTS, September 2025, supported to May 2031), gz-sim 10.6.0 | Apache-2.0 | Official on Ubuntu 24.04 and 26.04 (amd64). macOS and Windows are best-effort: Homebrew on macOS Sequoia (arm64), experimental conda-forge builds on Windows | C++ (plugins), Python bindings for gz-sim | Default simulator paired with ROS 2 (Jetty is the pairing for Lyrical), sensors, SDF worlds, ros_gz bridge |
| Isaac Sim | 6.2.0 (14 October 2026) | Apache-2.0 for the repository code, plus NVIDIA’s additional licence for the Omniverse Kit SDK and assets | Ubuntu 22.04 and 24.04, Windows 11, x86_64 with an RTX GPU. aarch64 only on DGX Spark. No macOS | Python | RTX rendering for camera simulation, PhysX, ROS 2 bridge |
| Isaac Lab | 3.0.0 (20 October 2026) | BSD-3-Clause (the isaaclab_mimic extension is Apache-2.0) |
Ubuntu 22.04+ on x86_64, Linux aarch64, Windows 11. Needs an NVIDIA GPU for training. No macOS | Python | GPU-parallel reinforcement and imitation learning, with Newton (Warp) or Isaac Sim as the backend |
| MuJoCo | 4.0.1 (11 November 2026) | Apache-2.0 | Linux (x86_64, aarch64), macOS (universal binary), Windows (x86_64) | C, Python. MJX (JAX) and MuJoCo Warp for GPU batches, Unity plug-in | Fast contact dynamics, MJCF, widely used in learning and control research |
| PyBullet | 3.2.7 on PyPI (30 January 2025). The last GitHub release is 3.25 (April 2022) | zlib | PyPI has a wheel for Linux x86_64 only and a source build elsewhere. conda-forge builds cover Linux, macOS and Windows | Python | Quick scripts, URDF loading, p.DIRECT headless mode. Development has slowed, so check before starting a long project |
| Webots | R2025a (4 February 2025). Only nightly builds since then | Apache-2.0 | Ubuntu 22.04 and 24.04 (x86-64), Windows 10 and 11, macOS 12 to 14 | C, C++, Python, Java, MATLAB | Teaching, a large built-in robot library, a complete GUI |
| Drake | 1.58.0 (15 October 2026) | BSD-3-Clause | Ubuntu 24.04 and 26.04, macOS 26 and 27 (arm64 only), Amazon Linux 2023. No Windows | C++, Python (pydrake) | Model-based design: multibody dynamics, optimisation, trajectory and contact-rich planning |
| MoveIt 2 | 2.15.2 for Lyrical, 2.12.4 for Jazzy (rosdistro) | BSD-3-Clause | Binaries for Ubuntu with each ROS 2 distribution. The project also documents Windows installs. No macOS instructions | C++, Python (moveit_py) | Arm motion planning (OMPL, Pilz, CHOMP, STOMP planners), collision checking, MoveIt Servo for real-time arm servoing |
| Nav2 | 1.5.3 (17 October 2026, Lyrical). Jazzy ships 1.3.14 | Per package: Apache-2.0, BSD-3-Clause or LGPL-2.1-or-later | Ubuntu packages through the ROS 2 apt repository. Elsewhere it follows the ROS 2 tiers | C++ plug-ins, Python (nav2_simple_commander) | Mobile robot navigation: costmaps, planners, controllers, behaviour trees, docking |
| OMPL | 2.0.2 (14 August 2026). The PyPI wheels are 2.0.1 | BSD-3-Clause | Linux, macOS, Windows (vcpkg, without Python bindings). Python wheels for Linux and macOS | C++, Python | Sampling-based planners (RRT family, PRM and many more), used inside MoveIt 2 |
| ros2_control | 6.13.0 for Lyrical, 4.50.0 for Jazzy (rosdistro) | Apache-2.0 | Follows the ROS 2 tiers | C++ | Hardware abstraction and real-time controller manager, so the same controllers run in simulation and on hardware |
| micro-ROS | micro_ros_setup 7.0.0 (tag, 9 October 2026), with branches per distribution including jazzy and lyrical |
Apache-2.0 | Firmware on microcontroller RTOSes (FreeRTOS, Zephyr and others). The agent runs on a ROS 2 host. Docker Hub agent images exist for humble, jazzy, kilted and rolling, with no lyrical tag at the time of writing | C (rclc) | ROS 2 topics and services on microcontrollers over serial, UDP or other transports |
| PX4 | 1.17.0 stable (13 May 2026). 1.18.0-rc1 is in testing | BSD-3-Clause | Development on Ubuntu 22.04 and 24.04, macOS, Windows through WSL2. On macOS the docs list firmware builds and Gazebo SITL, but not ROS 2 with Gazebo | C++ (firmware), ROS 2 through uXRCE-DDS or Zenoh, MAVLink | Autopilot for multirotors, fixed-wing, VTOL, helicopters and rovers, with a permissive licence |
| ArduPilot | Copter, Plane and Rover 4.7.2 (14 October 2026) | GPL-3.0 | Builds on Linux, macOS, Windows through WSL | C++ (firmware), Lua scripts on the vehicle, MAVLink, documented ROS 2 integration | Wide vehicle support (Copter, Plane, Rover, Sub, Blimp and an antenna tracker) |
| OpenCV | 5.1.0 (6 November 2026). The opencv-python wheel on PyPI is 5.0.0.93 |
Apache-2.0 | Linux, macOS, Windows, with wheels for all three | C++, Python, Java | Image processing, camera calibration, feature matching, classical vision |
| PCL | 1.15.1 (26 August 2025) | BSD-3-Clause | Linux, macOS, Windows (all three in CI) | C++ | Point cloud filtering, registration (ICP, NDT), segmentation |
| Open3D | 0.20.0 (16 September 2026) | MIT | Linux (x86_64, aarch64), macOS (arm64 wheels for 0.20.0), Windows | C++, Python | Point clouds and meshes in Python, RGB-D integration, visualisation |
| LeRobot | 0.7.0 (5 November 2026) | Apache-2.0 | Linux, macOS, Windows (the install guide covers all three). Python 3.12 or later | Python | Datasets, policies and training scripts for low-cost arms such as the SO-101 |
How to choose
A robot that will run ROS 2: pick the distribution first. A new project in November 2026 should target Lyrical on Ubuntu 26.04, because it is the newest LTS and is supported to May 2031. Stay on Jazzy if your drivers or vendor packages have not moved yet. The code on this site is tested on Jazzy, and the ROS 2 CLI cheat sheet is written for it.
Simulation for a ROS 2 system: Gazebo, using the version paired with your distribution in the ROS 2 platform tables (Jetty for Lyrical, Harmonic for Jazzy). Use Isaac Sim when you need photorealistic camera data and you have an RTX GPU on Linux or Windows. Webots suits teaching, but it has had no stable release since February 2025.
Control and learning research: MuJoCo for the physics, with MJX or MuJoCo Warp when you need thousands of parallel environments. Use Isaac Lab when your training already lives in the NVIDIA stack. Use Drake when you want optimisation and model-based design rather than a fast stepper. PyBullet is still convenient for short scripts. Its slow release pace makes it a poor base for new long-term work.
Arms: MoveIt 2 for planning, ros2_control underneath for the hardware interface. OMPL comes in through MoveIt 2, or you can call it directly from Python.
Mobile robots: Nav2 on top of ros2_control or a vendor base driver. See the mobile robots hub.
Drones: choose PX4 or ArduPilot mostly by licence and vehicle type. PX4 is BSD-3-Clause, which suits companies that ship modified firmware. ArduPilot is GPL-3.0, so you must publish changes to the firmware you distribute. ArduPilot covers more vehicle types. Both speak MAVLink and both have a ROS 2 path.
Perception: OpenCV for images, PCL in C++ or Open3D in Python for point clouds.
Microcontrollers: micro-ROS when the microcontroller should appear as a ROS 2 node. Otherwise a plain serial protocol to a driver node is simpler to debug.
macOS in one paragraph
Developing on a Mac is possible but uneven. MuJoCo, Drake (Apple Silicon only), OpenCV, Open3D, OMPL and LeRobot install directly. ROS 2 is Tier 3 for both Lyrical and Jazzy, so you build it from source and get no binaries. Gazebo on macOS is best-effort. Isaac Sim and Isaac Lab do not run on macOS. A Linux container or virtual machine is the practical route to ROS 2 on a Mac. Our ROS 2 code blocks are checked in the ros:jazzy-ros-base container for this reason.
Sources
Each version and licence was read from these pages on 14 November 2026:
- ROS 2: distributions list, Lyrical supported platforms, REP 2000, rosdistro for the MoveIt 2, Nav2 and ros2_control versions per distribution
- Gazebo: releases, Jetty install, gz-sim tags
- NVIDIA: Isaac Sim releases, Isaac Sim requirements, Isaac Lab releases, Isaac Lab installation
- Simulators: MuJoCo releases, PyBullet on PyPI, Webots releases, Drake installation
- Planning and control: MoveIt 2 install, Nav2 releases, OMPL installation, ros2_control, micro_ros_setup
- Autopilots: PX4 releases, PX4 development environment, ArduPilot releases, ArduPilot build guide
- Perception and learning: OpenCV releases, PCL releases, Open3D releases, LeRobot releases
For what these tools do in a full system, see the ROS and middleware hub, the simulation hub and the open-source platform page.