3 options
ROS robotics by example : learning to control wheeled, limbed, and flying robots using ROS kinetic kame. / Carol Fairchild, Dr. Thomas L. Harman.
- Format:
- Book
- Author/Creator:
- Fairchild, Carol, author.
- Harman, Thomas L., Dr., author.
- Language:
- English
- Subjects (All):
- Robots--Programming.
- Robots.
- Personal robotics.
- Physical Description:
- 1 online resource (1 volume) : illustrations
- Edition:
- Second edition.
- Other Title:
- Robot Operating System robotics by example
- Place of Publication:
- Birmingham, [England] ; Mumbai, [India] : Packt Publishing, 2017.
- System Details:
- text file
- Biography/History:
- Joseph Lentin: Lentin Joseph is an author and robotics entrepreneur from India. He runs a robotics software company called Qbotics Labs in India. He has 7 years of experience in the robotics domain primarily in ROS, OpenCV, and PCL. He has authored four books in ROS, namely, Learning Robotics using Python, Mastering ROS for Robotics Programming, ROS Robotics Projects, and Robot Operating System for Absolute Beginners. He is currently pursuing his master's in Robotics from India and is also doing research at Robotics Institute, CMU, USA. Fairchild Carol: Carol Fairchild is the owner and principal engineer of Fairchild Robotics, a robotics development and integration company. She is a researcher at Baxter's Lab at the University of HoustonClear Lake (UHCL) and a member of the adjunct faculty. Her research involves the use of Baxter for expanded applications. Ms. Fairchild has been involved in many aspects of robotics from her earliest days of building her first robot, a Heathkit Hero. She has an MS in computer engineering from UHCL and a BS in engineering technology from Texas A&M. Ms. Fairchild has taught middle-school robotics, coached FLL, and volunteered for FIRST Robotics in Houston. Harman Dr. Thomas L. : Dr. Thomas L. Harman is the chair of the engineering division at UHCL. His research interests are control systems and applications of robotics and microprocessors. Several of his research papers with colleagues involve robotic and laser applications in medicine. In 2005, he was selected as the UHCL Distinguished Professor. He has been a judge and safety advisor for the FIRST robotic contests in Houston. Dr. Harman has authored or coauthored 18 books on subjects including microprocessors, MATLAB and Simulink applications, and the National Electrical Code. His laboratory at UHCL has a Baxter two-armed robot and several TurtleBots as well as other robots.
- Summary:
- 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 give...
- Contents:
- 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
- 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
- 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
- TurtleBot 3 network setup
- SSH connection
- Testing the SSH communication
- Moving the real TurtleBot 3
- Using keyboard teleoperation to move TurtleBot 3
- 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
- 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
- Building a map
- How does TurtleBot accomplish this mapping task?
- Autonomous navigation with TurtleBot 2
- 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
- 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
- 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
- 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
- Chapter 8: Controlling Your Robots with External Devices
- Creating a custom ROS game controller interface.
- Testing a game controller.
- Notes:
- Includes index.
- Includes bibliographical references and index.
- Description based on online resource; title from PDF title page (EBC, viewed January 3, 2018).
- ISBN:
- 9781788474726
- 1788474724
- OCLC:
- 1019128796
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.