万本电子书0元读

万本电子书0元读

顶部广告

Learning ROS for Robotics Programming - Second Edition电子书

售       价:¥

11人正在读 | 1人评论 9.8

作       者:Enrique Fernández

出  版  社:Packt Publishing

出版时间:2015-08-18

字       数:256.7万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
In order to make the most of the book, you should have a C++ programming background, knowledge of GNU/Linux systems, and general skills in computer science. No previous background in ROS is required, as this book takes you from the ground up.
目录展开

Learning ROS for Robotics Programming Second Edition

Table of Contents

Learning ROS for Robotics Programming Second Edition

Credits

About the Author

Acknowledgments

About the Author

Acknowledgments

About the Author

Acknowledgments

About the Author

Acknowledgments

About the Reviewer

About the Reviewer

Acknowledgments

About the Reviewers

www.PacktPub.com

Support files, eBooks, discount offers, and more

Why subscribe?

Free access for Packt account holders

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Downloading the color images of this book

Errata

Piracy

Questions

1. Getting Started with ROS Hydro

PC installation

Installing ROS Hydro – using repositories

Configuring your Ubuntu repositories

Setting up your source.list file

Setting up your keys

Installing ROS

Initializing rosdep

Setting up the environment

Getting rosinstall

How to install VirtualBox and Ubuntu

Downloading VirtualBox

Creating the virtual machine

Installing ROS Hydro in BeagleBone Black (BBB)

Prerequisites

Setting up the local machine and source.list file

Setting up your keys

Installing the ROS packages

Initializing rosdep for ROS

Setting up the environment in BeagleBone Black

Getting rosinstall for BeagleBone Black

Summary

2. ROS Architecture and Concepts

Understanding the ROS Filesystem level

The workspace

Packages

Metapackages

Messages

Services

Understanding the ROS Computation Graph level

Nodes and nodelets

Topics

Services

Messages

Bags

The ROS master

Parameter Server

Understanding the ROS Community level

Tutorials to practice with ROS

Navigating by ROS Filesystem

Creating our own workspace

Creating a ROS package and metapackage

Building an ROS package

Playing with ROS nodes

Learning how to interact with topics

Learning how to use services

Using Parameter Server

Creating nodes

Building the node

Creating msg and srv files

Using the new srv and msg files

The launch file

Dynamic parameters

Summary

3. Visualization and Debug Tools

Debugging ROS nodes

Using the GDB debugger with ROS nodes

Attaching a node to GDB while launching ROS

Profiling a node with valgrind while launching ROS

Enabling core dumps for ROS nodes

Logging messages

Outputting a logging message

Setting the debug message level

Configuring the debugging level of a particular node

Giving names to messages

Conditional and filtered messages

Showing messages in the once, throttle, and other combinations

Using rqt_console and rqt_logger_level to modify the debugging level on the fly

Inspecting what is going on

Listing nodes, topics, services, and parameters

Inspecting the node's graph online with rqt_graph

Setting dynamic parameters

When something weird happens

Visualizing node diagnostics

Plotting scalar data

Creating a time series plot with rqt_plot

Image visualization

Visualizing a single image

3D visualization

Visualizing data in a 3D world using rqt_rviz

The relationship between topics and frames

Visualizing frame transformations

Saving and playing back data

What is a bag file?

Recording data in a bag file with rosbag

Playing back a bag file

Inspecting all the topics and messages in a bag file

Using the rqt_gui and rqt plugins

Summary

4. Using Sensors and Actuators with ROS

Using a joystick or a gamepad

How does joy_node send joystick movements?

Using joystick data to move a turtle in turtlesim

Using a laser rangefinder – Hokuyo URG-04lx

Understanding how the laser sends data in ROS

Accessing the laser data and modifying it

Creating a launch file

Using the Kinect sensor to view objects in 3D

How does Kinect send data from the sensors, and how do we see it?

Creating an example to use Kinect

Using servomotors – Dynamixel

How does Dynamixel send and receive commands for the movements?

Creating an example to use the servomotor

Using Arduino to add more sensors and actuators

Creating an example program to use Arduino

Using an ultrasound range sensor with Arduino

How distance sensors send messages

Creating an example to use the ultrasound range

Using the IMU – Xsens MTi

How does Xsens send data in ROS?

Creating an example to use Xsens

Using a low-cost IMU – 10 degrees of freedom

Downloading the library for the accelerometer

Programming Arduino Nano and the 10 DOF sensor

Creating an ROS node to use data from the 10 DOF sensor

Using a GPS system

How GPS sends messages

Creating an example project to use GPS

Summary

5. Computer Vision

Connecting and running the camera

FireWire IEEE1394 cameras

USB cameras

Writing your own USB camera driver with OpenCV

Using OpenCV and ROS images with cv_bridge

Publishing images with image transport

Using OpenCV in ROS

Visualizing the camera input images

Calibrating the camera

Stereo calibration

The ROS image pipeline

The image pipeline for stereo cameras

ROS packages useful for Computer Vision tasks

Using visual odometry with viso2

Camera pose calibration

Running the viso2 online demo

Running viso2 with our low-cost stereo camera

Performing visual odometry with an RGBD camera

Installing fovis

Using fovis with the Kinect RGBD camera

Computing the homography of two images

Summary

6. Point Clouds

Understanding the point cloud library

Different point cloud types

Algorithms in PCL

The PCL interface for ROS

My first PCL program

Creating point clouds

Loading and saving point clouds to the disk

Visualizing point clouds

Filtering and downsampling

Registration and matching

Partitioning point clouds

Segmentation

Summary

7. 3D Modeling and Simulation

A 3D model of our robot in ROS

Creating our first URDF file

Explaining the file format

Watching the 3D model on rviz

Loading meshes to our models

Making our robot model movable

Physical and collision properties

Xacro – a better way to write our robot models

Using constants

Using math

Using macros

Moving the robot with code

3D modeling with SketchUp

Simulation in ROS

Using our URDF 3D model in Gazebo

Adding sensors to Gazebo

Loading and using a map in Gazebo

Moving the robot in Gazebo

Summary

8. The Navigation Stack – Robot Setups

The navigation stack in ROS

Creating transforms

Creating a broadcaster

Creating a listener

Watching the transformation tree

Publishing sensor information

Creating the laser node

Publishing odometry information

How Gazebo creates the odometry

Creating our own odometry

Creating a base controller

Using Gazebo to create the odometry

Creating our base controller

Creating a map with ROS

Saving the map using map_server

Loading the map using map_server

Summary

9. The Navigation Stack – Beyond Setups

Creating a package

Creating a robot configuration

Configuring the costmaps – global_costmap and local_costmap

Configuring the common parameters

Configuring the global costmap

Configuring the local costmap

Base local planner configuration

Creating a launch file for the navigation stack

Setting up rviz for the navigation stack

The 2D pose estimate

The 2D nav goal

The static map

The particle cloud

The robot's footprint

The local costmap

The global costmap

The global plan

The local plan

The planner plan

The current goal

Adaptive Monte Carlo Localization

Modifying parameters with rqt_reconfigure

Avoiding obstacles

Sending goals

Summary

10. Manipulation with MoveIt!

The MoveIt! architecture

Motion planning

The planning scene

Kinematics

Collision checking

Integrating an arm in MoveIt!

What's in the box?

Generating a MoveIt! package with the setup assistant

Integration into RViz

Integration into Gazebo or a real robotic arm

Simple motion planning

Planning a single goal

Planning a random target

Planning a predefined group state

Displaying the target motion

Motion planning with collisions

Adding objects to the planning scene

Removing objects from the planning scene

Motion planning with point clouds

The pick and place task

The planning scene

The target object to grasp

The support surface

Perception

Grasping

The pickup action

The place action

The demo mode

Simulation in Gazebo

Summary

Index

累计评论(0条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部