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

Difference between revisions of "Papyrus/customizations/robotics/faq"

(Frequently asked questions)
Line 3: Line 3:
 
= Frequently asked questions =
 
= Frequently asked questions =
  
=== How can I install example models? ===
+
=== Q: How can I install example models? ===
Use File -> NEW -> Examples. Then choose "Robotic examples" in the Papyrus category.
+
A: Use File -> NEW -> Examples. Then choose "Robotic examples" in the Papyrus category.
  
=== How do I reference other models, notably service definitions in other models? ===
+
=== Q: How do I reference other models, notably service definitions in other models? ===
See [[Papyrus/customizations/robotics/references|reference handling]].
+
A: See [[Papyrus/customizations/robotics/references|reference handling]].
  
=== Which ROS version is supported? ===
+
=== Q: Which ROS version is supported? ===
Currently, only ROS2 version is supported. we recommend to use ROS2 eloquent.
+
A: Currently, only ROS2 version is supported. we recommend to use ROS2 eloquent.
  
=== Is it possible to use existing ROS2 packages and service definitions? ===
+
=== Q: Is it possible to use existing ROS2 packages and service definitions? ===
Yes, see [[Papyrus/customizations/robotics/reverse]]
+
A: Yes, see [[Papyrus/customizations/robotics/reverse]]
  
=== I've modeled a ROS2 component, generated code, but the component does not seem to start ===
+
=== Q: I've modeled a ROS2 component, generated code, but the component does not seem to start ===
All components are mapped to ROS2 lifecycle nodes. Therefore, they need to be configured and activated.
+
A: All components are mapped to ROS2 lifecycle nodes. Therefore, they need to be configured and activated. Please find a bash script starting an application in the shell script below.
 +
 
 +
=== 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"
 +
 
 +
The bash script shown in the sequel starts the client of the client server example, taking care of the required re-mappings.
 +
 
 +
startClient shell script
 +
  echo ros2 run clientserver AddClient
 +
  set -m
 +
  ros2 run clientserver AddClient useAdd:=server/AddRequest/addSvc &
 +
  sleep 1
 +
  ros2 lifecycle set AddClient configure
 +
  ros2 lifecycle set AddClient activate
 +
  fg

Revision as of 12:25, 29 March 2020


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: Currently, only ROS2 version is supported. we recommend to use ROS2 eloquent.

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

A: Yes, see Papyrus/customizations/robotics/reverse

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

A: All components are mapped to ROS2 lifecycle nodes. Therefore, they need to be configured and activated. Please find a bash script starting an application in the shell script below.

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"

The bash script shown in the sequel starts the client of the client server example, taking care of the required re-mappings.

startClient shell script
 echo ros2 run clientserver AddClient
 set -m
 ros2 run clientserver AddClient useAdd:=server/AddRequest/addSvc &
 sleep 1
 ros2 lifecycle set AddClient configure
 ros2 lifecycle set AddClient activate
 fg

Back to the top