Book Image

Hands-On ROS for Robotics Programming

By : Bernardo Ronquillo Japón
Book Image

Hands-On ROS for Robotics Programming

By: Bernardo Ronquillo Japón

Overview of this book

Connecting a physical robot to a robot simulation using the Robot Operating System (ROS) infrastructure is one of the most common challenges faced by ROS engineers. With this book, you'll learn how to simulate a robot in a virtual environment and achieve desired behavior in equivalent real-world scenarios. This book starts with an introduction to GoPiGo3 and the sensors and actuators with which it is equipped. You'll then work with GoPiGo3's digital twin by creating a 3D model from scratch and running a simulation in ROS using Gazebo. Next, the book will show you how to use GoPiGo3 to build and run an autonomous mobile robot that is aware of its surroundings. Finally, you'll find out how a robot can learn tasks that have not been programmed in the code but are acquired by observing its environment. You'll even cover topics such as deep learning and reinforcement learning. By the end of this robot programming book, you'll be well-versed with the basics of building specific-purpose applications in robotics and developing highly intelligent autonomous robots from scratch.
Table of Contents (19 chapters)
1
Section 1: Physical Robot Assembly and Testing
5
Section 2: Robot Simulation with Gazebo
8
Section 3: Autonomous Navigation Using SLAM
13
Section 4: Adaptive Robot Behavior Using Machine Learning

Creating a navigation application in ROS

An application that provides a robot with navigation capabilities has to take into account the following points:

  • Sensing: This provides us with the ability to acquire motion data so that the robot is able to estimate its position in real time. This kind of information is known as robot odometry. There are two main sources of sensor data: the encoders, which let us know the rotation of the robot wheels, and the IMU sensor, which provides acceleration and rotation information about the robot as a whole. Generally speaking, data from encoders is used the most, although it may be combined with IMU data to improve the accuracy of the pose estimation. This is an advanced topic called fusion sensor, which is out of the scope of this book.
  • Localization/pose estimation: As a result of odometry and the current map of the environment, the AMCL...