Software

To support the robotics community, we actively open-source and maintain numerous software packages developed in the lab.

To find all of our open-sourced projects, please check out our external pageGitHub account.

Here is a list of some of the highlighted software:

Orbit is a unified and modular framework for robot learning that aims to simplify common workflows in robotics research (such as RL, learning from demonstrations, and motion planning). It is built upon NVIDIA Isaac Sim to leverage the latest simulation capabilities for photo-realistic scenes, and fast and efficient simulation.

Within the framework, users gain access to a diverse array of simulated sensors and robots meticulously engineered to mirror real-world counterparts. Furthermore, Orbit offers environments tailored to support various research initiatives, snanning legged locomotion, navigation and manipulation.

For more information, check out the external pagepaper and the external pagedocumentation.

OCS2 is a C++ toolbox tailored for Optimal Control for Switched Systems (OCS2). The toolbox provides an efficient implementation of the following algorithms:

  • SLQ: Continuous-time domin DDP
  • iLQR: Discrete-time domain DDP
  • SQP: Multiple-shooting algorithm based on HPIPM
  • PISOC: Path integral stochatic optimal control

external pageGetting started with and tutorial on OCS2, or watch the external pagetutorial on YouTube.

This is a Framework for training Reinforcement Learning (RL) agents. It combines parallelized experience generation in C++ for efficiency with RL algorithms implemented in Python. The documentation can be found external pagehere.

This is a C++ library providing a high-level interface for controlling external pageElmo motor controllers of the external pageGold line over EtherCAT (using the external pageCANopen over EtherCAT CoE protocol).


The lower level EtherCAT communication is handled by the external pagesoem_interface library.

C++ library which provides kinematic and dynamic quantities for robotics. The strength of this library is in the implementation of various parameterizations of rotations.

This is a C++ library with external pageROS interface to manage two-dimensional grid maps with multiple data layers. It is designed for mobile robotic mapping to store data such as elevation, variance, color, friction coefficient, foothold quality, surface normal, traversability etc. It is used in the external pageRobot-Centric Elevation Mapping package designed for rough terrain navigation.

This is a external pageROS package developed for elevation mapping with a mobile robot. The software is designed for (local) navigation tasks with robots which are equipped with a pose estimation (e.g. IMU & odometry) and a distance sensor (e.g. kinect, laser range sensor, stereo camera). The provided elevation map is limited around the robot and reflects the pose uncertainty that is aggregated through the motion of the robot (robot-centric mapping). This method is developed to explicitly handle drift of the robot pose estimation.

Free Gait is a software framework (whole-body abstraction layer) for the versatile control of legged robots. Through its interface, motions in task space can be defined for static and dynamic maneuvers. During execution, Free Gait tracks the desired motions robustly even under slip and external disturbances. The application of this framework includes intuitive tele-operation of the robot, efficient scripting of behaviors, and interface for motion and footstep planners.

The Legged State Estimator (LSE) library provides an Observability Constrained Extended Kalman Filter for legged dystems and a routine for time delay calibration between different sensor modalities.

C++ library with external pageROS integration generates physically feasible motions for legged robots by solving an optimization problem. A Centroidal model of the dynamics, physical constraints as well as a desired goal position are given to the solver that then generates the motion plan. TOWR generates e.g. 5 step monoped hopping, biped walking, or a complete quadruped trotting cycle, while optimizing over the gait and step durations, in less than 100ms (external pagevideo).

Xpp is a collection of ROS-packages for the visualization of motion plans for floating-base robots. Apart from drawing support areas, contact forces and motion trajectories in RVIZ, it also displays these plans for specific robots. Current robots include a one-legged, a two-legged hopper, HyQ and a quadrotor; $ sudo apt-get install ros-kinetic-xpp

A lightweight (1k lines of code) C++ and external pageEigen-based interface to use Nonlinear Programming solvers, such as Ipopt and Snopt. The user defines the solver independent optimization problem by set of C++ classes and subsequently the problem can be solved with either solver. This package can simply be dropped in your catkin workspace (external pageexample). 

The tool proNEu uses the MATLAB Symbolic Math Toolbox to derive the analytical global kinematics and equations of motion based on projected Newton-Euler methods. 
Several examples highlight how this tool has to be used. The user chooses the generalized coordinates, actuator and link parameters before setting up a very simple kinematic tree of the entire system. Symbolically, global kinematics and the equations of motion are derived and the user can visually check the robot configuration. In the examples it is outlined, how the user can manually get function files, compiled mex-function, or c-code that can be used or embedded in any simulation environment.

Tools, methods, and examples for modeling, simulation, gait creation, and gait analysis implemented for MATLAB R2010a. Tools, methods, and examples for modeling, simulation, gait creation, and gait analysis implemented for MATLAB R2010a. 
The framework contains methods for the simulation of hybrid dynamic systems, both passive as well as active. Functionality for logging and visualization of simulations is available, and three models of different walking and running robots are provided as examples and as a starting point for further studies. Gait creation (i.e., the search for periodic solutions) and optimization is implemented with single shooting and direct collocation algorithms and functions for stability analysis of active and passive systems are provided. All concepts and functions are introduced along the provided examples. Lagrangian mechanics are derived with the symbolic math toolbox and numerical optimization/root search is performed using the fsolve and fmincon routines of the optimization toolbox.

C++ Locomotion Control library for Quadruped robot.

ROS nodes to read and write point clouds from and to files (e.g. ply, vtk).

JavaScript has been disabled in your browser