Learning ROS for Robotics Programming - Second Edition
eBook - ePub

Learning ROS for Robotics Programming - Second Edition

Enrique Fernandez, Luis Sanchez Crespo, Anil Mahtani, Aaron Martinez, Luis Sanchez Crespo, Anil Mahtani

  1. 458 páginas
  2. English
  3. ePUB (apto para móviles)
  4. Disponible en iOS y Android
eBook - ePub

Learning ROS for Robotics Programming - Second Edition

Enrique Fernandez, Luis Sanchez Crespo, Anil Mahtani, Aaron Martinez, Luis Sanchez Crespo, Anil Mahtani

Detalles del libro
Vista previa del libro
Índice
Citas

Información del libro

Your one-stop guide to the Robot Operating SystemAbout This Book• Model your robot on a virtual world and learn how to simulate it• Create, visualize, and process Point Cloud information• Easy-to-follow, practical tutorials to program your own robotsIn DetailIf you have ever tried building a robot, then you know how cumbersome programming everything from scratch can be. This is where ROS comes into the picture. It is a collection of tools, libraries, and conventions that simplifies the robot building process. What's more, ROS encourages collaborative robotics software development, allowing you to connect with experts in various fields to collaborate and build upon each other's work.Packed full of examples, this book will help you understand the ROS framework to help you build your own robot applications in a simulated environment and share your knowledge with the large community supporting ROS.Starting at an introductory level, this book is a comprehensive guide to the fascinating world of robotics, covering sensor integration, modeling, simulation, computer vision, navigation algorithms, and more. You will then go on to explore concepts like topics, messages, and nodes. Next, you will learn how to make your robot see with HD cameras, or navigate obstacles with range sensors. Furthermore, thanks to the contributions of the vast ROS community, your robot will be able to navigate autonomously, and even recognize and interact with you in a matter of minutes.What's new in this updated edition? First and foremost, we are going to work with ROS Hydro this time around. You will learn how to create, visualize, and process Point Cloud information from different sensors. This edition will also show you how to control and plan motion of robotic arms with multiple joints using MoveIt! By the end of this book, you will have all the background you need to build your own robot and get started with ROS.What You Will Learn• Install a complete ROS Hydro system• Create ROS packages and metapackages, using and debugging them in real time• Build, handle, and debug ROS nodes• Design your 3D robot model and simulate it in a virtual environment within Gazebo• Give your robots the power of sight using cameras and calibrate and perform computer vision tasks with them• Generate and adapt the navigation stack to work with your robot• Integrate different sensors like Range Laser, Arduino, and Kinect with your robot• Visualize and process Point Cloud information from different sensors• Control and plan motion of robotic arms with multiple joints using MoveIt! Who This Book Is ForIf you are a robotic enthusiast who wants to learn how to build and program your own robots in an easy-to-develop, maintainable, and shareable way, this book is for you. In order to make the most of the book, you should have a C++ programming background, knowledge of GNU/Linux systems, and general skill in computer science. No previous background on ROS is required, as this book takes you from the ground up. It is also advisable to have some knowledge of version control systems, such as svn or git, which are often used by the community to share code.Style and approachThis book is an easy-to-follow guide that will help you find your way through the ROS framework. This book is packed with hands-on examples that will help you program your robot and give you complete solutions using ROS open source libraries and tools.

Preguntas frecuentes

¿Cómo cancelo mi suscripción?
Simplemente, dirígete a la sección ajustes de la cuenta y haz clic en «Cancelar suscripción». Así de sencillo. Después de cancelar tu suscripción, esta permanecerá activa el tiempo restante que hayas pagado. Obtén más información aquí.
¿Cómo descargo los libros?
Por el momento, todos nuestros libros ePub adaptables a dispositivos móviles se pueden descargar a través de la aplicación. La mayor parte de nuestros PDF también se puede descargar y ya estamos trabajando para que el resto también sea descargable. Obtén más información aquí.
¿En qué se diferencian los planes de precios?
Ambos planes te permiten acceder por completo a la biblioteca y a todas las funciones de Perlego. Las únicas diferencias son el precio y el período de suscripción: con el plan anual ahorrarás en torno a un 30 % en comparación con 12 meses de un plan mensual.
¿Qué es Perlego?
Somos un servicio de suscripción de libros de texto en línea que te permite acceder a toda una biblioteca en línea por menos de lo que cuesta un libro al mes. Con más de un millón de libros sobre más de 1000 categorías, ¡tenemos todo lo que necesitas! Obtén más información aquí.
¿Perlego ofrece la función de texto a voz?
Busca el símbolo de lectura en voz alta en tu próximo libro para ver si puedes escucharlo. La herramienta de lectura en voz alta lee el texto en voz alta por ti, resaltando el texto a medida que se lee. Puedes pausarla, acelerarla y ralentizarla. Obtén más información aquí.
¿Es Learning ROS for Robotics Programming - Second Edition un PDF/ePUB en línea?
Sí, puedes acceder a Learning ROS for Robotics Programming - Second Edition de Enrique Fernandez, Luis Sanchez Crespo, Anil Mahtani, Aaron Martinez, Luis Sanchez Crespo, Anil Mahtani en formato PDF o ePUB, así como a otros libros populares de Computer Science y Open Source Programming. Tenemos más de un millón de libros disponibles en nuestro catálogo para que explores.

Información

Año
2015
ISBN
9781783987597
Edición
2

Learning ROS for Robotics Programming Second Edition


Table of Contents

Learning ROS for Robotics Programming Second Edition
Credits
About the Author
Acknowledgments
About the Author
Acknowledgments
About the Author
Acknowledgments
About the Author
Acknowledgments
About the Reviewer
About the Reviewer
Acknowledgments
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
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 Hydro
PC installation
Installing ROS Hydro – using repositories
Configuring your Ubuntu repositories
Setting up your source.list file
Setting up your keys
Installing ROS
Initializing rosdep
Setting up the environment
Getting rosinstall
How to install VirtualBox and Ubuntu
Downloading VirtualBox
Creating the virtual machine
Installing ROS Hydro in BeagleBone Black (BBB)
Prerequisites
Setting up the local machine and source.list file
Setting up your keys
Installing the ROS packages
Initializing rosdep for ROS
Setting up the environment in BeagleBone Black
Getting rosinstall for BeagleBone Black
Summary
2. ROS Architecture and Concepts
Understanding the ROS Filesystem level
The workspace
Packages
Metapackages
Messages
Services
Understanding the ROS Computation Graph level
Nodes and nodelets
Topics
Services
Messages
Bags
The ROS master
Parameter Server
Understanding the ROS Community level
Tutorials to practice with ROS
Navigating by ROS Filesystem
Creating our own workspace
Creating a ROS package and metapackage
Building an ROS package
Playing with ROS nodes
Learning how to interact with topics
Learning how to use services
Using Parameter Server
Creating nodes
Building the node
Creating msg and srv files
Using the new srv and msg files
The launch file
Dynamic parameters
Summary
3. Visualization and Debug Tools
Debugging ROS nodes
Using the GDB debugger with ROS nodes
Attaching a node to GDB while launching ROS
Profiling a node with valgrind while launching ROS
Enabling core dumps for ROS nodes
Logging messages
Outputting a logging message
Setting the debug message level
Configuring the debugging level of a particular node
Giving names to messages
Conditional and filtered messages
Showing messages in the once, throttle, and other combinations
Using rqt_console and rqt_logger_level to modify the debugging level on the fly
Inspecting what is going on
Listing nodes, topics, services, and parameters
Inspecting the node's graph online with rqt_graph
Setting dynamic parameters
When something weird happens
Visualizing node diagnostics
Plotting scalar data
Creating a time series plot with rqt_plot
Image visualization
Visualizing a single image
3D visualization
Visualizing data in a 3D world using rqt_rviz
The relationship between topics and frames
Visualizing frame transformations
Saving and playing back data
What is a bag file?
Recording data in a bag file with rosbag
Playing back a bag file
Inspecting all the topics and messages in a bag file
Using the rqt_gui and rqt plugins
Summary
4. Using Sensors and Actuators with ROS
Using a joystick or a gamepad
How does joy_node send joystick movements?
Using joystick data to move a turtle in turtlesim
Using a laser rangefinder – Hokuyo URG-04lx
Understanding how the laser sends data in ROS
Accessing the laser data and modifying it
Creating a launch file
Using the Kinect sensor to view objects in 3D
How does Kinect send data from the sensors, and how do we see it?
Creating an example to use Kinect
Using servomotors – Dynamixel
How does Dynamixel send and receive commands for the movements?
Creating an example to use the servomotor
Using Arduino to add more sensors and actuators
Creating an example program to use Arduino
Using an ultrasound range sensor with Arduino
How distance sensors send messages
Creating an example to use the ultrasound range
Using the IMU – Xsens MTi
How does Xsens send data in ROS?
Creating an example to use Xsens
Using a low-cost IMU – 10 degrees of freedom
Downloading the library for the accelerometer
Programming Arduino Nano and the 10 DOF sensor
Creating an ROS node to use data from the 10 DOF sensor
Using a GPS system
How GPS sends messages
Creating an example project to use GPS
Summary
5. Computer Vision
Connecting and running the camera
FireWire IEEE1394 cameras
USB cameras
Writing your own USB camera driver with OpenCV
Using OpenCV and ROS images with cv_bridge
Publishing images with image transport
Using OpenCV in ROS
Visualizing the camera input images
Calibrating the camera
Stereo calibration
The ROS image pipeline
The image pipeline for stereo cameras
ROS packages useful for Computer Vision tasks
Using visual odometry with viso2
Camera pose calibration
Running the viso2 online demo
Running viso2 with our low-cost stereo camera
Performing visual odometry with an RGBD camera
Installing fovis
Using fovis with the Kinect RGBD camera
Computing the homography of two images
Summary
6. Point Clouds
Understanding the point cloud library
Different point cloud types
Algorithms in PCL
The PCL interface for ROS
My first PCL program
Creating point clouds
Loading and saving point clouds to the disk
Visualizing point clouds
Filtering and downsampling
Registration and matching
Partitioning point clouds
Segmentation
Summary
7. 3D Modeling and Simulation
A 3D model of our robot in ROS
Creating our first URDF file
Explaining the file format
Watching the 3D model on rviz
Loading meshes to our models
Making our robot model movable
Physical and collision properties
Xacro – a better way to write our robot models
Using constants
Using math
Using macros
Moving the robot with code
3D modeling with SketchUp
Simulation in ROS
Using our URDF 3D model in Gazebo...

Índice

Estilos de citas para Learning ROS for Robotics Programming - Second Edition

APA 6 Citation

Mahtani, A. (2015). Learning ROS for Robotics Programming - Second Edition (2nd ed.). Packt Publishing. Retrieved from https://www.perlego.com/book/4041/learning-ros-for-robotics-programming-second-edition-pdf (Original work published 2015)

Chicago Citation

Mahtani, Anil. (2015) 2015. Learning ROS for Robotics Programming - Second Edition. 2nd ed. Packt Publishing. https://www.perlego.com/book/4041/learning-ros-for-robotics-programming-second-edition-pdf.

Harvard Citation

Mahtani, A. (2015) Learning ROS for Robotics Programming - Second Edition. 2nd edn. Packt Publishing. Available at: https://www.perlego.com/book/4041/learning-ros-for-robotics-programming-second-edition-pdf (Accessed: 14 October 2022).

MLA 7 Citation

Mahtani, Anil. Learning ROS for Robotics Programming - Second Edition. 2nd ed. Packt Publishing, 2015. Web. 14 Oct. 2022.