ROS Noetic Ninjemys Basics – Part 2 of 2

In this tutorial, we will continue exploring the basics of ROS Noetic Ninjemys (ROS Noetic), the latest distribution of ROS.

Prerequisites

ROS Noetic Ninjemys Tutorial – Part 2 of 2

When you’ve finished the tutorials above, go out and start building robots using ROS. Use these tutorials as well as the tutorials at the ROS website as your guide.

Keep building!

How to Download a ROS Package from GitHub

Let’s say you see a ROS package on GitHub that you’d like to bring into your catkin workspace.

For example, I would like to download the rviz_plugin_tutorials package available on this page on GitHub.

First, you need to download the files to your computer.

Go to this page and download all the files. I like to download it to my Desktop.

Click the green “Clone” button to download a ZIP file of the repository.

Open up the zip file, and go to the rviz_plugin_tutorials folder. The rviz_plugin_tutorials package is the package we need.

Right-click on that folder, and click “Extract”.

Move that folder to your catkin_ws/src folder. I just dragged the folder to my catkin_ws/src folder on my computer, just as I would drag and drop any folder on a Mac or Windows computer.

Open up a terminal window, and type:

cd ~/catkin_ws/src
dir

You should see the rviz_plugin_tutorials package (i.e. a folder) in there.

Now you need to run this command so that your ROS environment knows about the rviz_plugin_tutorials package we just added. Open a new terminal window, and type:

cd ~/catkin_ws/
catkin_make

Open a new terminal window, and type:

rospack find rviz_plugin_tutorials

You should see the path of your new ROS package.

50-path-of-new-ros-packageJPG

To see if our package depends on other packages, type these commands. Ignore any error messages you see in the terminal:

rosdep update
rosdep check rviz_plugin_tutorials

You should see a message that says “All system dependencies have been satisfied.”

51-all-dependencies-satisfiedJPG

What is the Difference Between rviz and Gazebo?

A lot of people ask me about the difference between rviz and Gazebo, two popular software tools that are used with ROS. After all, both programs enable you to view a simulated robot in 3D. Let’s take a look at how they’re different.

What is rviz?

rviz (short for “ROS visualization”) is a 3D visualization software tool for robots, sensors, and algorithms. It enables you to see the robot’s perception of its world (real or simulated).

The purpose of rviz is to enable you to visualize the state of a robot. It uses sensor data to try to create an accurate depiction of what is going on in the robot’s environment.

To launch rviz, type the following command in your terminal:

roscore

And in a different terminal tab, type:

rosrun rviz rviz

Here is the screen you should see when you launch rviz:

49-launch-rvizJPG-1

The left panel is the Displays panel. It has a list of plugins. These plugins enable you to view sensor data and robot state information. To add a plugin, you would click the Add button on the bottom left of the window.

What is Gazebo?

Gazebo is a 3D robot simulator. Its objective is to simulate a robot, giving you a close substitute to how your robot would behave in a real-world physical environment. It can compute the impact of forces (such as gravity).

Here is my tutorial on how to launch Gazebo.

So What is the Difference?

The difference between the two can be summed up in the following excerpt from Morgan Quigley (one of the original developers of ROS) in his book Programming Robots with ROS:

rviz shows you what the robot thinks is happening, while Gazebo shows you what is really happening.”