Reader small image

You're reading from  Mastering ROS for Robotics Programming

Product typeBook
Published inDec 2015
Reading LevelIntermediate
PublisherPackt
ISBN-139781783551798
Edition1st Edition
Languages
Concepts
Right arrow
Author (1)
Lentin Joseph
Lentin Joseph
author image
Lentin Joseph

Lentin Joseph is an author and robotics entrepreneur from India. He runs a robotics software company called Qbotics Labs in India. He has 7 years of experience in the robotics domain primarily in ROS, OpenCV, and PCL. He has authored four books in ROS, namely, Learning Robotics using Python, Mastering ROS for Robotics Programming, ROS Robotics Projects, and Robot Operating System for Absolute Beginners. He is currently pursuing his master's in Robotics from India and is also doing research at Robotics Institute, CMU, USA.
Read more about Lentin Joseph

Right arrow

Chapter 9. Building and Interfacing Differential Drive Mobile Robot Hardware in ROS

In the previous chapter, we have discussed about robotic vision using ROS. In this chapter, we can see discuss how to build an autonomous mobile robot hardware with differential drive configuration and how to interface it into ROS. We will see how to configure ROS Navigation stack for this robot and perform SLAM and AMCL to move the robot autonomously. This chapter aims to give you an idea about building a custom mobile robot and interfacing it on ROS.

You will see the following topics in this chapter:

  • Introduction to Chefbot: a DIY autonomous mobile robot

  • Flashing Chefbot firmware using Energia IDE

  • Discussing Chefbot interface package in ROS

  • Developing base controller and odometry node for Chefbot in ROS

  • Configuring Navigation stack for Chefbot

  • Understanding AMCL

  • Understanding RViz for working with Navigation stack

  • Obstacle avoidance using Navigation stack

  • Working with Chefbot simulation

  • Sending a goal to the Navigation...

Introduction to Chefbot- a DIY mobile robot and its hardware configuration


In Chapter 4, Using the ROS MoveIt! and Navigation Stack we have discussed some mandatory requirements for interfacing a mobile robot with ROS navigation package. The following are the mandatory requirements:

  • Odometry source: Robot should publish its odometry/position data with respect to the starting position. The necessary hardware components that provide odometry information are wheel encoders, IMU, and 2D/3D cameras (visual odometry).

  • Sensor source: There should be a laser scanner or a 3D vision sensor sensor, which can act as a laser scanner. The laser scanner data is essential for map building process using SLAM.

  • Sensor transform using tf: The robot should publish the transform of the sensors and other robot components using ROS transform.

  • Base controller: The base controller is a ROS node, which can convert a twist message from Navigation stack to corresponding motor velocities.

    Figure 1: Chefbot prototype

We...

Questions


  1. What are the basic requirements for working with ROS Navigation stack?

  2. What are the main configuration files for working with ROS Navigation stack?

  3. How does AMCL package in ROS work?

  4. What are the methods to send a goal pose to Navigation stack?

Summary


In this chapter, we mainly covered interfacing a DIY autonomous mobile robot to ROS and navigation package. We saw an introduction of this robot and the necessary components and connection diagrams of the same. We saw the robot firmware and how to flash it into the real robot. After flashing the firmware, we learned how to interface it to ROS and saw the Python nodes for interfacing the LaunchPad controller in the robot and the nodes for converting twist message to motor velocities and encoder ticks to odom and tf.

After discussing the interconnection of the Chefbot nodes, we covered the C++ port of some important nodes for odometry calculation and the base controller node. After discussing these nodes, we saw detailed configurations of the ROS Navigation stack. We also did gmapping. AMCL and came into detail description of each options in RViz for working with Navigation stack. We also covered the obstacle avoidance using the Navigation stack and worked with Chefbot simulation. We...

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Mastering ROS for Robotics Programming
Published in: Dec 2015Publisher: PacktISBN-13: 9781783551798
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Lentin Joseph

Lentin Joseph is an author and robotics entrepreneur from India. He runs a robotics software company called Qbotics Labs in India. He has 7 years of experience in the robotics domain primarily in ROS, OpenCV, and PCL. He has authored four books in ROS, namely, Learning Robotics using Python, Mastering ROS for Robotics Programming, ROS Robotics Projects, and Robot Operating System for Absolute Beginners. He is currently pursuing his master's in Robotics from India and is also doing research at Robotics Institute, CMU, USA.
Read more about Lentin Joseph