Book Image

Mastering ROS for Robotics Programming, Third edition - Third Edition

By : Lentin Joseph, Jonathan Cacace
Book Image

Mastering ROS for Robotics Programming, Third edition - Third Edition

By: Lentin Joseph, Jonathan Cacace

Overview of this book

The Robot Operating System (ROS) is a software framework used for programming complex robots. ROS enables you to develop software for building complex robots without writing code from scratch, saving valuable development time. Mastering ROS for Robotics Programming provides complete coverage of the advanced concepts using easy-to-understand, practical examples and step-by-step explanations of essential concepts that you can apply to your ROS robotics projects. The book begins by helping you get to grips with the basic concepts necessary for programming robots with ROS. You'll then discover how to develop a robot simulation, as well as an actual robot, and understand how to apply high-level capabilities such as navigation and manipulation from scratch. As you advance, you'll learn how to create ROS controllers and plugins and explore ROS's industrial applications and how it interacts with aerial robots. Finally, you'll discover best practices and methods for working with ROS efficiently. By the end of this ROS book, you'll have learned how to create various applications in ROS and build your first ROS robot.
Table of Contents (22 chapters)
1
Section 1 – ROS Programming Essentials
4
Section 2 – ROS Robot Simulation
11
Section 3 – ROS Robot Hardware Prototyping
15
Section 4 – Advanced ROS Programming

Explaining the xacro model of the seven-DOF arm

After defining the elements that we must insert in the robot model file, we are now ready to include 10 links and 9 joints (7 for the arm and 2 for the gripper) on this robot, and 2 links and 2 joints on the robot gripper.

Let's start by looking at the xacro definition:

<?xml version="1.0"?> 
<robot name="seven_dof_arm" xmlns:xacro="http://ros.org/wiki/xacro"> 

Because we are writing a xacro file, we should mention the xacro namespace to parse the file; then, we can start to define the geometric properties of the arm.

Using constants

We use constants inside this xacro to make the robot descriptions shorter and more readable. Here, we define the degree-to-radian conversion factor, the PI value, the length, the height, and the width of each of the links:

  <property name="deg_to_rad" value="0.01745329251994329577"/> 
  <property...