A Concise Introduction to Robot Programming with ROS2

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

A Concise Introduction to Robot Programming with ROS2 provides the reader with the concepts and tools necessary to bring a robot to life through programming. It will equip the reader with the skills necessary to undertake projects with ROS2, the new version of ROS. It is not necessary to have previous experience with ROS2 as it will describe its concepts, tools, and methodologies from the beginning. Key Features Uses the two programming languages officially supported in ROS2 (C++, mainly, and Python) Approaches ROS2 from three different but complementary dimensions: the Community, Computation Graph, and the Workspace Includes a complete simulated robot, development and testing strategies, Behavior Trees, and Nav2 description, setup, and use A GitHub repository with code to assist readers It will appeal to motivated engineering students, engineers, and professionals working with robot programming.

Author(s): Francisco Martín Rico
Publisher: CRC Press/Chapman & Hall
Year: 2022

Language: English
Pages: 263
City: Boca Raton

Cover
Half Title
Title Page
Copyright Page
Contents
List of Figures
CHAPTER 1: Introduction
1.1. ROS2 OVERVIEW
1.1.1. The ROS Community
1.1.2. The Computation Graph
1.1.3. The Workspace
1.2. THE ROS2 DESIGN
1.3. ABOUT THIS BOOK
CHAPTER 2: First Steps with ROS2
2.1. FIRST STEPS WITH ROS2
2.2. DEVELOPING THE FIRST NODE
2.3. ANALYZING THE BR2 BASICS PACKAGE
2.3.1. Controlling the Iterative Execution
2.3.2. Publishing and Subscribing
2.3.3. Launchers
2.3.4. Parameters
2.3.5. Executors
2.4. SIMULATED ROBOT SETUP
CHAPTER 3: First Behavior: Avoiding Obstacles with Finite States Machines
3.1. PERCEPTION AND ACTUATION MODELS
3.2. COMPUTATION GRAPH
3.3. BUMP AND GO IN C++
3.3.1. Execution Control
3.3.2. Implementing a FSM
3.3.3. Running the Code
3.4. BUMP AND GO BEHAVIOR IN PYTHON
3.4.1. Execution Control
3.4.2. Implementing the FSM
3.4.3. Running the Code
CHAPTER 4: The TF Subsystem
4.1. AN OBSTACLE DETECTOR THAT USES TF2
4.2. COMPUTATION GRAPH
4.3. BASIC DETECTOR
4.3.1. Obstacle Detector Node
4.3.2. Obstacle Monitor Node
4.3.3. Running the Basic Detector
4.4. IMPROVED DETECTOR
4.4.1. Running the Improved Detector
CHAPTER 5: Reactive Behaviors
5.1. AVOIDING OBSTACLES WITH VFF
5.1.1. The Computation Graph
5.1.2. Package Structure
5.1.3. Control Logic
5.1.4. Calculation of the VFF Vectors
5.1.5. Debugging with Visual Markers
5.1.6. Running the AvoidanceNode
5.1.7. Testing During Development
5.2. TRACKING OBJECTS
5.2.1. Perception and Actuation Models
5.2.2. Computation Graph
5.2.3. Lifecycle Nodes
5.2.4. Creating Custom Messages
5.2.5. Tracking Implementation
5.2.6. Executing the Tracker
CHAPTER 6: Programming Robot Behaviors with Behavior Trees
6.1. BEHAVIOR TREES
6.2. BUMP AND GO WITH BEHAVIOR TREES
6.2.1. Using Groot to Create the Behavior Tree
6.2.2. BT Nodes Implementation
6.2.3. Running the Behavior Tree
6.2.4. Testing the BT Nodes
6.3. PATROLLING WITH BEHAVIOR TREES
6.3.1. Nav2 Description
6.3.2. Setup Nav2
6.3.3. Computation Graph and Behavior Tree
6.3.4. Patrolling Implementation
6.3.5. Running Patrolling
APPENDIX A: Source Code
A.1. PACKAGE BR2 BASICS
A.2. PACKAGE BR2 FSM BUMPGO CPP
A.3. PACKAGE BR2 FSM BUMPGO PY
A.4. PACKAGE BR2 TF2 DETECTOR
A.5. PACKAGE BR2 VFF AVOIDANCE
A.6. PACKAGE BR2 TRACKING MSGS
A.7. PACKAGE BR2 TRACKING
A.8. PACKAGE BR2 BT BUMPGO
A.9. PACKAGE BR2 BT PATROLLING
Bibliography
Index