Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Papyrus/customizations/robotics/faq

< Papyrus‎ | customizations/robotics
Revision as of 06:13, 28 April 2020 by Ansgar.radermacher.cea.fr (Talk | contribs) (Frequently asked questions)


Frequently asked questions

Q: How can I install example models?

A: Use File -> NEW -> Examples. Then choose "Robotic examples" in the Papyrus category.

Q: How do I reference other models, notably service definitions in other models?

A: See reference handling.

Q: Which ROS version is supported?

A: ROS2 is supported. We recommend to use ROS2 eloquent.

Q: Is it possible to use existing ROS2 packages and service definitions?

A: Yes, Papyrus for Robotics comes with a library of all base service definitions. You can find them via "registered pathmaps" when you create a port. If you want to obtain existing definition from your ROS2 projects, see ROS2 reverse

Q: During code generation, I get an error message that a handler is missing

A: Handlers are callback functions that are invoked, if a message or response is received. For instance, a "Send" server port will invoke a handler, when a communication object is received. In order to associate a handler, add an activity, link the activity with the component-port via a connection to a port on the activity, and add a function to the activity.

Q: When editing a function, I only see its name and description (not the code)

A: there are two tabs at the bottom of the window, the "ID" and the "Function" tab. Activate the function tab in order to edit the code and kind of the function.

Q: I've opened a CDT editor but it does not synchronize

A: You need to open a specific variant of the CDT editor that synchronizes with the model. This editor can be invoked via the context menu from the diagram (select the component or an activity). The synchronizing status is indicated by a side-bar on the left of the editor. If it is green, the editor is synchronizing, if it is orange, it has stopped synchronizing. The latter happens if Eclipse is restarted or the associated model editor is closed by the user.

If a "normal" CDT editor on the generated file is currently open, it will get activated instead of opening the synchronizing editor. You can recognize this situation by the absence of the orange or green side-bar. Close the normal CDT editor first, if you need synchronization.

Q: I've modeled a ROS2 component, generated code, but the component does not seem to start

A: All components are mapped to ROS2 life-cycle nodes. Therefore, they need to be configured and activated. Please find a bash script starting an application in the shell script below. For instance, to start (and activate) the "subscriber" component of the shipped publish-subscribe example, use

 ros2 launch publishsubscribe activate.subscriber.py


Q: Reverse from file does not work

A: Be sure that the CDT project hosting a ROS2 package is configured in a way that at least the standard includes are found (e.g. add /opt/ros/eloquent to the include directories).

Q: I cannot find my service definitions during port creation

A: Make sure you understand references.

Q: I'm starting a client and a server (or a publisher and a subscriber), but they do not communicate

A: In order to achieve reusability and loose coupling, the components of a system are defined independently. While a publisher and a subscriber have to use the same service definition in order to communicate, they might use different port names (that are mapped to topic names). When two ports are connected in the system assembly, re-mappings assure that both can communication. These mappings are configured via the generated launch scripts, but of course not used, if a node is directly started via "ros2 run". Use the generated launch scripts instead.

Back to the top