售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
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
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜