|
|
# Introduction
|
|
|
### What is SkiROS?
|
|
|
The *Skill-based platform for [ROS](http://wiki.ros.org/) V2 (SkiROS2)* is a software designed to support programming of complex coordination schemes on robots equipped with several sensing and actuation functionalities.
|
|
|
|
|
|
The *skill-based platform for ROS V2 (SkiROS2)* is a software designed to support programming of complex coordination schemes on robots equipped with several sensing and actuation functionalities. As such, SkiROS2 allows the end-user to control the robot by specifying the task to perform, and then acts as a coordinator, scheduler and configuration node that re-configures the existing ROS network nodes and activates\deactivates the available functionalities in order to achieve the specified goal. This can be related to the planning and execution layer of a classical 3-layered robot control architecture.
|
|
|
As such, SkiROS allows the end-user to specifying the task to perform in a very compact way, while the platform infers the majority of parameters and acts as a coordinator node re-configuring the existing ROS network nodes and scheduling the execution of available functionalities in order to achieve the specified goal.
|
|
|
|
|
|
The robot functionalities that are exposed to the skiros platform are defined as *skill primitives*, meanwhile the coordination schemes are defined *skills*.
|
|
|
This can be related to the planning and execution layer of a classical 3-layered robot control architecture.
|
|
|
|
|
|
The skills are applied on objects modelled in the world model and have a clear definition of pre- and post-conditions. It is possible to concatenate them, manually or by mean of a planner, in order to achieve a target state in the world model.
|
|
|
This guide briefly presents how to start up the SkiROS system and execute skills. |
|
|
\ No newline at end of file |
|
|
### Why SkiROS?
|
|
|
SkiROS goal is to integrate together two fundamental processes necessary to coordinate highly complex systems: task scheduling and task planning.
|
|
|
|
|
|
Task planning methods guarantee to find the best action to perform at any time, with a in-depth analysis of the actions' state space. This comes at the cost of an high computational time and subsequent slow reaction time. On the other hand, well designed hand-made procedures encoded in models such as [Hierarchical Finite State Machines](http://wiki.ros.org/smach) or [Behavior Trees](http://wiki.ros.org/decision_making) are indeed able to perform a task while monitoring a selected set of conditions, but at the cost of a lower generality with respect to a planning-based system.
|
|
|
|
|
|
Within SkiROS, the use of task planning is dosed in order not to compromise the reaction time of the system, but enough to extend its ranges of applications. The platform allows the programmer to design his coordination system choosing every solution between a fully-scripted or a fully-planned one.
|
|
|
|
|
|
### What else?
|
|
|
Task planning and scheduling relies upon the constant monitoring of some relevant conditions in the environment, that allows to decide which is the most appropriate action to perform at any time. These condition variables form a pool of knowledge that tends inevitably to become complex. In fact, the more information is stored in this knowledge pool the more knowledgeable decisions can be taken.
|
|
|
|
|
|
SkiROS provides a set of interfaces to extend the knowledge base and apply reasoning algorithms to ground the symbols to real-world features.
|
|
|
|
|
|
## Tutorials
|
|
|
* [[Install|install]] |