|  | 
 
| learning_ROS_for_robotics_programming 
 
 Table of Contents
 Preface 1
 Chapter 1: Getting Started with ROS 7
 Installing ROS Electric – using repositories 10
 Adding repositories to your sources.list file 12
 Setting up your keys 12
 Installation 12
 The environment setup 13
 Installing ROS Fuerte – using repositories 14
 Configuring your Ubuntu repositories 14
 Setting up your source.list file 15
 Setting up your keys 15
 Installation 15
 The environment setup 17
 Standalone tools 18
 How to install VirtualBox and Ubuntu 18
 Downloading VirtualBox 19
 Creating the virtual machine 19
 Summary 23
 Chapter 2: The ROS Architecture with Examples 25
 Understanding the ROS Filesystem level 26
 Packages 27
 Stacks 29
 Messages 29
 Services 31
 Understanding the ROS Computation Graph level 32
 Nodes 34
 Topics 35
 Services 36
 Table of Contents
 [ ii ]
 Messages 37
 Bags 37
 Master 38
 Parameter Server 38
 Understanding the ROS Community level 39
 Some tutorials to practice with ROS 39
 Navigating through the ROS filesystem 39
 Creating our own workspace 40
 Creating an ROS package 41
 Building an ROS package 42
 Playing with ROS nodes 42
 Learning how to interact with topics 45
 Learning how to use services 49
 Using the Parameter Server 51
 Creating nodes 52
 Building the node 55
 Creating msg and srv files 57
 Using the new srv and msg files 58
 Summary 62
 Chapter 3: Debugging and Visualization 63
 Debugging ROS nodes 66
 Using the GDB debugger with ROS nodes 66
 Attaching a node to GDB while launching ROS 67
 Enabling core dumps for ROS nodes 68
 Debugging messages 69
 Outputting a debug message 69
 Setting the debug message level 70
 Configuring the debugging level of a particular node 71
 Giving names to messages 72
 Conditional and filtered messages 73
 More messages – once, throttle, and combinations 74
 Using rosconsole and rxconsole to modify the debugging level on the fly 75
 Inspecting what is going on 80
 Listing nodes, topics, and services 80
 Inspecting the node's graph online with rxgraph 80
 When something weird happens – roswtf! 83
 Plotting scalar data 83
 Creating a time series plot with rxplot 84
 Other plotting utilities – rxtools 86
 Table of Contents
 [ iii ]
 Visualization of images 87
 Visualizing a single image 87
 FireWire cameras 88
 Working with stereo vision 90
 3D visualization 91
 Visualizing data on a 3D world using rviz 92
 The relationship between topics and frames 94
 Visualizing frame transformations 94
 Saving and playing back data 96
 What is a bag file? 97
 Recording data in a bag file with rosbag 98
 Playing back a bag file 99
 Inspecting all the topics and messages in a bag file using rxbag 100
 rqt plugins versus rx applications 102
 Summary 102
 Chapter 4: Using Sensors and Actuators with ROS 103
 Using a joystick or gamepad 104
 How does joy_node send joystick movements? 105
 Using joystick data to move a turtle in turtlesim 106
 Using a laser rangefinder – Hokuyo URG-04lx 110
 Understanding how the laser sends data in ROS 111
 Accessing the laser data and modifying it 113
 Creating a launch file 115
 Using the Kinect sensor to view in 3D 116
 How does Kinect send data from the sensors and how to see it? 117
 Creating an example to use Kinect 119
 Using servomotors – Dynamixel 121
 How does Dynamixel send and receive commands for the movements? 123
 Creating an example to use the servomotor 124
 Using Arduino to add more sensors and actuators 125
 Creating an example to use Arduino 126
 Using the IMU – Xsens MTi 129
 How does Xsens send data in ROS? 130
 Creating an example to use Xsens 131
 Using a low-cost IMU – 10 degrees of freedom 133
 Downloading the library for the accelerometer 135
 Programming Arduino Nano and the 10DOF sensor 135
 Creating a ROS node to use data from the 10DOF sensor 138
 Summary 140
 Table of Contents
 [ iv ]
 Chapter 5: 3D Modeling and Simulation 141
 A 3D model of our robot in ROS 141
 Creating our first URDF file 142
 Explaining the file format 144
 Watching the 3D model on rviz 145
 Loading meshes to our models 147
 Making our robot model movable 148
 Physical and collision properties 149
 Xacro – a better way to write our robot models 150
 Using constants 151
 Using math 151
 Using macros 151
 Moving the robot with code 152
 3D modeling with SketchUp 156
 Simulation in ROS 158
 Using our URDF 3D model in Gazebo 159
 Adding sensors to Gazebo 162
 Loading and using a map in Gazebo 163
 Moving the robot in Gazebo 165
 Summary 168
 Chapter 6: Computer Vision 171
 Connecting and running the camera 173
 FireWire IEEE1394 cameras 174
 USB cameras 178
 Making your own USB camera driver with OpenCV 180
 Creating the USB camera driver package 181
 Using the ImageTransport API to publish the camera frames 182
 Dealing with OpenCV and ROS images using cv_bridge 186
 Publishing images with ImageTransport 187
 Using OpenCV in ROS 188
 Visualizing the camera input images 188
 How to calibrate the camera 188
 Stereo calibration 193
 The ROS image pipeline 198
 Image pipeline for stereo cameras 201
 ROS packages useful for computer vision tasks 204
 Performing visual odometry with viso2 205
 Camera pose calibration 206
 Table of Contents
 [ v ]
 Running the viso2 online demo 210
 Running viso2 with our low-cost stereo camera 213
 Summary 214
 Chapter 7: Navigation Stack – Robot Setups 215
 The navigation stack in ROS 216
 Creating transforms 217
 Creating a broadcaster 218
 Creating a listener 218
 Watching the transformation tree 221
 Publishing sensor information 222
 Creating the laser node 223
 Publishing odometry information 226
 How Gazebo creates the odometry 227
 Creating our own odometry 230
 Creating a base controller 234
 Using Gazebo to create the odometry 236
 Creating our base controller 238
 Creating a map with ROS 241
 Saving the map using map_server 243
 Loading the map using map_server 244
 Summary 245
 Chapter 8: Navigation Stack – Beyond Setups 247
 Creating a package 248
 Creating a robot configuration 248
 Configuring the costmaps (global_costmap) and (local_costmap) 251
 Configuring the common parameters 251
 Configuring the global costmap 253
 Configuring the local costmap 253
 Base local planner configuration 254
 Creating a launch file for the navigation stack 255
 Setting up rviz for the navigation stack 256
 2D pose estimate 257
 2D nav goal 258
 Static map 258
 Particle cloud 259
 Robot footprint 260
 Obstacles 261
 Inflated obstacles 262
 Table of Contents
 [ vi ]
 Global plan 262
 Local plan 263
 Planner plan 264
 Current goal 264
 Adaptive Monte Carlo Localization (AMCL) 266
 Avoiding obstacles 268
 Sending goals 269
 Summary 273
 Chapter 9: Combining Everything – Learn by Doing 275
 REEM – the humanoid of PAL Robotics 276
 Installing REEM from the official repository 278
 Running REEM using the Gazebo simulator 282
 PR2 – the Willow Garage robot 284
 Installing the PR2 simulator 285
 Running PR2 in simulation 285
 Localization and mapping 289
 Running the demos of the PR2 simulator 292
 Robonaut 2 – the dexterous humanoid of NASA 293
 Installing the Robonaut 2 from the sources 293
 Running Robonaut 2 in the ISS fixed pedestal 294
 Controlling the Robonaut 2 arms 295
 Controlling the robot easily with interactive markers 295
 Giving legs to Robonaut 2 297
 Loading the ISS environment 298
 Husky – the rover of Clearpath Robotics 299
 Installing the Husky simulator 300
 Running Husky on simulation 300
 TurtleBot – the low-cost mobile robot 302
 Installing the TurtleBot simulation 302
 Running TurtleBot on simulation 303
 Summary 303
 Index 305
 
 
 
  learning_ros_for_robotics_programming.pdf
(9.57 MB, 下载次数: 0) 
 | 
 |