Robots Atlas>ROBOTS ATLAS
OROCOS (Open Robot Control Software)

Control · Middleware

OROCOS (Open Robot Control Software)

2.9.4·KU Leuven

Active Open source Real-time capable API available
CATEGORYControl · Middleware
READINESSTRL 9
ADOPTION SCALEEstablished Open Source
LICENSESLGPL-2.1-only
FIRST RELEASE2001

OROCOS (Open Robot Control Software) is a veteran among robotics frameworks, started in 2001 at the Catholic University of Leuven (KU Leuven, Belgium) by professors Herman Bruyninckx and Peter Soeterboek. Its main goal: provide production-grade, hard real-time C++ tools for controlling industrial robots.

The suite consists of three main components: (1) RTT (Real-Time Toolkit) — a runtime for building hierarchical control systems with a deterministic scheduler; supports ports, properties, attributes, operations, and state machines. (2) KDL (Kinematics and Dynamics Library) — a library for kinematics and dynamics of kinematic chains (forward/inverse kinematics, Jacobian, dynamics) used in MoveIt and ROS robot_state_publisher among others. (3) BFL (Bayesian Filtering Library) — implementations of Kalman, Extended Kalman, Unscented Kalman, and Particle Filter.

OROCOS has a long history in industrial applications: KUKA LWR controllers, Barrett WAM, Schunk LWA, Stäubli robots, and many machine tool and CNC applications. Although the central RTT has lost popularity to ROS 2 with RT-PREEMPT, KDL is still the foundation of kinematics in MoveIt and many derived projects. The project is licensed under LGPL 2.1+.

Type & Roles
Software types
Middleware

Middleware is a software layer that mediates between applications, services, sensors, drivers, and execution layers. In robotics, middleware is typically responsible for inter-process communication, message passing, hardware abstraction, and module integration within a single system. The most widely used robotics middleware is ROS (Robot Operating System), which provides a publish-subscribe message bus, service calls, and a rich ecosystem of packages.

Control Stack

A Control Stack is the set of software components responsible for control logic, motion planning, command execution, and coordination of a robot's actuators. It receives high-level goals or waypoints (from planning or AI layers) and translates them into low-level actuator commands, closed-loop feedback control, and safety checks. Common implementations include MoveIt (arm manipulation), Nav2 (mobile navigation), and custom whole-body control stacks for humanoids.

API Library

An API Library is a software package that exposes programmatic interfaces for communicating with a device, service, or system. In robotics it typically forms a lightweight integration layer built on top of the manufacturer's official API or an open-source project, abstracting low-level protocol details and providing language-native bindings (Python, C++, Java, etc.).

Developer Tool

A Developer Tool is software designed to support the development workflow, including configuration, debugging, testing, monitoring, validation, and integration of robotic and embedded systems. Examples include IDE plugins, visual debuggers, log analysers, hardware-in-the-loop (HIL) test harnesses, and code-generation utilities specific to robotics platforms.

Select an item to see its description.
Main category
MiddlewareControl & PlanningDeveloper Tools
Roles in robotics ecosystem
Motion PlanningAPI AccessDeveloper Enablement
Robot Control

Robot Control denotes the role of software responsible for motion control, command execution, coordination of actuating elements and the direct operational logic of the robot.

Select an item to see its description.
Software family
Family
OROCOS Ecosystem
Maturity & Adoption
9 / 9
Proven in operational conditions
ResearchPrototypeProduction
Adoption scaleEstablished Open Source
Maintenance statusCommunity Maintained
First release2001
Deployments

KUKA LightWeight Robot (LWR) IV+, Barrett WAM, Schunk LWA, Stäubli RX/TX, Willow Garage PR2 (motion controllers), MoveIt (KDL kinematics solver), many industrial machine tool/CNC deployments.

Community

370★ github.com/orocos/orocos_kinematics_dynamics, the orocos-dev sourceforge mailing list, annual OROCOS+ROS+Yarp workshops, integrations with hundreds of academic projects.

Target robotic platforms
Robotic Arm
Industrial Robot
Humanoid
Research Robot
ROS supportCompatibility with ROS / ROS 2 ecosystem
ROS 2 Bridge / AdapterMost lub adapter łączący oprogramowanie z ekosystemem ROS 2 bez natywnej integracji
Community ROS 1 WrapperWrapper ROS 1 tworzony i utrzymywany przez społeczność
System capabilities
Open source
Source code is publicly available under an open-source license — enables security audits, custom modifications, and integration without licensing barriers.
Real-time capable
Designed with timing-determinism guarantees — meets the requirements of control loops, safety systems, and tasks demanding low, predictable latency.
⟨/⟩
API available
The software exposes a programmable interface (REST, gRPC, SDK, or language bindings) that enables automation and integration with other systems.
📦
Pre-built / binary
Distributed as ready-to-use binary packages, container images, or installers — no need to build from source.
Programming languages
C++Python
Operating systems
Ubuntu 22.04Ubuntu 20.04Debian
Minimum hardware requirements
Minimum hardware requirements
CPUAny x86-64 or ARM64 with a PREEMPT_RT or Xenomai kernel
RAM (GB)1
GPUNone required
Disk (GB)1

Hard real-time requires a PREEMPT_RT (Linux) or Xenomai kernel. KDL can run without it.

Packaging & distribution
Package managers
apt / debSource – CMake / ament_cmakeGitHub Releases / GitHub Actions Artifactsrosdep / bloom
CPU architectures
x86_64 (AMD64)ARM64 / AArch64ARMv7 / ARM32 (armhf)
Installation difficulty
LevelAdvanced
Protocols and interfaces
Communication protocols
Ethernet / TCP-IPShared Memory (POSIX / mmap)EtherCAT
Hardware interfaces
Ethernet 1000BASE-T (Gigabit Ethernet)EtherCAT (Slave Interface)CAN 2.0A / 2.0B
Latency classes
Hard Real-Time (< 1 ms)Hard Real-Time (1–5 ms)
Deployment types
On RobotEdgeLocal Workstation
Supported simulators
Gazebo Classic (Gazebo 11)
Official Docker images
ros:humble
Licenses
LGPL-2.1-onlyGNU Lesser General Public License v2.1v2.1

License family: Weak Copyleft

ModificationDistributionCommercial usePrivate useROS-compatibleOSI approvedFSF Free/LibreRequires attributionShare-alikeSource disclosure
BSD-3-ClauseBSD 3-Clause Licensev3-Clause

License family: Permissive

ModificationDistributionCommercial useSublicensingPrivate useROS-compatibleOSI approvedFSF Free/LibreRequires attribution
Version history
2.9.4Nov 2022

Ubuntu 22.04 support, Noetic backports.

2.9.0Jul 2018

ROS Kinetic/Melodic packaging, KDL improvements.

2.0.0Sept 2010

RTT 2.x refactor, new scheduler.

1.0.0Dec 2006

Stabilization of RTT and KDL, ROS 1 integration.

0.20.0Sept 2001

First public RTT release.