Free Sample
+ Collection

Learning ROS for Robotics Programming

Aaron Martinez, Enrique Fernández

Why make life difficult for yourself in robotics programming? ROS is a software framework that already supports many functionalities, and this book will tell you everything you need to know to realize its full potential.
RRP $29.99
RRP $49.99
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781782161448
Paperback332 pages

About This Book

  • Model your robot on a virtual world and learn how to simulate it
  • Carry out state-of-the-art Computer Vision tasks
  • Easy-to-follow, practical tutorials to program your own robots

Who This Book Is For

If you are a robotic enthusiast who wants to learn how to build and program your own robots in an easy-to-develop, maintainable and shareable way, "Learning ROS for Robotics Programming" is for you. In order to make the most of the book, you should have some C++ programming background, knowledge of GNU/Linux systems, and computer science in general. No previous background on ROS is required, since this book provides all the skills required. It is also advisable to have some background on version control systems, like svn or git, which are often used to share the code by the community.

Table of Contents

Chapter 1: Getting Started with ROS
Installing ROS Electric – using repositories
Installing ROS Fuerte – using repositories
How to install VirtualBox and Ubuntu
Chapter 2: The ROS Architecture with Examples
Understanding the ROS Filesystem level
Understanding the ROS Computation Graph level
Understanding the ROS Community level
Some tutorials to practice with ROS
Chapter 3: Debugging and Visualization
Debugging ROS nodes
Debugging messages
Inspecting what is going on
When something weird happens – roswtf!
Plotting scalar data
Visualization of images
3D visualization
Saving and playing back data
rqt plugins versus rx applications
Chapter 4: Using Sensors and Actuators with ROS
Using a joystick or gamepad
Using a laser rangefinder – Hokuyo URG-04lx
Using the Kinect sensor to view in 3D
Using servomotors – Dynamixel
Using Arduino to add more sensors and actuators
Using the IMU – Xsens MTi
Using a low-cost IMU – 10 degrees of freedom
Chapter 5: 3D Modeling and Simulation
A 3D model of our robot in ROS
Creating our first URDF file
Xacro – a better way to write our robot models
Simulation in ROS
Chapter 6: Computer Vision
Connecting and running the camera
Making your own USB camera driver with OpenCV
How to calibrate the camera
The ROS image pipeline
ROS packages useful for computer vision tasks
Performing visual odometry with viso2
Chapter 7: Navigation Stack – Robot Setups
The navigation stack in ROS
Creating transforms
Publishing sensor information
Publishing odometry information
Creating a base controller
Creating a map with ROS
Chapter 8: Navigation Stack – Beyond Setups
Creating a package
Creating a robot configuration
Configuring the costmaps (global_costmap) and (local_costmap)
Base local planner configuration
Creating a launch file for the navigation stack
Setting up rviz for the navigation stack
Adaptive Monte Carlo Localization (AMCL)
Avoiding obstacles
Sending goals
Chapter 9: Combining Everything – Learn by Doing
REEM – the humanoid of PAL Robotics
PR2 – the Willow Garage robot
Robonaut 2 – the dexterous humanoid of NASA
Husky – the rover of Clearpath Robotics
TurtleBot – the low-cost mobile robot

What You Will Learn

  • Install a complete ROS Fuerte system
  • Create ROS packages and stacks, using and debugging them in real time
  • Create, handle, and debug ROS nodes
  • Design your 3D robot model and simulate it in a virtual environment within Gazebo
  • Use cameras to give vision to your robots, and calibrate and perform Computer Vision tasks with them
  • Use and integrate different sensors like Range Laser, Arduino, and Kinect with your robot
  • Create and adapt the navigation stack to work with your robot
  • Share your knowledge with the ROS community

In Detail

Both the amateur and the professional roboticist who has ever tried their hand at robotics programming will have faced with the cumbersome task of starting from scratch, usually reinventing the wheel. ROS comes with a great number of already working functionalities, and this book takes you from the first steps to the most elaborate designs possible within this software framework.

"Learning ROS for Robotics Programming" is full of practical examples that will help you to understand the framework from the very beginning. Build your own robot applications in a simulated environment and share your knowledge with the large community supporting ROS.

"Learning ROS for Robotics Programming" starts with the basic concepts and usage of ROS in a very straightforward and practical manner. It is a painless introduction to the fascinating world of robotics, covering sensor integration, modeling, simulation, computer vision, and navigation algorithms, among other topics.

After the first two chapters, concepts like topics, messages, and nodes will become daily bread. Make your robot see with HD cameras, or navigate avoiding obstacles with range sensors. Furthermore, thanks to the contributions of the vast ROS community, your robot will be able to navigate autonomously, and even recognize and interact with you, in a matter of minutes.

"Learning ROS for Robotics Programming" will give you all the background you need to know in order to start in the fascinating world of robotics and program your own robot. Simply, you put the limit!


Read More