万本电子书0元读

万本电子书0元读

顶部广告

ROS Robotics By Example - Second Edition电子书

售       价:¥

0人正在读 | 0人评论 9.8

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

出  版  社:Packt Publishing

出版时间:2017-11-30

字       数:446.5万

所属分类: 人文社科 > 哲学/宗教 > 哲学

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

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Learning how to build and program your own robots with the most popular open source robotics programming framework About This Book Get to know the fundamentals of ROS and apply its concepts to real examples Learn how to write robotics applications without getting bogged down in hardware problems Learn to implement best practices in ROS development Who This Book Is For This book is for robotic enthusiasts, researchers and professional robotics engineers who would like to build robot applications using ROS. It gives the robotics beginner and the ROS newbie an immensely practical introduction to robot building and robotics application coding. Basic knowledge of GNU/Linux and the ability to write simple applications is assumed, but no robotics knowledge, practical or theoretical, is needed. What You Will Learn Control a robot without requiring a PhD in robotics Simulate and control a robot arm Control a flying robot Send your robot on an independent mission Learning how to control your own robots with external devices Program applications running on your robot Extend ROS itself Extend ROS with the MATLAB Robotics System Toolbox In Detail ROS is a robust robotics framework that works regardless of hardware architecture or hardware origin. It standardizes most layers of robotics functionality from device drivers to process control and message passing to software package management. But apart from just plain functionality, ROS is a great platform to learn about robotics itself and to simulate, as well as actually build, your first robots. This does not mean that ROS is a platform for students and other beginners; on the contrary, ROS is used all over the robotics industry to implement flying, walking and diving robots, yet implementation is always straightforward, and never dependent on the hardware itself. ROS Robotics has been the standard introduction to ROS for potential professionals and hobbyists alike since the original edition came out; the second edition adds a gradual introduction to all the goodness available with the Kinetic Kame release. By providing you with step-by-step examples including manipulator arms and flying robots, the authors introduce you to the new features. The book is intensely practical, with space given to theory only when absolutely necessary. By the end of this book, you will have hands-on experience on controlling robots with the best possible framework. Style and approach ROS Robotics By Example, Second Edition gives the robotics beginner as well as the ROS newbie an immensely practical introduction to robot building and robotics application coding. ROS translates as "robot operating system"; you will learn how to control a robot via devices and configuration files, but you will also learn how to write robot applications on the foundation of this operating system.
目录展开

ROS Robotics By Example Second Edition

ROS Robotics By Example Second Edition

Credits

About the Authors

About the Reviewer

www.PacktPub.com

eBooks, discount offers, and more

Why subscribe?

Customer Feedback

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 file

Setting up your keys

Installing ROS Kinetic

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, topics, and messages

ROS nodes

ROS topics

ROS messages

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

Move the turtle by publishing /turtle1/cmd_vel

Move the turtle using the keyboard or joystick

Parameter Server of Turtlesim

rosparam help

rosparam list for the /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)

Introducing rviz

Installing and launching rviz

Getting familiar with 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

Getting familiar with Gazebo

Environment toolbar

World, Insert and Layers 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 the <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 2

Loading TurtleBot 2 simulator software

Launching TurtleBot 2 simulator in Gazebo

Problems and troubleshooting

ROS commands and Gazebo

Keyboard teleoperation of TurtleBot 2 in simulation

Setting up to control a real TurtleBot 2

TurtleBot 2 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 2 system

TurtleBot 2 hardware specifications

TurtleBot 2 dashboard

Moving the real TurtleBot 2

Using keyboard teleoperation to move TurtleBot 2

Using ROS commands to move TurtleBot 2 around

Writing your first Python script to control TurtleBot 2

Introducing rqt tools

rqt_graph

rqt message publisher and topic monitor

TurtleBot's odometry

Odom for the simulated TurtleBot 2

Real TurtleBot 2's odometry display in rviz

TurtleBot 2 automatic docking

Introducing TurtleBot 3

Loading TurtleBot 3 simulation software

Launching TurtleBot 3 simulation in rviz

Launching TurtleBot 3 simulation in Gazebo

Hardware assembly and testing

Loading TurtleBot 3 software

Installing remote computer software

Installing SBC software

Loading Ubuntu MATE

Loading ROS packages

Loading TurtleBot 3 packages

Setting up udev rules for TurtleBot 3

Networking TurtleBot 3 and the remote computer

Remote computer network setup

TurtleBot 3 network setup

SSH connection

Testing the SSH communication

Troubleshooting your network connection

Moving the real TurtleBot 3

Using keyboard teleoperation to move TurtleBot 3

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

PrimeSense Carmine

Intel RealSense

Hitachi-LG LDS

Obstacle avoidance drawbacks

Configuring TurtleBot and installing the 3D sensor software

Kinect

ASUS and PrimeSense

Intel RealSense

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 2

Defining terms

Building a map

How does TurtleBot accomplish this mapping task?

Autonomous navigation with TurtleBot 2

Defining terms

Driving without steering TurtleBot 2

rviz control

How does TurtleBot accomplish this navigation task?

Navigating to a designated location

Navigating to waypoints with a Python script using a map

Defining TurtleBot's position on a map

Defining waypoints on a map

Using Python code to move TurtleBot

TurtleBot at final goal point

SLAM for TurtleBot 3

Autonomous navigation with TurtleBot 3

rqt_reconfigure

Exploring ROS navigation further

Summary

5. Creating Your First Robot Arm (in Simulation)

Features of Xacro

Building an articulated robot arm URDF using Xacro

Specifying a namespace

Using the Xacro property tag

Expanding Xacro

Using roslaunch for rrbot

Using the 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 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 bend joints

Baxter's twist joints

Baxter's coordinate frame

Control modes for Baxter's arms

Baxter's grippers

Baxter's arm sensors

Loading 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

Untucking Baxter's arms

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

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

Commanding the joint angles directly

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

Moving Baxter's arms with IK

Using a state machine to perform YMCA

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

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 ROS joy package

Controlling Turtlesim with a custom game controller interface

Creating a custom ROS Android device interface

Installing Android Studio and tools

Installing a ROS–Android development environment

Defining terms

Introducing ROS–Android development

Creating ROS nodes on Arduino or Raspberry Pi

Using Arduino

Installing Arduino IDE software

Installing 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. Controlling Baxter with MATLAB©

Installing the MATLAB Robotics System Toolbox

Check the MATLAB and Robotics System Toolbox versions

View the Robotics System Toolbox commands for ROS

Using MATLAB Robotics System Toolbox and Baxter Simulator

Installing Baxter messages in MATLAB

Running Baxter Simulator and MATLAB

Making Baxter move

Summary

Index

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

发表评论

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

买过这本书的人还买过

读了这本书的人还在读

回顶部