Table of Contents

Troubleshooting Skills

This page will refer to example skills from this repository written by Pontus Rosqvist.

Your skill is not found by SkiROS, now what? Here are some basic things to make sure are correct before you give up on ever working with SkiROS again.

Expected File Structure

└─ catkin_ws
    ├─ src
    |   ├─ skills
    |   |   ├─ skills_sandbox
    |   |   ├─ vision_skills
    |   |   ├─ <skill package 1>
    |   |   └─ ...
    |   └─ <other ROS packages>
    └─ ...

Where your skill lies in <skill package 1>, this package should be a ROS package which looks like skiros2_template_lib. In the src file of <skill package 1> the following structure is expected

└─ src
    ├─ <folder 1>
    |    ├─ _ _init_ _.py
    |    ├─ <file 1 in folder 1>.py
    |    └─ ...
    ├─ <folder 2>
    |    ├─ _ _init_ _.py
    |    ├─ <file 1 in folder 2>.py
    |    └─ ...
    └─ ...

If the _ _init_ _.py files are not present the files containing skills are not found by SkiROS.

Add Skill to Skill List and Verify Package is Imported

  <arg name="libraries_list" value="[skiros2_std_skills, skiros2_moveit_lib, skills_sandbox, vision_skills, <skill package 1>]"/>
  <arg name="skill_list"
        value="[names,
        	of,
        	skills,
        	here,
        	both,
        	primitive,
        	and,
        	compound,
        	skills
        ]"
  />

The name of the relevant skills should be added to the skill list. If a skill lies in <skill package 1> that package should be added to the libraries_list.

Detect and Fix Import Error

An easy way to find import errors is to put a minimal skill in the same directory as the skill that does not get found by SkiROS, a good minimal skill can be found in minimal_primitive. Then perform the following steps

To then determine if there is an import error you can paste the imports from your skill into the minimal skill one at a time. If it ever breaks you'll know which import(s) is incorrent. If there are no import errors there might a syntax error. You can paste your skill one block at a time into the same file as the minimal skill. Start with an empty skill with the same name as your skill with no parameters, then add only the parameters to the skill description and so on.