Note: This tutorial assumes that you have completed the previous tutorials: Introspect Rapps. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Troubleshooting Rapps
Description: How to troubleshooting an invalid rappKeywords: rapp
Tutorial Level: INTERMEDIATE
Contents
Overview
This tutorial provides some tips to investigate invalid rapps.
Preparation
It is highly recommended to review Rapp Specification Document before move on. Also make sure you have installed either the rocon_app_platform environment, or the full rocon environment itself.
Frequent Rapp Invalid cases
These are the frequent
Rapp launch file not in ROS_PACKAGE_PATH or includes invalid XML format
rocon_app list tool parses and validates all available rapps in indexer. If a rapp includes malformed roslaunch, it marks them as invalid Rapp and provides why it is invalid.
Example
== Invalid Rapp List == turtle_concert/teleop : failed to parse top-level args from rapp launch file [Invalid roslaunch XML syntax: mismatched tag: line 5, column 4] cafe_rapps/waiter_waiterbot : failed to parse top-level args from rapp launch file [waiterbot_ctrl_cafe ROS path [0]=/opt/ros/hydro/share/ros ROS path [1]=/home/jihoonl/research/ros/rocon/src ROS path [2]=/opt/ros/hydro/share ROS path [3]=/opt/ros/hydro/stacks]
Rapp includes invalid resource pointer
It is easy to make a mistake on setting resource pointer to interface, icon, or parent_name.
Example
== Invalid Rapp List == turtle_concert/turtle_stroll : invalid rapp - turtle_concert/wrong_name.png does not exist turtle_concert/teleop : Invalid parent_name [rocon_apps/invalid_name] in resource [turtle_concert/teleop]
Virtual Child Rapp
Rapp without (compatibility, launch) or (public interface, parameters) is classified as Virtual Child which is invalid according to Rapp Specification. Rapp should be classified as Virtual Ancestor, Implementation Ancestor, or Implementation Child.
== Invalid Rapp List == turtle_concert/teleop : Virtual Child rapp. Invalid!