logo资料库

Robot Operating System (ROS) The Complete Reference (Volume 1).pdf

第1页 / 共720页
第2页 / 共720页
第3页 / 共720页
第4页 / 共720页
第5页 / 共720页
第6页 / 共720页
第7页 / 共720页
第8页 / 共720页
资料共720页,剩余部分请下载后查看
Preface
Acknowledgements
Acknowledgements to Reviewers
Contents
Part I ROS Basics and Foundations
MoveIt!: An Introduction
1 Introduction
2 A Brief History
3 MoveIt! Architecture
3.1 Collision Checking
3.2 Kinematics
3.3 Motion Planning
3.4 Planning Scene
3.5 3D Perception
3.6 Trajectory Processing
3.7 Using This Tutorial
3.8 Installing MoveIt!
4 Starting with MoveIt!: The Setup Assistant
4.1 Start
4.2 Generating the Self-Collision Matrix
4.3 Add Virtual Joints
4.4 Planning Groups
4.5 Robot Poses
4.6 Passive Joints
4.7 Adding End-Effectors (Optional)
4.8 Configuration Files
5 Using the Rviz Motion Planning Plugin
5.1 Visualization and Interaction
5.2 Useful Hints
6 The move_group_interface
6.1 Planning to a Pose Goal
6.2 Planning to a Joint Goal
6.3 Move to Joint or Pose Goals
6.4 Adding Objects into the Environment
6.5 Helpful Hints
6.6 Additional Resources
7 Connecting to a Robot
7.1 Configuring the Controller Interface
7.2 Debugging Hints
7.3 Integrating 3D Perception
7.4 Helpful Hints
8 Building Applications with MoveIt!
9 Conclusion
References
Hands-on Learning of ROS Using Common Hardware
1 Introduction
2 Background
3 ROS Environment Configuration
4 Camera Sensors: Driver, Use and Calibration
5 Custom Node and Messages for Image Processing with OpenCV
6 RGB-D Sensors and PCL
7 Actuator Control: Dynamixel and ROS Control
8 Robot Description with URDF
9 Motion Planning with MoveIt!
10 Robot Simulation with Gazebo
Reference
Threaded Applications with the roscpp API
1 Introduction
2 ROS Environment Configuration
3 Catkin Build System
3.1 Creating package.xml
3.2 CMake Setup
3.3 Message Generation
4 ROS Callback Functions
4.1 Basic Callback Functions
4.2 Robots as a Thread
5 GUI Programming with Qt5 and ROS
5.1 An Overview of Qt5 GUI Programming
5.2 Connecting the Robot to the GUI
5.3 Publishing the Velocity Messages
5.4 Results
References
Part II Navigation, Motion and Planning
Writing Global Path Planners Plugins in ROS: A Tutorial
1 Introduction
2 ROS
2.1 ROS Navigation Stack
3 Relaxed A*
4 Integration Steps
4.1 Writing the Path Planner Class
4.2 Writing Your Plugin
4.3 Running the Plugin
4.4 Testing the Planner with RVIZ
5 ROS Environment Configuration
6 Experimental Validation
References
A Universal Grid Map Library: Implementation and Use Case for Rough Terrain Navigation
1 Introduction
2 Overview
2.1 Prerequisites and Installation
2.2 Software Components
2.3 A Simple Example
3 Package Description
3.1 Adding, Accessing, and Removing Layers
3.2 Setting the Geometry and Position
3.3 Accessing Cells
3.4 Moving the Map
3.5 Basic Layers
3.6 Iterating over Cells
3.7 Using Eigen Functions
3.8 Creating Submaps
3.9 Converting from and to ROS Data Types
3.10 Adding Data from Images
4 Use Case: Elevation Mapping
4.1 Background
4.2 Implementation
4.3 Results
5 Summary and Conclusion
References
ROS Navigation: Concepts and Tutorial
1 Introduction
2 Background
3 ROS Environment
3.1 Configuring the Kinect Sensor
3.2 Sick S300 Laser Sensor
3.3 Transformations
3.4 Creating a Package
3.5 The Navigation Stack---System Overview
3.6 The Navigation Stack---Getting It to Work
3.7 Layered Costmaps
4 Starting with a Test
4.1 Using Rviz
4.2 Multiple Machines Communication
4.3 Real Tests on Pioneer 3-AT
References
Localization and Navigation of a Climbing Robot Inside a LPG Spherical Tank Based on Dual-LIDAR Scanning of Weld Beads
1 Introduction
2 AIR---Autonomous Inspection Robot
3 Localization Problems in Spherical Tanks
4 Weld Beads Scanning with LIDAR Sensors
5 Localization Inside LPG Spheres
5.1 LIDAR Based Odometry
6 Experimental Results
6.1 Experiments on Planar Environment
6.2 Experiments in LPG Spherical Tank
7 Navigation
7.1 Wheel Odometry
7.2 EKF
7.3 Simultaneous Localization and Mapping---SLAM
8 Conclusions
9 Compliance with Ethical Standards
References
Part III Service and Experimental Robots
People Detection, Tracking and Visualization Using ROS on a Mobile Service Robot
1 Introduction
2 Background of the SPENCER Project
2.1 Robot Hardware and Sensory Setup
2.2 People Tracking Pipeline
3 People Detection
3.1 ROS Message Definitions
3.2 Person Detection in 2D Laser Data
3.3 Person Detection in RGB-D
3.4 Person Detection in Monocular Vision
4 People Tracking
4.1 ROS Message Definitions
4.2 People Tracking Algorithms Used in Our Experiments
4.3 Example: Nearest-Neighbor Tracker
4.4 Improving Robustness of Tracking
4.5 Tracking Metrics
5 Group Tracking
5.1 Social Relation Estimation
5.2 Group Detection and Tracking
6 Multi-Modal Tracking
6.1 ROS Message Definitions
6.2 Strategies for Fusion at the Detection Level
6.3 Post-Processing Filters
6.4 Multi-Modal People Tracking Setup on the Robot
6.5 Exemplary Launch File
7 Visualizing the Outputs of the Perception Pipeline
7.1 Custom RViz Visualization Plugins
7.2 URDF Model for Robot Visualization
7.3 ROS-based SVG Exporters
8 Integration with 3rd-Party Simulation Tools
8.1 Integration with the Robot Simulator Gazebo
8.2 Integration with the Pedestrian Simulator PedSim
9 Results
9.1 Qualitative Results
9.2 Runtime Performance
9.3 Lessons Learned
10 Conclusion
References
A ROS-Based System for an Autonomous Service Robot
1 Introduction
2 ROS Environment Configuration
3 Graphical User Interface
3.1 Background
3.2 ROS Environment Configuration
3.3 Quick Start and Example
3.4 Package Description
4 Mapping and Navigation
4.1 Background
4.2 ROS Environment Configuration
4.3 Quick Start and Example
4.4 Using the homer_gui for Mapping and Navigation
4.5 Package Description and Code Examples
5 Object Recognition
5.1 Background
5.2 ROS Environment Configuration
5.3 Quick Start and Example
5.4 Using the homer_gui for Object Learning and Recognition
5.5 Package Description and Code Examples
6 Human Robot Interaction
6.1 Background
6.2 ROS Environment Configuration
6.3 Quick Start and Example
6.4 Package Description and Code Examples
7 Conclusion
References
Robotnik---Professional Service Robotics Applications with ROS
1 Contributions of the Book Chapter
2 RESCUER: Robot for CBRN Intervention
2.1 Brief Description of the System
2.2 Challenges
3 R-INSPECT: Mobile Robot for Tunnel Inspection
3.1 Brief Description of the System
3.2 Challenges
4 CROM: Upper Body Torso Robot
4.1 Brief Description of the System
4.2 Main Topics Covered
5 AGVS: Indoor Healthcare Logistics Transport Robot
5.1 Brief Description of the System
5.2 Main Topics Covered
5.3 Navigation
5.4 Challenges
6 VINBOT: Robot for Precision Viticulture
6.1 Brief Description of the System
6.2 Challenges
7 Summary and Conclusions
References
Standardization of a Heterogeneous Robots Society Based on ROS
1 Introduction
2 Robot Description
2.1 MariSorgin
2.2 Tartalo and Galtxagorri
2.3 Robotino-s
2.4 NAO
2.5 Kbot-I
3 Working Areas of RSAIT Research Group
4 Case Study 1: Setup of the Navigation Stack
5 Case Study 2: Kinect Based Teleoperation
5.1 The robotino_teleop_gesture Package
5.2 The nao_teleop_gesture Package
6 Case Study 3: Speech Based Teleoperation in Basque
6.1 Speech-Based Teleoperation in MariSorgin
6.2 The nao_teleop_speech_eus Package
7 Conclusions
References
Part IV Real-World Applications Deployment
ROS-Based Cognitive Surgical Robotics
1 Introduction
2 Background
3 ROS Environment Configuration
4 Components
4.1 Robots
4.2 Endoscope Cameras
4.3 OR Perception System
4.4 Marker-Based Optical Tracking
4.5 Time-of-Flight Cameras
4.6 RGB-D Cameras
4.7 Input Devices
4.8 OpenIGTLink-ROS-Bridge
4.9 Ultrasound Imaging
4.10 Surgical Instruments
4.11 Augmented Reality
5 Subsystems
5.1 Telemanipulation
5.2 Multi-RGBD People Tracking
5.3 Human-Robot-Interaction
5.4 Endoscope Guidance
5.5 Ultrasound Tomography
5.6 Simulation
5.7 Software Frameworks
6 Organization and Software Engineering
6.1 Registration and Calibration
6.2 TF and Pose Topics
6.3 Windows/Matlab Integration
6.4 Software Repositories and Configuration Management
References
ROS in Space: A Case Study on Robonaut 2
1 Introduction
2 Architecture Overview
2.1 System Architecture
2.2 Software Architecture
3 Control Software
3.1 RoboNet
3.2 JointApi
3.3 Robodyn
4 Safety System and Certification
4.1 Static Force
4.2 Dynamic Force
4.3 Crushing Force
4.4 Health Monitoring
4.5 Trajectory Monitoring
4.6 Inadvertent Release
4.7 Certification
5 Vision and Supervisory Elements
6 Simulation and User Interfaces
6.1 Simulation
6.2 Affordance Templates
6.3 Vanguard
7 Software Deployment
8 Remote Operations
9 Discussion
10 Conclusions
References
ROS in the MOnarCH Project: A Case Study in Networked Robot Systems
1 Introduction
2 System Architecture
3 Situational Awareness Module (SAM)
3.1 Definitions and Overview of the Concepts
3.2 An Example of the Use of SAM
3.3 Technical Description
3.4 Using SAM in Your Own NRS
4 Current Results
5 Related Work and Alternatives
6 Conclusion
References
Case Study: Hyper-Spectral Mapping and Thermal Analysis
1 Introduction
1.1 Company Information
1.2 Vehicle Overview
1.3 Operating Environment
2 Hardware
2.1 Imaging
2.2 Laser Rangefinder
2.3 Position and Orientation Sensors
2.4 GPS
2.5 Environmental Sensors
2.6 Processing and Storage
2.7 Network
2.8 Data Storage
2.9 Hardware Configuration and Introspection
3 Software
3.1 Simulation and Development
3.2 Diagnostics
3.3 Operator Interface
4 Best Practices and Lessons Learned
4.1 Data Storage and Indexing
4.2 Configuration Management
4.3 Startup
5 Conclusion
References
Part V Perception and Sensing
A Distributed Calibration Algorithm for Color and Range Camera Networks
1 Introduction
2 Related Work
3 Background
3.1 The Calibration Problem
3.2 Affine Transformations
3.3 Reference Frames
3.4 Pinhole Camera Model
3.5 Notations
4 Camera-Only Network Calibration
4.1 Pose Estimation
4.2 Optimization
4.3 Additional Constraints
5 Extension to a Depth Sensor-Camera Network
5.1 Pose Estimation
5.2 Optimization
6 ROS Environment Configuration
6.1 Dependencies
6.2 Basic Configuration
7 Real-World Example
8 ROS Package
8.1 Architecture
8.2 Device Node
8.3 Master Node
9 Conclusions
References
Acoustic Source Localization for Robotics Networks
1 Introduction
2 State of the Art
3 DOA-Based Localization Problem
4 Gaussian Probability over DOA Approach
5 Algorithm Analysis and Optimization
6 Simulation
6.1 Simulation Results
7 Real Tests
7.1 Real Tests Results
8 ROS Package Documentation
8.1 Why ROS?
8.2 Package Download
8.3 Installation and Required Packages
8.4 Input Parameters
8.5 Simulation Tests
8.6 Real Tests
9 Conclusions and Future Work
References
Part VI Software Engineering with ROS
ROS Web Services: A Tutorial
1 Introduction
2 Web Services
2.1 SOAP Web Services
2.2 RESTful Web Services
3 ROSJAVA API
4 ROS Web Services
4.1 Prerequisites
4.2 Implementation and Experimentation
5 Conclusion
References
rapros: A ROS Package for Rapid Prototyping
1 Introduction
2 Background
3 ROS Environment Configuration
3.1 BeagleBone Black Setup
3.2 BeagleBoard-xM Setup
3.3 rapros Package Installation
3.4 rapros Parameters Setup
4 Starting with a Test
4.1 A PIL Example: The Quadrotor Stabilization
4.2 An HIL Example: The FAN Control
5 Package Description
5.1 rapros Simulink Block
5.2 rapros.py Node
References
HyperFlex: A Model Driven Toolchain for Designing and Configuring Software Control Systems for Autonomous Robots
1 Introduction
2 Software Product Lines Development with HyperFlex
2.1 Modeling Stable Architectures
2.2 Modeling Robotic Requirements
2.3 System Configuration
2.4 The HyperFlex Toolchain
3 Variability Modeling, Composition, and Resolution
3.1 ROS Component Meta-Model
3.2 ROS Resolution Meta-Model
3.3 Architecture Composition Meta-Models
3.4 Resolution Composition Meta-Models
4 Case Study: Autonomous Logistics
4.1 The Robot Navigation Functional System
4.2 The Autonomous Logistics SPL
5 Related Works
5.1 MDE for Software Variability Management
5.2 Robotics-Specific MDE approaches
6 Conclusions and Future Works
References
Integration and Usage of a ROS-Based Whole Body Control Software Framework
1 Introduction
2 Overview of Whole Body Operational Space Control
3 Software Architecture
3.1 Core Classes
3.2 Parameter Binding
3.3 Multi-threaded Architecture
4 Plugin Libraries
5 Example Whole Body Control Configurations
6 Installation
7 Usage
8 Conclusions
References
Part VII ROS Simulation Frameworks
Simulation of Closed Kinematic Chains in Realistic Environments Using Gazebo
1 Introduction
2 Preliminaries
2.1 Kinematic Linkages
2.2 Description Formats
3 Creating a Basic Robot Model with Gazebo
3.1 Basic Skid Steer Robot
4 Creating a Simulation of a Robot in a Complex Test Environment
4.1 Creation of Scipio Model: Skid Steer Robot
4.2 Creation of Environment
5 Simulating a Robot Featuring Kinematic Loops in a Complex Test Environment
5.1 Creation of Robot Model Featuring Kinematic Loops
5.2 Creation of Environment
6 Lessons Learned
References
RotorS---A Modular Gazebo MAV Simulator Framework
1 Introduction
2 Background
2.1 MAV Modeling
2.2 Control
2.3 State Estimation
2.4 Octree Representation
3 Tutorials
3.1 Simulator Setup
3.2 Simulator Overview
3.3 Hovering Example
3.4 Hovering with State Estimation
3.5 Mount Sensors
3.6 Evaluation
4 Advanced Tutorials
4.1 Developing a Custom Controller
4.2 Tutorial on Xacros
4.3 Assembling a Model
4.4 Creating Custom Sensors
5 Using RotorS for Higher Level Tasks
5.1 Collision Avoidance
5.2 Path Planning
6 Transfer to a Real MAV
7 Conclusion
References
Part VIII Advanced Tools for ROS
The ROS Multimaster Extension for Simplified Deployment of Multi-Robot Systems
1 Introduction
2 Background
2.1 ROS Master Change Detection
2.2 Discovery
2.3 ROS Master Synchronization
3 Installation and Usage
3.1 Installation
3.2 Usage Example with One Host
3.3 Remarks to Understand Synchronization
3.4 Network Setup
3.5 Synchronization of Multiple Hosts
3.6 Special Synchronization Parameters
3.7 Default Configuration
4 Node Manager
4.1 ROS Network
4.2 Host Description Panel
4.3 ROS Nodes View and Control
4.4 ROS Topics View
4.5 ROS-Services and Parameter View
4.6 Launch Dock
4.7 Launch Editor
4.8 Description Dock
4.9 Capabilities and Additional Description
4.10 Capability View
4.11 Auto Update
Advanced ROS Network Introspection (ARNI)
1 Introduction
2 Background
3 ROS Environment Configuration
3.1 ARNI: Testing of the Setup
4 ARNI: Overview
4.1 Metadata Acquisition
4.2 ARNI rqt GUI
4.3 Reference State Specification
4.4 Countermeasures Specification
5 ARNI: Advanced Introspection
6 ARNI: Monitoring
7 ARNI: Countermeasures
8 Conclusion
Reference
Implementation of Real-Time Joint Controllers
1 Introduction
2 Background on Control Systems
2.1 Computed Torque Controller
3 ROS Packages for Implementation of Controllers
3.1 Setting up a Catkin Workspace
3.2 ros_control
3.3 ros_controllers
3.4 robot_model
3.5 orocos_kdl
3.6 gazebo_ros_pkgs
3.7 ufrgs_wam
4 Configuring the System for Real-Time
5 Testing the Installed Packages
6 Implementing Controllers in ROS
6.1 Controllers in ROS
6.2 The ROS Real-Time Loop
6.3 Implementation of a Computed Torque Controller
6.4 The wam_description Package
6.5 The wam_controllers ROS Package
7 Conclusion
References
LIDA Bridge---A ROS Interface to the LIDA (Learning Intelligent Distribution Agent) Framework
1 Introduction
2 Global Workspace Theory
3 The LIDA Model
3.1 Codelets
3.2 Perception
3.3 Episodic and Long Term Memories
3.4 Consciousness Mechanism
3.5 Action Selection
4 LIDA Framework
4.1 Structure
5 Using the LIDA Framework on ROS Through LIDA Bridge
5.1 Prerequisites
5.2 Setting up a New Project
6 Conclusions
References
Studies in Computational Intelligence 625 Anis Koubaa Editor Robot Operating System (ROS) The Complete Reference (Volume 1)
Studies in Computational Intelligence Volume 625 Series editor Janusz Kacprzyk, Polish Academy of Sciences, Warsaw, Poland e-mail: kacprzyk@ibspan.waw.pl
About this Series The series “Studies in Computational Intelligence” (SCI) publishes new develop- ments and advances in the various areas of computational intelligence—quickly and with a high quality. The intent is to cover the theory, applications, and design methods of computational intelligence, as embedded in the fields of engineering, computer science, physics and life sciences, as well as the methodologies behind them. The series contains monographs, lecture notes and edited volumes in computational intelligence spanning the areas of neural networks, connectionist systems, genetic algorithms, evolutionary computation, artificial intelligence, cellular automata, self-organizing systems, soft computing, fuzzy systems, and hybrid intelligent systems. Of particular value to both the contributors and the readership are the short publication timeframe and the worldwide distribution, which enable both wide and rapid dissemination of research output. More information about this series at http://www.springer.com/series/7092
Anis Koubaa Editor Robot Operating System (ROS) The Complete Reference (Volume 1) 123
Editor Anis Koubaa Prince Sultan University Riyadh Saudi Arabia and CISTER/INESC-TEC, ISEP Polytechnic Institute of Porto Porto Portugal ISSN 1860-949X Studies in Computational Intelligence ISBN 978-3-319-26052-5 DOI 10.1007/978-3-319-26054-9 ISBN 978-3-319-26054-9 (eBook) ISSN 1860-9503 (electronic) Library of Congress Control Number: 2015955867 Springer Cham Heidelberg New York Dordrecht London © Springer International Publishing Switzerland 2016 This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. The use of general descriptive names, registered names, in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein or for any errors or omissions that may have been made. trademarks, service marks, etc. Printed on acid-free paper Springer International Publishing AG Switzerland is part of Springer Science+Business Media (www.springer.com)
Preface ROS is an open-source robotic middleware for the large-scale development of complex robotic systems. Although the research community is quite active in developing applications with ROS and extending its features, the amount of ref- erences does not translate the huge amount of work being done. The objective of the book is to provide the reader with a comprehensive cov- erage of the Robot Operating Systems (ROS) and the latest related systems, which is currently considered as robotics applications. the main development framework for There are 27 chapters organized into eight parts. Part I presents the basics and foundations of ROS. In Part II, four chapters deal with navigation, motion and planning. Part III provides four examples of service and experimental robots. Part IV deals with real-world deployment of applications. Part V presents signal-processing tools for perception and sensing. Part VI provides software engineering methodologies to design complex software with ROS. Simulations frameworks are presented in Part VII. Finally, Part VIII presents advanced tools and frameworks for ROS including multi-master extension, network introspection, controllers and cognitive systems. I believe that this book will be a valuable companion for ROS users and developers to learn more about ROS capabilities and features. January 2016 Anis Koubaa v
Acknowledgements The editor would like to acknowledge the support of King Abdulaziz City for Science and Technology (KACST) through the funded research project entitled “MyBot: A Personal Assistant Robot Case Study for Elderly People Care” under the grant number 34-75, and also the support of Prince Sultan University. vii
Acknowledgements to Reviewers The Editor would like to thank the following reviewers for their great contributions in the review process of the book by providing a quality feedback to authors. Yasir André S. De Bence Alfredo Huimin Dirk Walter Roberto Joao Ugo Rafael Andreas Timo Maram Timm Fadri Péter William Jenssen William Markus Chienliang Mohamedfoued Steven Javed Oliveira Magyar Soto Lu Thomas Fetter Lages Guzman Fabro Cupcic Bekrvens Bihlmaier Röhling Alajlan Linder Furrer Fankhauser Woodall Chang Morris Achtelik Fok Sriti Peters Prince Sultan University Universidade Tecnológica Federal do Paraná PAL Robotics Freescale Semiconductors National University of Defense Technology Open Source Robotics Foundation Universidade Federal do Rio Grande do Sul Robotnik Universidade Tecnológica Federal do Paraná SHADOW ROBOT COMPANY LTD. University of Antwerp Karlsruhe Institute of Technologie (KIT) Fraunhofer FKIE Al-Imam Mohamed bin Saud University Social Robotics Lab, University of Freiburg Autonomous Systems Lab, ETH Zurich ETH Zurich Open Source Robotics Foundation Gaitech International Ltd. Undefined Autonomous Systems Lab, ETH Zurich University of Texas at Austin Al-Imam Muhammad Ibn Saud Islamic University Open Source Robotics Foundation ix
分享到:
收藏