Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
documentation:skiros:troubleshooting_skills [2023/03/16 08:17] – pontusr | documentation:skiros:troubleshooting_skills [2023/06/26 12:42] (current) – [Detect and Fix Import Error] pontusr | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Troubleshooting Skills ====== | ====== Troubleshooting Skills ====== | ||
+ | |||
+ | This page will refer to example skills from [[https:// | ||
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. | 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. | ||
- | * Is the skill in the skill list of the launch file? | + | |
- | + | * Is the script in a package that is imported by the launch file? | |
- | * Is the script in a package that is imported by the launch file? | + | * Does the script end in .py? |
- | + | * Is there an empty _ _init_ _.py file in the same directory as the script? | |
- | * Does the script end in .py? | + | * Is there an import error in the script? |
- | + | * Is there a syntax error in the script? | |
- | * Is there an empty _ _init_ _.py file in the same directory as the script? | + | |
- | + | ||
- | * Is there an import error in the script? | + | |
- | + | ||
- | * Is there a syntax error in the script? | + | |
==== Expected File Structure ==== | ==== Expected File Structure ==== | ||
Line 19: | Line 16: | ||
<cli> | <cli> | ||
└─ catkin_ws | └─ catkin_ws | ||
- | | └─ src | + | ├─ src |
- | | | | + | | |
- | | | | + | | |
- | | | | + | | |
- | | | | + | | |
- | | | | + | | |
- | | | | + | | |
- | | | + | └─ ... |
- | └─ ... | + | |
</ | </ | ||
- | Where your skill lies in <skill package 1>, this package should be a ROS package which looks like the package that can be found [[https:// | + | Where your skill lies in <skill package 1>, this package should be a ROS package which looks like [[https:// |
- | + | ||
- | In the src file of the package the following structure is excpected | + | |
<cli> | <cli> | ||
Line 38: | Line 32: | ||
├─ <folder 1> | ├─ <folder 1> | ||
| ├─ _ _init_ _.py | | ├─ _ _init_ _.py | ||
- | | ├─ <file 1>.py | + | | ├─ < |
| └─ ... | | └─ ... | ||
├─ <folder 2> | ├─ <folder 2> | ||
| ├─ _ _init_ _.py | | ├─ _ _init_ _.py | ||
- | | ├─ <file 1>.py | + | | ├─ <file 1 in folder 2>.py |
| └─ ... | | └─ ... | ||
└─ ... | └─ ... | ||
Line 70: | Line 64: | ||
==== Detect and Fix Import Error ==== | ==== 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 [[https:// | ||
+ | |||
+ | * Rename the minimal skill. | ||
+ | * Add the minimal skill to the skill list before the skill that does not get loaded. | ||
+ | * Run the simulation/ | ||
+ | * If the minimal skill does not load the _ _init_ _.py might be missing or it's something else. | ||
+ | * If the minimal skill loads there might be a syntax error or import error in the skill you're writing. | ||
+ | |||
+ | 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. |