ROS robotics by example learning to control wheeled, limbed, and flying robots using ROS kinetic kame
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 Lea...
Otros Autores: | , |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, [England] ; Mumbai, [India] :
Packt Publishing
2017.
|
Edición: | Second edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630105306719 |
Tabla de Contenidos:
- Cover
- Copyright
- Credits
- About the Authors
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 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
- 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
- ROS services to move turtle
- rosservice call
- ROS commands summary
- Summary
- Chapter 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
- 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
- Chapter 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
- Chapter 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
- Chapter 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
- Chapter 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
- Chapter 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
- Chapter 8: Controlling Your Robots with External Devices
- Creating a custom ROS game controller interface.
- Testing a game controller.