In this tutorial, I will show you how to publish LIDAR data using a ROS launch file.
This project has a number of real-world applications:
- Indoor Delivery Robots
- Room Service Robots
- Mapping of Underground Mines, Caves, and Hard-to-Reach Environments
- Robot Vacuums
- Order Fulfillment
- You have already set up your NVIDIA Jetson Nano (4GB, B01) with ROS. You can also use an Ubuntu-enabled Raspberry Pi that has ROS installed.
- We will continue from the launch file I worked on in this post, or you can start a brand new one.
- You have a robot (optional). I will continue with my two-wheeled differential drive robot.
To publish LIDAR data, you are going to want to follow this tutorial. Follow all the instructions up until you reach the section entitled “Build a Map Using the Hector-SLAM ROS Package”. Don’t go beyond that point.
Create the Launch File
Once you’ve completed the step above, open a terminal window, and go to the main launch file.
Turn on your Jetson Nano.
Open a terminal window.
Go to your launch file.
Add the following lines below the IMU data publisher node.
<!-- Lidar Data Publisher Using RPLIDAR from Slamtec --> <!-- Used for obstacle avoidance and can be used for mapping --> <!-- Publish: /scan --> <node name="rplidarNode" pkg="rplidar_ros" type="rplidarNode" output="screen"> <param name="serial_port" type="string" value="/dev/ttyUSB0"/> <param name="serial_baudrate" type="int" value="115200"/><!--A1/A2 --> <!--param name="serial_baudrate" type="int" value="256000"--><!--A3 --> <param name="frame_id" type="string" value="laser"/> <param name="inverted" type="bool" value="false"/> <param name="angle_compensate" type="bool" value="true"/> </node>
Save the file, and close it.
Launch the Launch File
Open a new terminal window, and go to the home directory.
Launch the launch file.
roslaunch launch_jetson_nano_bot jetson_nanobot.launch
If you open a new terminal window, and type the following command, you will be able to see the active topics.
Let’s see what LIDAR data is being published to the /scan ROS topic. Open a new terminal window, and type the following command to see a single message (the number after the -n tag indicates how many messages you want to see):
rostopic echo -n1 /scan
Alternatively, you can see the full stream of messages by typing:
rostopic echo /scan
Press CTRL + C to stop the data.
Visualize the Data
Open a new terminal window, and start rviz so we can visualize the data.
rosrun rviz rviz
Change the Fixed Frame to laser.
Click the Add button in the bottom-left of the window.
Select LaserScan, and click OK.
Set the LaserScan topic to /scan.
Increase the size to 0.03 so that you can see the data more easily.
Here is what you should see:
Press CTRL + C on all windows to shut everything down.