
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+.
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.
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.
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.).
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.
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.
370★ github.com/orocos/orocos_kinematics_dynamics, the orocos-dev sourceforge mailing list, annual OROCOS+ROS+Yarp workshops, integrations with hundreds of academic projects.
Hard real-time requires a PREEMPT_RT (Linux) or Xenomai kernel. KDL can run without it.
License family: Weak Copyleft
License family: Permissive
Ubuntu 22.04 support, Noetic backports.
ROS Kinetic/Melodic packaging, KDL improvements.
RTT 2.x refactor, new scheduler.
Stabilization of RTT and KDL, ROS 1 integration.
First public RTT release.