Skip to content
Matthias Mayr edited this page Jul 1, 2023 · 18 revisions

What is SkiROS?

The SkiROS2 architecture

The Skill-based platform for ROS (SkiROS2) is a platform to create complex robot behaviors by composing skills - modular software blocks - into behavior trees.

Robots coordinated with SkiROS can be used in partially structured environments, where the robot has a good initial understanding of the environment, but it is also expected to find discrepancies, fail using initial plans and react accordingly.

Features

SkiROS integrates in one solution several features to support the development of intelligent robotic systems.

  • World model - A semantic RDF database for users to store information about the environment, run queries and integrate algorithms to reason on the data at a semantic level.

  • Robot behavior designer - Don't write static code, but rather design a behavior for your robots that is adaptable to different situations. SkiROS is based on the Behavior Tree (BTs) model and it provides a python DSL to model BTs with few lines of code. In contrast to majority of other BT frameworks, SkiROS doesn't come with an integrated graphical IDE, but it still provides a GUI to monitor the execution.

  • Skill system - The skill system helps keeping your behaviors organized, modular and reusable. Behavior trees in SkiROS are clustered into groups of one or more nodes, namely skills, which become the fundamental building blocks to program robot behaviors. Skills are parameterizable, and embed pre- and post-conditions to ensure their execution is valid and necessary at any point in time. You can organize skills into packages and deploy different solutions importing the necessary skills from the necessary packages as plugins. At deployment time the skill manager node loads the desired skills and provides an interface to execute and monitor them. The skills can be parametrized and executed through the SkiROS GUI, or directly through a ROS service for integrated solutions.

  • ROS action support (standard lib add-on) - Integrate easily ROS actions as primitive skills and coordinate their execution with Behavior Trees.

  • Task planning (standard lib add-on) - Task planning can be used to expand some branches of the behavior tree dynamically. Formal task planning methods guarantee to find the optimal skill sequence after an in-depth analysis of the state space. The SkiROS base skill set includes a task planning skill based on the fast downward PDDL planner. The planning domain and problem for the planner are generated automatically from the world model state and the resulting plan is automatically converted into an executable behavior tree.