This is an old revision of the document!
TurtleBot is a flexible robotic platform designed to work with ROS. Built from common components, TurtleBot is modular and therefore allows the user to create many different configurations. Turtlebot is the ideal platform for experimenting with and learning about ROS. There are many users of the turntable, which means that many functions are freely available on the Internet in the form of ROS nodes. You don't have to write any lines of code to get Turtlebot to automatically navigate the space. All you need to do is find the right nodes on the Internet and get them working.
The main sensor of the turntable is the 3D camera. The 3D camera is one of the most versatile robot sensors. One output of a 3D camera is a 2D camera image, which means that various object recognition algorithms can be used. Many machine vision libraries are available for ROS. One of the most widely used and versatile is OpenCV. In addition, for example, the most up-to-date artificial intelligence library You only look once (YOLO) is available. The same library is used by Iseauto for object recognition.
Objects will be identified and a box will be drawn around them, with the name of the object type identified:
The advantage of a 3D camera over a conventional camera is the depth dimension. This allows the robot to sense the distance between objects. This feature allows the robot to develop autonomous navigation.
To simulate a turtle robot, everything you need to simulate a Gazebos robot is freely available on the Internet.
Let's download freely available libraries to simulate Turtlebot:
$ sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-rocon-remocon ros-kinetic- rocon qt-library ros-kinetic-ar-track-alvar-msgs
Let's start the robot simulation:
$ roslaunch turtlebot_gazebo turtlebot_world.launch
In the Gazebo Simulator, you can add simulation objects from the menu by clicking on the desired object. You'll also find tools for moving, enlarging and rotating objects in the same place.
Next we try to control the robot remotely.
Download TurtleBot Remote Libraries:
$ sudo apt-get install ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-rviz-launchers
Let's start the robot control unit:
$ roslaunch turtlebot_teleop keyboard_teleop.launch
Using the keyboard, we should now see how Turtlebot moves in the simulation.
To avoid having to read sensor values from the command line, we use the visualization tool. It is much easier to understand a robot if we see the same image as the robot. We use ROS's powerful visualization tool called Rviz. Rviz supports visualization of many different sensors. We can turn on and off visualization of different topics. You can also display camera pictures or charts on different panels. It is also possible to add functionality in the form of plugins.
Run TurtleBot Visualization Rviz:
$ roslaunch turtlebot_rviz_launchers view_robot.launch
Rviz is initially configured to display the 3D Camera Image and Robot Model (URDF). In the bottom left, we also see a two-dimensional camera image.