Note: This tutorial assumes that you have completed the previous tutorials: C++ Node Tutorial, Python Node Tutorial. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Combining C++/Python Publisher/Subscriber
Description: This tutorial shows how to mix publishers and subscribers written in C++ and Python.Keywords: parameter server, dynamic reconfigure, publisher, subscriber
Tutorial Level: INTERMEDIATE
Contents
Combining C++ and Python Publishers/Subscribers with Dynamic Reconfigure and Parameter Server
Previously, we created C++ and Python publishers and subscribers. It is possible to run all four nodes at the same time.
Starting the Nodes
The command
roslaunch node_example node_example.launch
will start all of the nodes -- talker, listener, pytalker.py and pylistener.py -- as well as a dynamic reconfigure GUI and rxconsole. In the launch file, make sure that all of the nodes are using the same topic. The output of the nodes can be seen in rxconsole and the thing to notice when running this launch file is that both listeners are subscribed to both talkers. This works because they all the nodes are using the same custom message.
Possible Combinations
Note that the following combination of nodes will work:
C++ publisher -> C++ listener
C++ publisher -> Python listener
C++ publisher -> C++ AND Python listeners
Python publisher -> C++ listener
Python publisher -> Python listener
Python publisher -> C++ AND Python listeners
Playing Around
Use the dynamic reconfigure GUI to select different publishers and change the messages or numbers and see the results in rxconsole. Then, modify the nodes to suit your own needs.