万本电子书0元读

万本电子书0元读

顶部广告

ROS Robotics By Example电子书

售       价:¥

35人正在读 | 0人评论 6.2

作       者:Carol Fairchild,Dr. Thomas L. Harman

出  版  社:Packt Publishing

出版时间:2016-06-01

字       数:417.4万

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

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

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Bring life to your robot using ROS robotic applications About This Book .This book will help you boost your knowledge of ROS and give you advanced practical experience you can apply to your ROS robot platforms.This is the only book that offers you step-by-step instructions to solidify your ROS understanding and gain experience using ROS tools.From eminent authors, this book offers you a plethora of fun-filled examples to make your own quadcopter, turtlebot, and two-armed robots Who This Book Is For If you are a robotics developer, whether a hobbyist, researchers or professional, and are interested in learning about ROS through a hands-on approach, then this book is for you. You are encouraged to have a working knowledge of GNU/Linux systems and Python. What You Will Learn .Get to know the fundamentals of ROS and apply its concepts to real robot examples.Control a mobile robot to navigate autonomously in an environment.Model your robot designs using URDF and Xacro, and operate them in a ROS Gazebo simulation.Control a 7 degree-of-freedom robot arm for visual servoing.Fly a quadcopter to autonomous waypoints.Gain working knowledge of ROS tools such as Gazebo, rviz, rqt, and Move-It.Control robots with mobile devices and controller boards In Detail The visionaries who created ROS developed a framework for robotics centered on the commonality of robotic systems and exploited this commonality in ROS to expedite the development of future robotic systems. From the fundamental concepts to advanced practical experience, this book will provide you with an incremental knowledge of the ROS framework, the backbone of the robotics evolution. ROS standardizes many layers of robotics functionality from low-level device drivers to process control to message passing to software package management. This book provides step-by-step examples of mobile, armed, and flying robots, describing the ROS implementation as the basic model for other robots of these types. By controlling these robots, whether in simulation or in reality, you will use ROS to drive, move, and fly robots using ROS control. Style and approach This is an easy-to-follow guide with hands-on examples of ROS robots, both real and in simulation.
目录展开

ROS Robotics By Example

Table of Contents

ROS Robotics By Example

Credits

About the Authors

About the Reviewer

www.PacktPub.com

eBooks, discount offers, and more

Why subscribe?

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

What does ROS do and what are the benefits of learning ROS?

Who controls ROS?

Which robots are using ROS?

Installing and launching ROS

Configuring your Ubuntu repositories

Setting up your sources.list

Setting up your keys

Installing ROS Indigo

Initialize rosdep

Environment setup

Getting rosinstall

Troubleshooting – examining your ROS environment

Creating a catkin workspace

ROS packages and manifest

ROS manifest

Exploring the ROS packages

rospack find packages

rospack list

ROS nodes and ROS Master

ROS nodes

Nodes can publish and nodes can subscribe

ROS Master

Invoking the ROS Master using roscore

Parameter Server

ROS commands to determine the nodes and topics

Turtlesim, the first ROS robot simulation

Starting turtlesim nodes

rosrun command

Turtlesim nodes

Turtlesim topics and messages

rostopic list

rostopic type

rosmsg list

rosmsg show

rostopic echo

Parameter Server of turtlesim

rosparam help

rosparam list for /turtlesim node

Change parameters for the color of the turtle's background

rosparam get

rosparam set

ROS services to move turtle

rosservice call

ROS commands summary

Summary

2. Creating Your First Two-Wheeled ROS Robot (in Simulation)

Rviz

Installing and launching rviz

Using rviz

Displays panel

Views and Time panels

Mouse control

Toolbar

Main window menu bar

Creating and building a ROS package

Building a differential drive robot URDF

Creating a robot chassis

Using roslaunch

Adding wheels

Adding a caster

Adding color

Adding collisions

Moving the wheels

A word about tf and robot_state_publisher

Adding physical properties

Trying URDF tools

check_urdf

urdf_to_graphiz

Gazebo

Installing and launching Gazebo

Using roslaunch with Gazebo

Using Gazebo

Environment toolbar

World and Insert panels

Joints panel

Main window menu bar

Simulation panel

Modifications to the robot URDF

Adding the Gazebo tag

Specifying color in Gazebo

A word about <visual> and <collision> elements in Gazebo

Verifying a Gazebo model

Viewing the URDF in Gazebo

Tweaking your model

Moving your model around

Other ROS simulation environments

Summary

3. Driving Around with TurtleBot

Introducing TurtleBot

Loading TurtleBot simulator software

Launching TurtleBot simulator in Gazebo

Problems and troubleshooting

ROS commands and Gazebo

Keyboard teleoperation of TurtleBot in simulation

Setting up to control a real TurtleBot

TurtleBot standalone test

Networking the netbook and remote computer

Types of networks

Network addresses

Remote computer network setup

Netbook network setup

Secure Shell (SSH) connection

Summary of network setup

Troubleshooting your network connection

Testing the TurtleBot system

TurtleBot hardware specifications

TurtleBot dashboard

Move the real TurtleBot

Using keyboard teleoperation to move TurtleBot

Using ROS commands to move TurtleBot around

Writing your first Python script to control TurtleBot

Introducing rqt tools

rqt_graph

rqt message publisher and topic monitor

TurtleBot's odometry

Odom for the simulated TurtleBot

Real TurtleBot's odometry display in rviz

TurtleBot automatic docking

Summary

4. Navigating the World with TurtleBot

3D vision systems for TurtleBot

How these 3D vision sensors work

Comparison of 3D sensors

Microsoft Kinect

ASUS

Obstacle avoidance drawbacks

Configuring TurtleBot and installing the 3D sensor software

Kinect

ASUS and PrimeSense

Camera software structure

Defining terms

Testing the 3D sensor in standalone mode

Running ROS nodes for visualization

Visual data using Image Viewer

Visual data using rviz

Navigating with TurtleBot

Mapping a room with TurtleBot

Defining terms

Building a map

How does TurtleBot accomplish this mapping task?

Autonomous navigation with TurtleBot

Defining terms

Driving without steering TurtleBot

rviz control

How does TurtleBot accomplish this navigation task?

rqt_reconfigure

Exploring ROS navigation further

Summary

5. Creating Your First Robot Arm (in Simulation)

Features of Xacro

Expanding Xacro

Building an articulated robot arm URDF using Xacro

Using the Xacro property tag

Using roslaunch for rrbot

Using Xacro include and macro tags

Adding mesh to the robot arm

Controlling an articulated robot arm in Gazebo

Adding Gazebo-specific elements

Fixing the robot arm to the world

Viewing the robot arm in Gazebo

Adding controls to the Xacro

Defining transmission elements for joints

Adding a Gazebo ROS control plugin

Creating a YAML configuration file

Creating a control launch file

Controlling your robot arm with the ROS command line

Controlling your robot arm with rqt

Trying more things in rqt

Summary

6. Wobbling Robot Arms Using Joint Control

Introducing Baxter

Baxter, the research robot

Baxter Simulator

Baxter's arms

Baxter's pitch joints

Baxter's roll joints

Baxter's coordinate frame

Control modes for Baxter's arms

Baxter's grippers

Baxter's arm sensors

Loading the Baxter software

Installing Baxter SDK software

Installing Baxter Simulator

Configuring the Baxter shell

Installing MoveIt

Launching Baxter Simulator in Gazebo

Bringing Baxter Simulator to life

Warm-up exercises

Flexing Baxter's arms

Tucking and untucking

Wobbling arms

Controlling arms and grippers with a keyboard

Controlling arms and grippers with a joystick

Controlling arms with a Python script

Recording and replaying arm movements

Tuning Baxter's arm controllers

Baxter's arms and forward kinematics

Joints and joint state publisher

Understanding tf

A program to move Baxter's arms to a zero angle position

Rviz tf frames

Viewing a tf tree of robot elements

Introducing MoveIt

Planning a move of Baxter's arms with MoveIt

Adding objects to a scene

Position of objects

Planning a move to avoid obstacles with MoveIt

Configuring a real Baxter setup

Controlling a real Baxter

Commanding joint position waypoints

Commanding joint torque springs

Demonstrating joint velocity

Additional examples

Visual servoing and grasping

Inverse kinematics

Summary

7. Making a Robot Fly

Introducing quadrotors

Why are quadrotors so popular?

Defining roll, pitch, and yaw

How do quadrotors fly?

Components of a quadrotor

Adding sensors

Quadrotor communications

Understanding quadrotor sensors

Inertial measurement unit

Quadrotor condition sensors

Preparing to fly your quadrotor

Testing your quadrotor

Pre-flight checklist

Precautions when flying your quadrotor

Following the rules and regulations

Using ROS with UAVs

Introducing Hector Quadrotor

Loading Hector Quadrotor

Launching Hector Quadrotor in Gazebo

Flying Hector outdoors

Flying Hector indoors

Introducing Crazyflie 2.0

Controlling Crazyflie without ROS

Communicating using Crazyradio PA

Loading Crazyflie ROS software

Setting up udev rules for Crazyradio

Pre-flight check

Flying Crazyflie with teleop

Details of teleop_xbox360.launch

Flying with a motion capture system

Flying multiple Crazyflies

Introducing Bebop

Loading bebop_autonomy software

Preparing to fly Bebop

Testing Bebop communications

Flying Bebop using commands

Take off

Landing

Summary

8. Controlling Your Robots with External Devices

Creating a custom ROS game controller interface

Testing a game controller

Alternative test of a game controller

Using the joy ROS package

Controlling Turtlesim with a custom game controller interface

Creating a custom ROS Android device interface

Playing with Turtlebot Remocon

Troubleshooting TurtleBot Remocon

Custom control of ROS robot using an Android device

Installing Android Studio and Tools

Installing an ROS-Android development environment

Defining terms

Introducing ROS-Android development

Creating ROS nodes on Arduino or Raspberry Pi

Using Arduino

Installing the Arduino IDE software

Installing the ROS Arduino software

Ultrasonic sensor control using ROS and Arduino

Connecting the Arduino to the HC-SR04 ultrasonic sensor

Programming the Arduino to sense distance

Executing the ultrasonic sensor program

Other applications using ROS and Arduino

Using Raspberry Pi

Installing ROS on the Raspberry Pi

Summary

9. Flying a Mission with Crazyflie

Mission components

Kinect for Windows v2

Crazyflie operation

Mission software structure

OpenCV and ROS

Loading software for the mission

Installing libfreenect2

Installing iai_kinect2

Using the iai_kinect2 metapackage

kinect2_bridge and kinect2_viewer

kinect2_calibration

Calibrating your Kinect

Setting up the mission

Detecting Crazyflie and a target

Identifying markers in a color image

Problems with target detection

Detecting and viewing markers with OpenCV

Using Kinect and OpenCV

How to track Crazyflie

How to control Crazyflie

Crazyflie control states

Using ROS services to control takeoff and land

Activating takeoff and land

What makes takeoff and land work?

Using PID control for hover and flight

Using an observer node

Flying Crazyflie

Hovering in place

What makes hover work?

Flying to a stationary target

What makes target detection work?

Learned lessons

Logging messages with rosout and rospy

Summary

10. Extending Your ROS Abilities

Controlling a robot with your voice

Sphinx

rospeex

Enabling a robot to speak

Enabling a robot to recognize faces

Face detection with a cascade classifier

Using ROS package face_detector

Face recognition with OpenCV

Using ROS package cob_people_detection

Using ROS package face_recognition

Summary

Index

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

发表评论

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

买过这本书的人还买过

读了这本书的人还在读

回顶部