ROS2 example
A simple ROS2 example
Introduction
This page will go through a simple example using ROS on the NavQPlus. More examples and details can be found on the ROS webpage linked bellow. This example is a shortened version of the Publisher Subscriber for Python tutorial. You will need to have ROS2 installed already before trying this example.
ROS2 Publisher Subscriber in Python example
In this tutorial, you will create nodes that pass information in the form of string messages to each other over a topic. The example used here is a simple “talker” and “listener” system; one node publishes data and the other subscribes to the topic so it can receive that data.
Step 1 - Create workspace
First step is to make a workspace for your project to build in. Go to your home folder and create a workspace called /ros2_ws
. With another directory inside /src
for your project to be in.
Then move into the /src
directory:
Step 2 - Create package
Now we want to create a package inside the directory we just created.
Your terminal will return a message verifying the creation of your package py_pubsub
and all its necessary files and folders.
Step 3 - Publisher code
Navigate to the new directory location created.
Now download the example publisher code:
You should now see a new file located in the py_pubsub
directory. To understand more about the code, follow the tutorial through the ROS webpage.
Step 4 - Subscriber code
For the subscriber code stay in the same directory and download the following:
With this done you will have both publisher_member_function.py
and subscriber_member_function.py
files in your directory. Plus, the __init__.py
.
Step 5 - Add dependencies
The next step is to modify some of the files created to support the code we just downloaded. We will be adding the dependencies. Navigate one level back to ~/ros2_ws/src/pubsub
.
Open the package.xml
file with a text editor. We will be using nano
for this tutorial.
After the <license>
line add the following lines of code:
Your new file now should look something similar to this:

Exit the file editor and save.
Step 6 - Add entry point
The next file you will have to modify is the setup.py
file.
Add the following line within the console_scripts
brackets of the entry_points
field:
Don't forget to save!
Step 7 - Building and running
First, go back to the root of your workspace:
Then, check if you have any missing dependencies in your code by running:
If everything is installed successfully you can build your package with colcon
:
With the build finished we need to source the setup files.
Finally, we can run the code. You will need two terminals to run both the publisher and subscriber.
On the new terminal you will have to go to the workspace the project is in and source the setup files.
In one terminal run the publisher:
You should see that the code starts running and prints:
On the other terminal run the subscriber:
When you run the listener, you will start to see the message from the publisher:
Use Ctlr + C
in each terminal to stop the code.
Summary
You created two nodes to publish and subscribe to data over a topic. Before running them, you added their dependencies and entry points to the package configuration files.
Last updated
Was this helpful?