ROS Tools

Using simulations is a good way to learn ROS without having to own a physical robot. In this chapter we just use a 2D simulation called Turtlesim. This tutorial will give you a good idea of what ROS tools can do for you. First, run roscore:

 $ roscore

Run the launch file demo for Turtlesim:

 $ roslaunch turtle_tf turtle_tf_demo.launch

When the launch file is running, a simulation with a graphical user interface opens.

The launch file also contains a node that can be used to send keyboard movement messages to the robot. you need to click on the terminal that you opened the launch file and use arrow keys to move the turtlebot1. Then you can see that the second turtle bot will follow the first one.


Short for ROS Visualization. It’s a 3-dimensional visualization tool for ROS that helps to visualize what the robot seeing and doing. To run the RViz for the turtlebot simulation there is a predefined configuration file that you can run with the following command:

$ rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz

As you can see there are three different transformation frames (tf) in the environment that each represents an element. The world is defined for the environment and turtle1 and turtle2 are for the robots. These transformation frames are useful for positioning and localization.


  ROS also comes with some graphical tools. Rqt_graph graphically shows which nodes communicate with each other. It is also possible to filter nodes and topics differently. rqt_graph allows you to save the graph in pdf format.

run rqt_graph:

 $ rqt_graph

When the command is executed, the graphical user interface opens. Robots with complex tasks usually have many different nodes working on them that interact with a variety of topics. It is difficult to see the big picture from the command line and this is done using the rqt_graph program. Let's see how it works using the rqt_graph tool, which visualizes the relationships between nodes and themes.

Launching the command opens a graphical user interface. We see that the /teleop node reads the arrow keys and turns them into a robot motion. It is sent to /turtle1/cmd_vel, which is listened to by a robot simulation. By running the same nodes on different computers, we can control the robot from another computer. A similar configuration is often used to control real robots. Also, there are two broadcasters for the TFs, /sim node is publishing position in /turtl1/pose and /turtle2/pose.

Example of a graph on a more complex robot:


You can also use rqt tool to see the current transformation frames and relations. To see that run the following command:

$ rosrun rqt_tf_tree rqt_tf_tree

As can be seen in the GUI, two turtle1 and turtle2 frames are connected to the world tf. There are two broadcasters for them that calculate their transformation and publish them relative to the world.

Command line

The robot type is controlled by the message type geometry_msgs/twist, which consists of linear and angular velocities. Let's try to speed ourselves from the command line. The TAB key can be used to automatically complete the command. We use the rostopic pub tool argument to r 1, which sends the given message at 1 Hz:

 $ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 3.0
  y: 0.0
  z: 0.0
  x: 0.0
  y: 0.0
  z: 2.0" 

We see that the robot moves from a circular motion in the simulation.


The rqt_plot tool is used to visualize the subject data over time. With this tool, you can display the values ​​of the messages as a graph. This tool can be used, for example, to visualize sensor values. Turtles simulator publishes the x and y coordinates of a robot in /turtle1/pose/x and /turtle1/pose/y. Let's try to display these topics on the graph.

Run rqt_plot:

 $ rqt_plot

Adding /turtle1/pose/x and /turtle1/pose/y to the graph shows the real-time position of the robot on the x and y axes:

en/ros/turtlesim.txt · Last modified: 2021/06/14 12:35 by agrisnik
CC Attribution-Share Alike 4.0 International Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0