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