<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guido</id>
	<title>PaparazziUAV - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guido"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/wiki/Special:Contributions/Guido"/>
	<updated>2026-05-19T23:10:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23788</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23788"/>
		<updated>2017-07-31T14:20:18Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Example: Ping/Pong */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS repository contains four folders:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with Paparazzi through UDP, Serial and Ivy. It is used by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS and PPRZLINK interfaces.&lt;br /&gt;
* PPRZROS_MSGS: this package contains ROS message definitions. For now it only contains a generic message, but more useful messages can be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example: Ping/Pong ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. A rostopic node is created to send a Ping to a Paparazzi simulator through PPRZROS and the outgoing Pong is transmitted to ROS and ouput on the screen.&lt;br /&gt;
[[File:Pingpong.png|thumb|The nodes and topics created in the Ping/Pong example]]&lt;br /&gt;
We will go through the pingpong.launch file it to understand the process.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []). For the communication to work properly, '''please check that the receiver_id and sender_id match the ones your are using in your setting'''.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23787</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23787"/>
		<updated>2017-07-31T14:19:44Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Example: Ping/Pong */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS repository contains four folders:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with Paparazzi through UDP, Serial and Ivy. It is used by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS and PPRZLINK interfaces.&lt;br /&gt;
* PPRZROS_MSGS: this package contains ROS message definitions. For now it only contains a generic message, but more useful messages can be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example: Ping/Pong ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. A rostopic node is created to send a Ping to a Paparazzi simulator through PPRZROS and the outgoing Pong is transmitted to ROS and ouput on the screen.&lt;br /&gt;
[[File:Pingpong.png|thumb|The nodes and topics created in the Ping/Pong example]]&lt;br /&gt;
We will go through the pingpong.launch file it to understand the process.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []). For the communication to work properly, '''please check that the receiver_id and sender_id match the ones your are using in your setting'''.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23786</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23786"/>
		<updated>2017-07-31T14:19:24Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Example: Ping/Pong */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS repository contains four folders:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with Paparazzi through UDP, Serial and Ivy. It is used by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS and PPRZLINK interfaces.&lt;br /&gt;
* PPRZROS_MSGS: this package contains ROS message definitions. For now it only contains a generic message, but more useful messages can be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example: Ping/Pong ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. A rostopic node is created to send a Ping to a Paparazzi simulator through PPRZROS and the outgoing Pong is transmitted to ROS and ouput on the screen.&lt;br /&gt;
[[File:Pingpong.png|thumb|The nodes and topics created in the Ping/Pong example]]&lt;br /&gt;
We will go through the pingpong.launch file it to understand the process.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []). For the communication to work properly, '''Please check that the receiver_id and sender_id match the ones your are using in your setting'''.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23785</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23785"/>
		<updated>2017-07-31T14:17:22Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Stack content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS repository contains four folders:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with Paparazzi through UDP, Serial and Ivy. It is used by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS and PPRZLINK interfaces.&lt;br /&gt;
* PPRZROS_MSGS: this package contains ROS message definitions. For now it only contains a generic message, but more useful messages can be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example: Ping/Pong ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. A rostopic node is created to send a Ping to a Paparazzi simulator through PPRZROS and the outgoing Pong is transmitted to ROS and ouput on the screen.&lt;br /&gt;
[[File:Pingpong.png|thumb|The nodes and topics created in the Ping/Pong example]]&lt;br /&gt;
We will go through the pingpong.launch file it to understand the process.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23784</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23784"/>
		<updated>2017-07-31T14:15:15Z</updated>

		<summary type="html">&lt;p&gt;Guido: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example: Ping/Pong ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. A rostopic node is created to send a Ping to a Paparazzi simulator through PPRZROS and the outgoing Pong is transmitted to ROS and ouput on the screen.&lt;br /&gt;
[[File:Pingpong.png|thumb|The nodes and topics created in the Ping/Pong example]]&lt;br /&gt;
We will go through the pingpong.launch file it to understand the process.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23783</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23783"/>
		<updated>2017-07-31T14:13:13Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Example: Ping/Pong */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example: Ping/Pong ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. A rostopic node is created to send a Ping to a Paparazzi simulator through PPRZROS and the outgoing Pong is ouput on the screen.&lt;br /&gt;
[[File:Pingpong.png|thumb|The nodes and topics created in the Ping/Pong example]]&lt;br /&gt;
We will go through the pingpong.launch file it to understand the process.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=File:Pprzros.png&amp;diff=23782</id>
		<title>File:Pprzros.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=File:Pprzros.png&amp;diff=23782"/>
		<updated>2017-07-31T14:11:11Z</updated>

		<summary type="html">&lt;p&gt;Guido: Guido uploaded a new version of File:Pprzros.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A diagram showing the working of PPRZROS&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23781</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23781"/>
		<updated>2017-07-28T14:39:38Z</updated>

		<summary type="html">&lt;p&gt;Guido: Added an image to explain the pingpong demo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example: Ping/Pong ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. A rostopic node is created to send a Ping to a Paparazzi simulator through PPRZROS and the outgoing Pong is ouput on the screen.&lt;br /&gt;
[[File:Pingpong.png|thumb|The nodes and topics created in the Ping/Pong example]]&lt;br /&gt;
We will go through the pingpong.launch file it to understand the process.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=File:Pingpong.png&amp;diff=23780</id>
		<title>File:Pingpong.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=File:Pingpong.png&amp;diff=23780"/>
		<updated>2017-07-28T14:38:45Z</updated>

		<summary type="html">&lt;p&gt;Guido: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A graph of the nodes/topics created for the ping/pong example to show the working of PPRZROS&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23779</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23779"/>
		<updated>2017-07-28T14:29:20Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Overview */ Changing /to_ros and /from_ros to /pprzros/to_ros and /pprzros/from_ros&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /pprzros/to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /pprzros/from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23778</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23778"/>
		<updated>2017-07-28T14:28:37Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example is provided in pprzros/launch/pingpong.launch. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /pprzros/from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /pprzros/from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /pprzros/to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /pprzros/to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23777</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23777"/>
		<updated>2017-07-28T11:54:11Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Running PPRZROS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
Then, start Paparazzi&lt;br /&gt;
    $ cd my_paparazzi_folder/&lt;br /&gt;
    $ ./paparazzi&lt;br /&gt;
Finally start the PPRZROS node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, help can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23776</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23776"/>
		<updated>2017-07-28T11:51:33Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you have successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ git clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that the PPRZROS repository contains a sub-module linking to PPRZLINK repository (thus the git clone --recursive). When updating PPRZROS don't forget to update the PPRZLINK sub-module as well.&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23775</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23775"/>
		<updated>2017-07-28T11:31:45Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* PPRZROS */ Describing the content of the PPRZROS stack&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that inside the pprzros git there is a sub-module (sub git repository) linking to PPRZLINK repos. When updating PPRZROS don't forget to update the PPRZLINK sub-module as well&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Stack content ==&lt;br /&gt;
The PPRZROS stack contains four packages:&lt;br /&gt;
* PPRZLINK: contains the interfaces needed to communicate with the Paparazzi through UDP, Serial and Ivy. It is required by PPRZROS in order to communicate with the Paparazzi world.&lt;br /&gt;
* PPRZROS: this package contains the code for creating a node capable of communicating both with ROS and Paparazzi. It relies on ROS interfaces and PPRZLINK.&lt;br /&gt;
* PPRZROS_MSGS: this package only contains ROS message definitions. For now it only contains a generic message, but more useful messages will be added in the futur.&lt;br /&gt;
* SLAMDUNK_PPRZ: Todo&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23774</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23774"/>
		<updated>2017-07-28T11:26:49Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that inside the pprzros git there is a sub-module (sub git repository) linking to PPRZLINK repos. When updating PPRZROS don't forget to update the PPRZLINK sub-module as well&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23773</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23773"/>
		<updated>2017-07-28T11:26:01Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then, do go to the pprzros folder, e.g. using roscd&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that inside the pprzros git there is a sub-module (sub-repo git) linking to PPRZLINK repos. When updating PPRZROS don't forget to update the PPRZLINK sub-module as well&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23772</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23772"/>
		<updated>2017-07-28T11:25:07Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Installation */ Adding installation instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
You also need a working [http://wiki.ros.org/catkin/Tutorials/create_a_workspace catkin workspace]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, go into the /src folder of you catkin workspace&lt;br /&gt;
    $ cd my_catkin_ws/src&lt;br /&gt;
and clone the PPRZROS repository&lt;br /&gt;
    $ clone --recursive https://github.com/enacuavlab/pprzros.git&lt;br /&gt;
Then do go to the pprzros folder, e.g. using rocs&lt;br /&gt;
    $ roscd pprzros&lt;br /&gt;
and use catkin_make to compile and generate messages.&lt;br /&gt;
    $ catkin_make&lt;br /&gt;
Please note that inside the pprzros git there is a sub-module (sub-repo git) linking to PPRZLINK repos. When updating PPRZROS don't forget to update the PPRZLINK sub-module as well&lt;br /&gt;
    $ git submodule update&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23771</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23771"/>
		<updated>2017-07-27T14:53:49Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connexion type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
A connexion to Paparazzi is also setup, depending on the specified connexion type.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
&lt;br /&gt;
Why pprzlink is needed&lt;br /&gt;
Installing pprzlink&lt;br /&gt;
Installing pprzros&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23770</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23770"/>
		<updated>2017-07-27T14:51:21Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The role of PPRZROS is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
&lt;br /&gt;
Why pprzlink is needed&lt;br /&gt;
Installing pprzlink&lt;br /&gt;
Installing pprzros&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23769</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23769"/>
		<updated>2017-07-27T14:49:39Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Running PPRZROS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
&lt;br /&gt;
Why pprzlink is needed&lt;br /&gt;
Installing pprzlink&lt;br /&gt;
Installing pprzros&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
The following section contains an example .launch showing, among other things, how to start a PPRZROS node.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23768</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23768"/>
		<updated>2017-07-27T14:46:41Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Running PPRZROS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
&lt;br /&gt;
Why pprzlink is needed&lt;br /&gt;
Installing pprzlink&lt;br /&gt;
Installing pprzros&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
The connexion_type can be UDP, Serial or IVY. The destination and OPTIONS will vary depending on the connexion_type, information can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23767</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23767"/>
		<updated>2017-07-27T14:44:39Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/ROS/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
&lt;br /&gt;
Why pprzlink is needed&lt;br /&gt;
Installing pprzlink&lt;br /&gt;
Installing pprzros&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
the OPTIONS will vary depending on the connexion_type and can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23766</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23766"/>
		<updated>2017-07-27T14:43:21Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed [http://wiki.ros.org/indigo/Installation ROS] and [https://wiki.paparazziuav.org/wiki/Installation Paparazzi] on your system.&lt;br /&gt;
&lt;br /&gt;
Why pprzlink is needed&lt;br /&gt;
Installing pprzlink&lt;br /&gt;
Installing pprzros&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
the OPTIONS will vary depending on the connexion_type and can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23765</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23765"/>
		<updated>2017-07-26T13:07:36Z</updated>

		<summary type="html">&lt;p&gt;Guido: /* Installation */ Adding skeleton&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
This section assumes that you already successfully installed ROS and Paparazzi on your system.&lt;br /&gt;
&lt;br /&gt;
Why pprzlink is needed&lt;br /&gt;
Installing pprzlink&lt;br /&gt;
Installing pprzros&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
the OPTIONS will vary depending on the connexion_type and can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23764</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23764"/>
		<updated>2017-07-26T12:15:13Z</updated>

		<summary type="html">&lt;p&gt;Guido: Changed code formating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ roscore&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS]&lt;br /&gt;
the OPTIONS will vary depending on the connexion_type and can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
    $  roslaunch pprzros my_script.launch&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;launch&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/launch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&lt;br /&gt;
    &amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23763</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23763"/>
		<updated>2017-07-26T12:04:22Z</updated>

		<summary type="html">&lt;p&gt;Guido: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; $ roscore &amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS] &amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
the OPTIONS will vary depending on the connexion_type and can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; $  roslaunch pprzros my_script.launch&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;launch&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/launch&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23762</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23762"/>
		<updated>2017-07-26T12:03:32Z</updated>

		<summary type="html">&lt;p&gt;Guido: Adding some structure and a draft tutorial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated with the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
To start the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). Once started the PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes (programs), will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
== Running PPRZROS ==&lt;br /&gt;
There are two ways to start the PPRZROS node:&lt;br /&gt;
* Directly as an independent ROS node : &lt;br /&gt;
First, be sure that the rosmaster is up and running by starting the roscore&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; $ roscore &amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
And then start the node,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; $ rosrun pprzros pprzros_run connexion_type destination [OPTIONS] &amp;lt;/code&amp;gt;&lt;br /&gt;
the OPTIONS will vary depending on the connexion_type and can be displayed by starting the rosnode with the -h (--help) option.&lt;br /&gt;
&lt;br /&gt;
* Via a .launch file which allows to start the PPRZROS node along with some other nodes that might be useful for your application,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; $  roslaunch pprzros my_script.launch&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
An example .launch file is provided in the /launch directory of the package. &lt;br /&gt;
We will go through it to show how a message can be sent to the Paparazzi Destination from ROS.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;launch&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/launch&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the following, we go through each line to understand its role&lt;br /&gt;
First starting the PPRZROS node&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;pprzros&amp;quot; type=&amp;quot;pprzros_run&amp;quot; name=&amp;quot;pprzros&amp;quot; args=&amp;quot;udp -d 192.168.1.1&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Then, the ''rostopic'' package is called to create a node publishing a given message. This message is published on the /from_ros topic and is of type PprzrosMsg. The content of the message is then described in YAML format. We can see here that it is a simple PING message, so there is no content (data == []).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;send_test_ping&amp;quot; args=&amp;quot;pub -r 10 /from_ros pprzros_msgs/PprzrosMsg '{header: auto, version: 1, len: 0, class_name: 'datalink', comp_id: 0, msg_name: 'PING', sender_id: 0, receiver_id: 201, checksum: 0, data: []}'&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Finally, we create a node, from the ''rostopic'' package, to subscribe to the /to_ros topic and listen if any PONG is message is answering our PINGs.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;node pkg=&amp;quot;rostopic&amp;quot; type=&amp;quot;rostopic&amp;quot; name=&amp;quot;echo_test_pong&amp;quot; args=&amp;quot;echo -c /to_ros&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under development -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23761</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23761"/>
		<updated>2017-07-25T16:01:26Z</updated>

		<summary type="html">&lt;p&gt;Guido: Adding a diagram&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated to the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
When starting the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). The PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes, will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
[[File:Pprzros.png|thumb|PPRZROS in a glimpse]]&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under work -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=File:Pprzros.png&amp;diff=23760</id>
		<title>File:Pprzros.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=File:Pprzros.png&amp;diff=23760"/>
		<updated>2017-07-25T16:00:11Z</updated>

		<summary type="html">&lt;p&gt;Guido: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A diagram showing the working of PPRZROS&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23759</id>
		<title>Pprzros</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Pprzros&amp;diff=23759"/>
		<updated>2017-07-25T15:31:37Z</updated>

		<summary type="html">&lt;p&gt;Guido: Adding a summary of the PPRZROS node working. More specificities and examples to come.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PPRZROS =&lt;br /&gt;
PPRZROS is a Robot Operating System ([http://wiki.paparazziuav.org/wiki/Chimera/v1.00 ROS]) package bridging ROS and Paparazzi, to get the best of both worlds.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its role is to convert Paparazzi messages into ROS format and ROS messages into Paparazzi format.&lt;br /&gt;
More specifically, incoming paparazzi messages are converted into a generic ROS message containing generic information about the message and the binary data associated to the message. Messages coming in ROS format are translated to a generic paparazzi message with the same format: generic information and data in binary form.&amp;lt;br/&amp;gt;&lt;br /&gt;
When starting the PPRZROS node, it requires a connection type (UDP, Serial or Ivy) and a ''Destination'' (plus some other optional infos). The PPRZROS node will create two ROS topics:&lt;br /&gt;
* /to_ros : PPRZROS is publishing in this topic. Messages coming from the ''Destination'' will be translated into ROS format and published on this topic.&lt;br /&gt;
* /from_ros : PPRZROS is subscribing (listening) to this topic. Any message sent to this topic, by other ROS nodes, will be translated into a Paparazzi message and sent to the ''Destination''.&lt;br /&gt;
&amp;lt;br/&amp;gt;- Under work -&lt;/div&gt;</summary>
		<author><name>Guido</name></author>
	</entry>
</feed>