This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:ros:turtlesim [2020/03/23 08:53] – tomykalm | en:ros:turtlesim [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | + | ||
- | 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. | + | |
+ | 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 // | First, run // | ||
$ roscore | $ roscore | ||
- | Run a node named // | + | Run the launch file demo for Turtlesim: |
- | | + | |
- | When the node is run, a simulation with a graphical user interface opens. | + | When the launch file is running, a simulation with a graphical user interface opens. |
- | The library | + | 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. |
- | Run the robot remote control node in a new terminal window: | + | {{ :en: |
- | $ rosrun turtlesim turtle_teleop_key | + | ===== RViz ===== |
+ | 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: | ||
- | Now by pressing the arrow keys in this terminal, we can move the robot in the simulation: | + | $ rosrun rviz rviz -d `rospack find turtle_tf`/ |
- | {{: | + | 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. |
- | ====== Rqt_graph ====== | + | {{ : |
- | Let's see how it works using the //rqt_graph// tool, which visualizes the relationships between | + | ===== Rqt_graph ===== |
+ | |||
+ | ROS also comes with some graphical tools. | ||
+ | |||
+ | run // | ||
$ rqt_graph | $ rqt_graph | ||
- | {{: | ||
- | Launching | + | When the command |
+ | |||
+ | {{ : | ||
- | ====== | + | 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 /// |
+ | |||
+ | Example of a graph on a more complex robot: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ===== Rqt_tf_tree | ||
+ | You can also use rqt tool to see the current transformation frames and relations. To see that run the following | ||
+ | $ 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 // | The robot type is controlled by the message type // | ||
- | $ rostopic pub/ | + | $ rostopic pub / |
- | {{:et:ros:turtlerostopicpub.png?400|}} | + | x: 3.0 |
+ | y: 0.0 | ||
+ | z: 0.0 | ||
+ | angular: | ||
+ | x: 0.0 | ||
+ | y: 0.0 | ||
+ | z: 2.0" | ||
+ | | ||
+ | {{ :en:ros:screenshot_from_2021-03-29_13-43-58.png?400 |}} | ||
We see that the robot moves from a circular motion in the simulation. | We see that the robot moves from a circular motion in the simulation. | ||
- | ====== Rqt_plot | + | ===== Rqt_plot ===== |
- | The // | + | The // |
Run // | Run // | ||
Line 51: | Line 78: | ||
Adding /// | Adding /// | ||
- | {{: | + | {{ : |
- | + | ||
- | + | ||
- | + | ||
- | [{{: | + |