Skip to content
@Robotics-Research-Group-KUL

Robotics Research Group at KU Leuven

collection of hardware drivers and public software

🦾 Software at the Robotics Group (KU Leuven)

🤖 Crospi: Constraint-based Reactive and Orchestrated Sensor-driven PIpeline.

Crospi is a highly-configurable pipeline that focuses on interfacing (plugins, ROS2 and non-ROS sensors, robot hardware, easy user interfaces) and easy integration (pipeline for Orchestration, creation of libraries, configuration files, etc). It uses eTaSL which is a collection of C++/CMake/LUA libraries that define a language and interpreter to specify constraint-based control task specifications. Besides Crospi, there are several other frameworks that use eTaSL, such as ROS/Orocos and ROS2/Orocos (see below). Note that, although the constraint-based task specifications are specified using a scripting language, all real-time critical runs in C++. With Crospi, you can focus on configuring to use your own robot setup in your own orchestrated applications, and easily reuse tasks and skills from libraries.

Package Description
BeTFSM (doc) BeTFSM is a library for "ticking" statemachines and behavior trees. It targets discrete coordination of robotic systems at both high- and low level.
Crospi (doc) This package was created to be able to develop constraint-based reactive robot behaviors with eTaSL that can fully operate with the ROS2 architecture.
├─ crospi_core (doc) Core package of Crospi providing important interfacing tools and ROS2 functionalities.
├─ crospi_application_template This is a template that facilitates development and provides development functionalities to speed up development and deployment with Crospi.
├─ crospi_default_plugins This package contains the default plugins for crospi_core.
├─ crospi_interfaces Package containing ros msgs and srv used to communicate with the crospi_core package.
├─ skill_lib_example Package with an example of a skill for Crospi. This contains BetFSM skill orchestration examples.
├─ core_task_lib Package with core and common eTaSL task specifications that can be used within the Crospi pipeline for controlling robots.
├─ debug_lib Package with eTaSL task specifications for debugging that can be used within the Crospi pipeline.
├─ dummy_lib Package with dummy examples of eTaSL task specifications that can be used within the Crospi pipeline.
├─ template_driver_crospi This package contains a template on how to implement a robot driver for crospi_core node using ROS2 plugins. If used without any modification, it will simply simulate the robot by integrating the joint velocities and returning joint positions through shared memory communication.
├─ kuka_iiwa_driver_crospi This package contains a driver for controlling the Kuka iiwa using crospi_core, based on template_driver_crospi package which uses ROS2 plugins.
├─ expressiongraph This package contains a library for automatic differentiation specifically targeted to robotics data-types such as orientations, quaternions, poses, twists and wrenches
├─ luabind This package contains C++ template utilities to bind C++ code to lua

🧩 Orocos and rtt-ros Packages

While Orocos is nowadays maintained externally, we keep some packages that can prove useful:

rtt-ros for ROS1 (Noetic)

Package Description
rtt_ros_utilities A meta-package containing the following packages:
├─ rttlua_completion Enables tab completion in the rttlua shell
├─ rFSM State machine framework for Lua
├─ rtt_dot_service Creates a DOT graph from the current deployment
python_gui Configurable ROS graphical interface to send events to rFSM
URDriver Drivers for using UR robots with ROS
rtt_soem EtherCAT master component with plugins (mainly Beckhoff modules)
rtt_soem_maxpos EtherCAT drivers for the MaxPos, a motor driver from Maxon motors

rtt-ros for ROS2 (Foxy)

Package Description
rtt_ros2_utilities A meta package containing the following packages:
├─ motion_control Legacy message types (ros2 branch)
├─ rFSM State machine framework (ros2 branch)
├─ ros2_rtt_typekits Typekits for Eigen and KDL
├─ rtt_dot_service Generates DOT graphs (ros2 branch)
├─ rttlua_completion Lua shell tab completion (ros2 branch)
rtt_ros2_pkg Adds commands for creating Orocos packages in rtt-ros2 integration
python_gui_ros2 Configurable ROS2 graphical interface to send events to rFSM
soem ROS2 EtherCAT dependency (use the foxy_devel branch)
rtt_soem EtherCAT master component with plugins (mainly Beckhoff modules) (ros2 branch)

🐳 Docker Images

Prebuilt Docker images for ROS1 and ROS2 with the above utilities installed:

👉 gborghesan/orocos on Docker Hub

Popular repositories Loading

  1. URDriver URDriver Public

    orocos components for interfacing with UR robots

    C++ 5 4

  2. python_gui python_gui Public

    Python 1 1

  3. rtt_soem_maxpos rtt_soem_maxpos Public

    MaxPos drivers for orocos soem master.

    C++ 1

  4. rFSM rFSM Public

    Forked from kmarkus/rFSM

    rFSM is a lightweight Statechart implementation in Lua

    Lua

  5. rttlua_completion rttlua_completion Public

    Forked from orocos-toolchain/rttlua_completion

    Tab Completion module for rttlua

    Lua

  6. soem soem Public

    Forked from cplasberg/soem

    ROS package wrapping the Simple Open EtherCAT Master (SOEM) from https://github.com/OpenEtherCATsociety/SOEM

    C

Repositories

Showing 10 of 30 repositories

Top languages

Loading…

Most used topics

Loading…