Cover
Copyright
Acknowledgements
Acknowledgements to Reviewers
Contents
Editor and Contributors
Part I Control of UAVs
Model Predictive Control for Trajectory Tracking of Unmanned Aerial Vehicles Using Robot Operating System
1 Introduction
2 Background
2.1 Concepts of Receding Horizon Control
2.2 Linear Model Predictive Control
2.3 Nonlinear Model Predictive Control
2.4 Linear Robust Model Predictive Control
3 Model-Based Trajectory Tracking Controller for Multi-rotor System
3.1 Multirotor System Model
3.2 Linear MPC
3.3 Nonlinear MPC
4 Model-Based Trajectory Tracking Controller for Fixed-Wing UAVs
4.1 Fixed-Wing Flight Dynamics and Identification
4.2 Nonlinear MPC
5 Conclusion
References
Designing Fuzzy Logic Controllers for ROS-Based Multirotors
1 Introduction
2 Brief Overview of Multirotors
3 Fuzzy Control System for Hexacopters
3.1 Brief Overview of Fuzzy Logic
3.2 Overview of Hexacopter Movement Control System
3.3 Example: Design of Vertical Movement and Hovering Controller
4 Open-Source Package of ROS-Based Fuzzy Logic Control Systems
4.1 Package Overview
4.2 Configuring ROS Environment and Installing the Package
4.3 Fuzzy Set Files
4.4 Fuzzy Library Implementation
4.5 Main Controller Implementation
4.6 Command Interface Implementation
4.7 Telemetry Implementation
5 Virtual Experimentation Platform
5.1 Introduction
5.2 V-REP Basics
5.3 Publishing ROS Topics
5.4 Subscribing to ROS Topics
5.5 Publishing Images from V-REP
5.6 Running the Sample Scenarios
6 Final Remarks
References
Flying Multiple UAVs Using ROS
1 Introduction
2 Target Platform
3 Setup
3.1 Setting PC Permissions
3.2 Bitcraze Crazyflie PC Client
3.3 Firmware
3.4 Crazyflie ROS Stack
4 Teleoperation of a Single Quadcopter
4.1 Using an XBox360 Controller
4.2 Add Support for Another Controller
5 Teleoperation of Multiple UAVs
5.1 Assigning a Unique Address
5.2 Finding Good Communication Parameters
5.3 ROS Usage (Multiple Crazyflies)
6 Hovering
6.1 Position Estimate
6.2 ROS Usage (Single Crazyflie)
6.3 ROS Usage (Multiple Crazyflies)
7 Waypoint Following
8 Troubleshooting
9 Inside the crazyflie_ros Stack
9.1 Overview
9.2 crazyflie_cpp
9.3 crazyflie_driver
9.4 crazyflie_controller
9.5 Possible Extensions
10 Conclusion
References
Part II Control of Mobile Robots
SkiROS---A Skill-Based Robot Control Platform on Top of ROS
1 Introduction
1.1 Environment Configuration
2 Related Work
3 Conceptual Overview
3.1 Packages Structure
3.2 World Model
3.3 Skill Manager
3.4 Task Manager
3.5 Plugins
3.6 Multiple Robots Control
4 User Interface
4.1 Edit, Execute and Monitor the Task
4.2 Plan a Task
4.3 Module Testing
4.4 Edit the Scene
5 Development
5.1 Edit the Ontology
5.2 Create a Primitive
5.3 Create a Skill
5.4 Create a Discrete Reasoner
6 Task Planner
6.1 Overview and Usage
6.2 From Skills to PDDL
6.3 Additional Features
7 Application Example
7.1 Overview
7.2 Skills
7.3 Primitives
7.4 Results
8 Conclusions
References
Control of Mobile Robots Using ActionLib
1 Introduction
2 ActionLib
3 ROS Workspace Configuration
4 Creating a PID Controller Using ActionLib
4.1 Steps to Create the Controller
4.2 Experimental Result of PID Controller
5 Creating a Fuzzy Controller Using ActionLib
5.1 Steps to Create the Controller
5.2 Experimental Results of Fuzzy Controller
6 Scheduled Fuzzy Controllers for Omnidirectional Motion of an Autonomous Inspection Robot
7 Conclusion
References
Parametric Identification of the Dynamics of Mobile Robots and Its Application to the Tuning of Controllers in ROS
1 Introduction
2 Background
2.1 Parametric Identification
2.2 Mobile Robot Model
3 ROS Packages for Identification of Robot Model
3.1 Setting up a Catkin Workspace
3.2 ros_control
3.3 ros_controllers
3.4 gazebo_ros_pkgs
3.5 twil
4 Testing the Installed Packages
5 Implementation of Parametric Identification in ROS
5.1 twil_description Package
5.2 twil_controllers Package
5.3 twil_ident Package
6 Controller Design
7 Conclusion
References
Online Trajectory Planning in ROS Under Kinodynamic Constraints with Timed-Elastic-Bands
1 Introduction
2 Theoretical Foundations of TEB
2.1 Trajectory Representation and Optimization
2.2 Closed-Loop Control
2.3 Planning in Distinctive Topologies
3 The teb_local_planner ROS Package
3.1 Prerequisites and Installation
3.2 Integration with ROS Navigation
3.3 Included Cost Terms: Objectives and Penalties
3.4 Robot Footprint for Optimization
3.5 Obstacle Representations
4 Testing Trajectory Optimization
5 Creating a Mobile Robot in Stage Simulator
5.1 Differential-Drive Robot
5.2 Car-Like Robot
6 Planning for a Differential-Drive Robot
7 Planning for a Car-Like Robot
8 Conclusion
References
Part III Integration of ROS with Internet and Distributed Systems
ROSLink: Bridging ROS with the Internet-of-Things for Cloud Robotics
1 Introduction
2 Motivating Problems and Objectives
2.1 Problem Statement
2.2 Overview
3 The ROSLink Protocol
3.1 ROSLink System Architecture
3.2 ROSLink Communication Protocol
3.3 Integration of ROSLink Proxy in Dronemap Planner
4 Experimental Validation
5 Related Work
6 Conclusion
References
ROS and Docker
1 Introduction
1.1 Overview
2 Background
3 Setup
3.1 Requirements
3.2 Installation
3.3 Building
4 Examples
4.1 Education
4.2 Industry
4.3 Research
4.4 Graphical Interfaces
5 Notes
5.1 Best Practices and Caveats
5.2 Transparent Proxy
5.3 Docker DNS Resolver
References
A ROS Package for Dynamic Bandwidth Management in Multi-robot Systems
1 Introduction
2 ROS Topics
3 Bandwidth Consumption in Topics Publishing
3.1 Publishing Camera Images in ROS
3.2 Monitoring Bandwidth Usage in ROS
3.3 Install DBM Package
3.4 Using DBM to Manage Bandwidth Consumption
3.5 Changing Topic Priorities
4 Event-Based Bandwidth Optimization
4.1 Event-Based Topic Priority
4.2 Bandwidth Management Based on Topic Priority
5 DBM Package Description
5.1 Package Architecture
5.2 Dynamic Frequency in a ROS Topic
5.3 Creating a New Managed Topic with DBM
5.4 Using DBM in an Existing Package
5.5 Implementing Other Optimization Strategies
5.6 Local Topics Management
5.7 System Parameters
6 Experimental Validation
6.1 Communication Channels
6.2 Environment Events
6.3 Bandwidth Management
7 Conclusion
References
Part IV Service Robots and Fields Experimental
An Autonomous Companion UAV for the SpaceBot Cup Competition 2015
1 Introduction
2 Related Work
3 Hardware Description
4 Software Architecture
5 Navigation
5.1 Odometry
5.2 Localisation and Mapping
5.3 SLAM and Odometry
5.4 Position Controller
6 Object Detection and Localisation
6.1 Blob Detection
6.2 Convolutional Neural Network
6.3 Object Localisation and Results
7 Collision Avoidance and Path Planning
7.1 Collision Avoidance
7.2 Path Planning
7.3 Summary
8 Autonomous Exploration of Unknown Areas
8.1 Simulation
8.2 Exploration Strategies
8.3 Evaluation and Results
9 Autonomous Behaviour
9.1 Behaviour-Network Base
9.2 Symbolic Planner Extension
9.3 ROS-Integration
9.4 SpaceBot Cup UAV Behaviours
10 Teamwork
11 Results
12 Conclusion
References
Development of an RFID Inventory Robot (AdvanRobot)
1 Introduction
2 Background
2.1 RFID Technology
2.2 Inventory Systems
3 AdvanRobot Overview
3.1 Design
3.2 Architecture
3.3 Navigation
3.4 Human-Robot Interaction
4 Simulation
5 Experimental Results
5.1 Navigation Validation
5.2 RFID Identification Accuracy
5.3 Operation by Store Associates
6 Ongoing Developments
6.1 Exploration for 3D Mapping
6.2 Location of RFID Items
7 Future Work
7.1 Collaborative Inventorying
7.2 UAVs and AdvanRobot Collaborative System
7.3 Applications Derived from Product Location
7.4 Simulation
References
Robotnik---Professional Service Robotics Applications with ROS (2)
1 Contributions of the Book Chapter
2 ELIOT: Climbing Robot for Windmill Inspection
2.1 Brief Description of the System
2.2 Robot Configuration
2.3 Robot Sensors
2.4 Communications
2.5 HMI
2.6 Challenges
3 RB-1: A Mobile Manipulator for General Purpose Applications
3.1 Brief Description of the System
3.2 Main Topics Covered
3.3 Challenges
4 RBCAR: A Mobile Autonomous Guided Car
4.1 Brief Description of the System
4.2 Main Topics Covered
4.3 Challenges
5 ROBO-SPECT: Robot for the Detection and Measurement of Surface Defects and Cracks in Tunnels
5.1 Brief Description of the System
5.2 Main Topics Covered
5.3 Challenges
6 Summary
References
Using ROS in Multi-robot Systems: Experiences and Lessons Learned from Real-World Field Tests
1 Introduction
2 Background
2.1 Classification by Size of the Team
2.2 Classification by Morphology and Capabilities of the Robots
2.3 Classification by Level of Coordination
3 Multi-robot Software Architecture
4 Communications for MRS
4.1 Relationship with Multi-robot Classification
5 A Brief Review of ROS Multi-master Packages
5.1 adhoc_communication
5.2 multimaster_fkie
5.3 rocon_multimaster
6 Example Applications for MRS and ROS
6.1 MRS for Search and Rescue
6.2 MRS for Environmental Measurements
6.3 MRS for Aerial Surveys
7 Lesson Learned and Issues to Overcome
8 Conclusions
References
Part V Perception and Sensing
15 Autonomous Navigation in a Warehouse with a Cognitive Micro Aerial Vehicle
1 Introduction
2 Related Work
3 System Overview
4 Perception
4.1 Accelerometers, Gyros, Compass, and Barometer
4.2 Cameras
4.3 Laser Scanner
4.4 Radio-Frequency Identification
5 Mapping
6 Localization and State Estimation
6.1 Triple Stereo Visual Odometry
6.2 Laser-Based Pose Tracking
6.3 AprilTag Detection
6.4 State Estimation Filter
7 Navigation
7.1 Mission Planning
7.2 Path Planning
7.3 Local Multiresolution Path Planning
7.4 Reactive Local Obstacle Avoidance
7.5 Velocity Control
8 User Interfaces
8.1 Flight Operator Interfaces
8.2 Safety Pilot Interfaces
9 Experiments and Evaluation
9.1 Data Acquisition
9.2 RFID Detection
9.3 Flight Time
9.4 Electromagnetic Compatibility
9.5 Mapping and Pose Tracking
9.6 Navigation
10 Lessons Learned
11 Conclusions
References
Robots Perception Through 3D Point Cloud Sensors
1 Introduction
2 Background
3 Common Depth Sensors for Robot Perception
3.1 Microsoft Kinect
3.2 SR4000
4 Configuring the Environment
4.1 Install Kinect
4.2 Install SR4000
5 Examples of Point Cloud Processing
5.1 Commands in Matlab
5.2 ROS Subscriber with Matlab
5.3 ROS Publishing with Matlab
5.4 Creating Markers
5.5 Filter XYZ Data
5.6 Transformation
6 Conclusion
References
Part VI ROS Simulation Frameworks
Environment for the Dynamic Simulation of ROS-Based UAVs
1 Introduction
2 Basic Multirotor Flight Concepts
3 Multirotor Configurations and Specific Characteristics
4 Multirotor Model Creation and Scene Composition in V-REP
5 ROS Virtual Hexacopter Control
6 Final Considerations
References
Building Software System and Simulation Environment for RoboCup MSL Soccer Robots Based on ROS and Gazebo
1 Introduction
2 Background
3 The NuBot Multi-robot System
3.1 Mechanical Platform
3.2 Visual Perception System
3.3 Industrial Electrical System
4 ROS-Based Software for NuBot Robots
4.1 The OmniVision Node
4.2 The FrontVision Node and the Kinect Node
4.3 The NuBot Control Node
4.4 The NuBot HWControl Node
4.5 The WorldModel Node
5 Gazebo Based Simulation System
5.1 Simulation Models and a Simulation World
5.2 Basic Motions Realization
5.3 Model Plugin and Real Robot Code Integration
5.4 Simulation of a Match
6 Single Robot Simulation Tutorial
6.1 Get the Package
6.2 Environment Configuration
6.3 Package Compiling
6.4 Package Overview
6.5 Single Robot Automatic Movement
6.6 NuBotGazebo API
6.7 How You Could Use It to Do More Stuff
7 Multi Robot Simulation Tutorial
7.1 Package Overview
7.2 Configuration of Computer A and Computer B
8 Conclusion
References
VIKI---More Than a GUI for ROS
1 Introduction
2 Background
2.1 Existing Software
3 ROS Environment Configuration
4 Testdriving VIKI
4.1 Turtlesim
4.2 Flying the Parrot A.R. Drone
4.3 SSH
5 Technical Overview
5.1 VIKI Architecture
5.2 Modules
5.3 Modularity and Reusability
5.4 GUI
5.5 Future Goals
References