A systematic approach to learning robot programming with ROS / Wyatt S. Newman.

Author
Newman, Wyatt S. [Browse]
Format
Book
Language
English
Published/​Created
Boca Raton : CRC Press, [2018]
Description
xxvii, 502 pages ; 27 cm

Availability

Copies in the Library

Location Call Number Status Location Service Notes
Engineering Library - Stacks TJ211.45 .N49 2018 Browse related items Request

    Details

    Subject(s)
    Bibliographic references
    Includes bibliographical references and index.
    Contents
    • Machine generated contents note: ch. 1 Introduction to ROS: ROS tools and nodes
    • 1.1.Some ROS Concepts
    • 1.2.Writing ROS Nodes
    • 1.2.1.Creating ROS packages
    • 1.2.2.Writing a minimal ROS publisher
    • 1.2.3.Compiling ROS nodes
    • 1.2.4.Running ROS nodes
    • 1.2.5.Examining running minimal publisher node
    • 1.2.6.Scheduling node timing
    • 1.2.7.Writing a minimal ROS subscriber
    • 1.2.8.Compiling and running minimal subscriber
    • 1.2.9.Minimal subscriber and publisher node summary
    • 1.3.More ROS Tools: Catkin_simple, ROSLaunch, RQT_Console, And Rosbag
    • 1.3.1.Simplifying CMakeLists.txt with catkin_simple
    • 1.3.2.Automating starting multiple nodes
    • 1.3.3.Viewing output in a ROS console
    • 1.3.4.Recording and playing back data with rosbag
    • 1.4.Minimal Simulator And Controller Example
    • 1.5.Wrap-Up
    • ch. 2 Messages, Classes and Servers
    • 2.1.Defining Custom Messages
    • 2.1.1.Defining a custom message
    • 2.1.2.Defining a variable-length message
    • Note continued: 2.2.Introduction To ROS Services
    • 2.2.1.Service messages
    • 2.2.2.ROS service nodes
    • 2.2.3.Manual interaction with ROS services
    • 2.2.4.Example ROS service client
    • 2.2.5.Running example service and client
    • 2.3.Using C++ Classes In ROS
    • 2.4.Creating Library Modules In ROS
    • 2.5.Introduction To Action Servers And Action Clients
    • 2.5.1.Creating an action server package
    • 2.5.2.Defining custom action-server messages
    • 2.5.3.Designing an action client
    • 2.5.4.Running the example code
    • 2.6.Introduction To Parameter Server
    • 2.7.Wrap-Up
    • ch. 3 Simulation in ROS
    • 3.1.Simple Two-Dimensional Robot Simulator
    • 3.2.Modeling For Dynamic Simulation
    • 3.3.Unified Robot Description Format
    • 3.3.1.Kinematic model
    • 3.3.2.Visual model
    • 3.3.3.Dynamic model
    • 3.3.4.Collision model
    • 3.4.Introduction To Gazebo
    • 3.5.Minimal Joint Controller
    • 3.6.Using Gazebo Plug-In For Joint Servo Control
    • 3.7.Building Mobile-Robot Model
    • Note continued: 3.8.Simulating Mobile-Robot Model
    • 3.9.Combining Robot Models
    • 3.10.Wrap-Up
    • ch. 4 Coordinate Transforms in ROS
    • 4.1.Introduction To Coordinate Transforms In ROS
    • 4.2.Transform Listener
    • 4.3.Using Eigen Library
    • 4.4.Transforming ROS Datatypes
    • 4.5.Wrap-Up
    • ch. 5 Sensing and Visualization in ROS
    • 5.1.Markers And Interactive Markers In RVIZ
    • 5.1.1.Markers in RVIZ
    • 5.1.2.Triad display example
    • 5.1.3.Interactive markers in RVIZ
    • 5.2.Displaying Sensor Values In RVIZ
    • 5.2.1.Simulating and displaying LIDAR
    • 5.2.2.Simulating and displaying color-camera data
    • 5.2.3.Simulating and displaying depth-camera data
    • 5.2.4.Selection of points in rviz
    • 5.3.Wrap-Up
    • ch. 6 Using Cameras in ROS
    • 6.1.Projective Transformation Into Camera Coordinates
    • 6.2.Intrinsic Camera Calibration
    • 6.3.Intrinsic Calibration Of Stereo Cameras
    • 6.4.Using OPENCV With ROS
    • 6.4.1.Example OpenCV: finding colored pixels
    • Note continued: 6.4.2.Example OpenCV: finding edges
    • 6.5.Wrap-Up
    • ch. 7 Depth Imaging and Point Clouds
    • 7.1.Depth From Scanning Lidar
    • 7.2.Depth From Stereo Cameras
    • 7.3.Depth Cameras
    • 7.4.Wrap-Up
    • ch. 8 Point Cloud Processing
    • 8.1.Simple Point-Cloud Display Node
    • 8.2.Loading And Displaying Point-Cloud Images From Disk
    • 8.3.Saving Published Point-Cloud Images To Disk
    • 8.4.Interpreting Point-Cloud Images With PCL Methods
    • 8.5.Object Finder
    • 8.6.Wrap-Up
    • ch. 9 Mobile-Robot Motion Control
    • 9.1.Desired State Generation
    • 9.1.1.From paths to trajectories
    • 9.1.2.A trajectory builder library
    • 9.1.3.Open-loop control
    • 9.1.4.Desired state publishing
    • 9.2.Robot State Estimation
    • 9.2.1.Getting model state from Gazebo
    • 9.2.2.Odometry
    • 9.2.3.Combining odometry, GPS and inertial sensing
    • 9.2.4.Combining odometry and LIDAR
    • 9.3.Differential-Drive Steering Algorithms
    • 9.3.1.Robot motion model
    • Note continued: 9.3.2.Linear steering of a linear robot
    • 9.3.3.Linear steering of a non-linear robot
    • 9.3.4.Non-linear steering of a non-linear robot
    • 9.3.5.Simulating non-linear steering algorithm
    • 9.4.Steering With Respect To Map Coordinates
    • 9.5.Wrap-Up
    • ch. 10 Mobile-Robot Navigation
    • 10.1.Map Making
    • 10.2.Path Planning
    • 10.3.Example Move-Base Client
    • 10.4.Modifying Navigation Stack
    • 10.5.Wrap-Up
    • ch. 11 Low-Level Control
    • 11.1.A One-Dof Prismatic-Joint Robot Model
    • 11.2.Example Position Controller
    • 11.3.Example Velocity Controller
    • 11.4.Example Force Controller
    • 11.5.Trajectory Messages For Robot Arms
    • 11.6.Trajectory Interpolation Action Server For A Seven-DOF Arm
    • 11.7.Wrap-Up
    • ch. 12 Robot Arm Kinematics
    • 12.1.Forward Kinematics
    • 12.2.Inverse Kinematics
    • 12.3.Wrap-Up
    • ch. 13 Arm Motion Planning
    • 13.1.Cartesian Motion Planning
    • 13.2.Dynamic Programming For Joint-Space Planning
    • Note continued: 13.3.Cartesian-Motion Action Servers
    • 13.4.Wrap-Up
    • ch. 14 Arm Control With Baxter Simulator
    • 14.1.Running Baxter Simulator
    • 14.2.Baxter Joints And Topics
    • 14.3.Baxter's Grippers
    • 14.4.Head Pan Control
    • 14.5.Commanding Baxter Joints
    • 14.6.Using ROS Joint Trajectory Controller
    • 14.7.Joint-Space Record And Playback Nodes
    • 14.8.Baxter Kinematics
    • 14.9.Baxter Cartesian Moves
    • 14.10.Wrap-Up
    • ch. 15 An Object-Grabber Package
    • 15.1.Object-Grabber Code Organization
    • 15.2.Object Manipulation Query Service
    • 15.3.Generic Gripper Services
    • 15.4.Object-Grabber Action Server
    • 15.5.Example Object-Grabber Action Client
    • 15.6.Wrap-Up
    • ch. 16 Perception-Based Manipulation
    • 16.1.Extrinsic Camera Calibration
    • 16.2.Integrated Perception And Manipulation
    • 16.3.Wrap-Up
    • ch. 17 Mobile Manipulation
    • 17.1.Mobile Manipulator Model
    • 17.2.Mobile Manipulation
    • 17.3.Wrap-Up
    • ch. 18 Conclusion.
    ISBN
    • 9781138096301 (hardcover : alkalinepaper)
    • 113809630X (hardcover : alkalinepaper)
    • 9781498777827 (paperback : alkaline paper)
    • 1498777821 (paperback : alkaline paper)
    LCCN
    2017013872
    OCLC
    979567139
    Statement on language in description
    Princeton University Library aims to describe library materials in a manner that is respectful to the individuals and communities who create, use, and are represented in the collections we manage. Read more...
    Other views
    Staff view

    Supplementary Information