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