El libro, detallado y muy orientado a ingenieros y desarrolladores reales, está repleto de ejemplos de código usando C++ (ROS admite también Python) y no elude, en algunos casos, aportar las bases algebráicas de algunos conceptos. En esos ejemplos, además, se usan simuladores de algunos robots reales como Baxter o Atlas.
En cuanto a su estructuración y contenido, decir que el libro comienza con un corto prefacio en que primero se intenta explicar qué es exactamente ROS y luego se dan algunas indicaciones de cómo está planteado el libro. A esto le siguen 18 capítulos agrupados en seis secciones, como sigue:
- Section I ROS Foundations: un sección que pone las bases de los elementos constituyentes de ROS: conceptos, herramientas y artefactos.
- Chapter 1. Introduction to ROS: ROS tools and nodes: Comienza por la definición de algunos conceptos básicos como nodos ('nodes'), mensajes ('messages'), 'topics', 'publishers' y 'suscribers'. A continuación dedica la mayor parte del capítulo a explicar la escritura de nodos (creación de paquetes, compilación, ejecución, planificación, etc). Finaliza mostrando algunas herramientas básicas: catkin_simple, roslaunch, rqt_console y rosbag.
- Chapter 2. Messages, Classes and Servers: Se concentra ahora en una alternativa al mecanismo publish/suscribe para la comunicación entre nodos y así habla de cómo definir 'messages' personalizados, da unas primeras nociones de 'services' y también de clientes ('clients') y, sobre todo servidores ('servers').
- Section II Simulation and Visualization in ROS: dedicada a las herramientas que permiten desarrollar el software para un robot sin necesidad de disponer una versión física del mismo.
- Chapter 3. Simulation in ROS: Explica las potentes capacidades de simulación en ROS. Primero muestra un simulador bidimensional simple (STDR, Simple Two-Dimensional Robot simulator). Luego explica (URDF - Unified Robot Description Format), probablemente el sistema más universal para expresar un modelo de robot. A continuación se explican los fundamentos de Gazebo, el simulador dinámico usado en ROS. Y finaliza con algunos casos concretos, como el servo control de una articulación o un robot móvil.
- Chapter 4. Coordinate Transform in ROS: Un capítulo de carácter muy algebráico que explica las transformaciones de coordenadas.
- Chapter 5. Sensing and Visualization in ROS: Se explica la herramienta de visualización de ROS: rviz. Y se ilustra con la visualización de valores de sensores como un LIDAR, una cámara de color y una cámara de profundidad.
- Section III Perceptual Processing in ROS: Comienza a incorporar el tratamiento de sensores, en especial cámaras, para percibir información del entorno.
- Chapter 6. Unsing Cameras in ROS: Tras explicar algunas importantes labores como la calibración de las cámaras se explica el uso con ROS de OpenCV, la libreria Open source para visión artificial .
- Chapter 7. Depth Imaging and Point Cloud: Se explica la obtención de profundidad mediante LIDAR, cámaras estéreo y cámaras de profundidad.
- Chapter 8. Point Cloud Processing: Se trata de la interpretación de información en 3D.
- Section IV Mobile Robots in ROS: Avanza ya hacia los robots móviles atancando los problemas de navegación y control.
- Chapter 9. Mobile Robot Motion Control: Explica el control de robot móviles estructurando el discurso en los tres elementos necesarios: primero, la generación del estado deseado y la trayectoria para alcanzarlo, segundo la estimación del estado del robot a partir de información de sensores como la odometría, GPS y LIDAR y, finalmente, el algoritmo de control que gestiona el movimiento en función de la desviación de la trayectoria deseada y con base a la información de estado.
- Chapter 10. Mobile Robot Navigation: Explica la navegación, que es una forma de control de movimiento más compleja, que no se reduce a seguir una polilínea (la trayectoria) sino que utiiliza mapas y también la detección de obstáculos.
- Section V Robot Arms in ROS: Aborda la planificación y control de brazos robóticos.
- Chapter 11. Low-Level Control: Explora el control a bajo nivel de las articulaciones del robot en ROS.
- Chapter 12. Robot Arm Kinematics: Explica la cinemática de las garras de robots, tanto la cinemática directa (cálculo de la posición de la garra con respecto a su marco base) como la inversa (dado una posición deseada de la garra, qué conjunto de ángulos de las articulaciones conseguirán ese objetivo).
- Chapter 13. Arm Motion Planning: Explica cómo planificar el movimiento del brazo del robot, lo cual puede implicar, por ejemplo, obtener la trayectoria que minimiza el tiempo para alcanzar la posición final, pero también puede, por ejemplo, optimizar las capacidades mecánicas de los actuadores.
- Chapter 14. Arm Control with Baxter Simulator: Se lleva a la práctica todo lo anterior con un simulador del robot Baxter.
- Chapter 15. An Object-Grabber Package: Finaliza esta sección con una explicación detallada del uso de un paquete dedicado al agarre de objetos.
- Section VI System Integration and Higher Level Control: Finaliza integrando la percepción con los robots móviles.
- Chapter 16. Perception-Based Manipulation: Explica cómo combinar la percepción externa con la manipulación de objetos, con un apartado previo dedicado de nuevo a la calibración de una cámara externa.
- Chapter 17. Mobile Manipulation: Proporciona una visión muy integrada, basada de nuevo en el robot Baxter, de la manipulación en robots móviles.
- Chapter 18. Conclusion: Un capítulo final que, de forma muy breve, resume lo visto a lo largo del libro.
Wyatt S. Newman
(Fuente: Traducción y elaboración propia de la ficha de autor en IEEE Xplore)
Wyatt S. Newman
Profesor del departamento de Ingeniería Eléctrica y Ciencia de los Computadores en Case Western Reseerve University, donde ha enseñado desde 1988. Sus áreas de investigación son la mecatrónica, robótica e inteligencia computacional, en las que posee 12 patentes y más de 150 publicaciones técnicas.Recibió su grado del Harvard College, Cambridge, Massachusetts, EEUU, en 1978, y su máster en ingeniería mecánica del Massachusetts Institute of Technology (MIT), Cambridge, en ciencias de fluidos y térmicas, de teoría de control y teoría de redes en Columbia University, New York, New York, EEUU, en 1982 y su doctorado en ingeniería mecánica del MIT en 1988 en diseño y control.
Pasó ocho años haciendo investigación industrial en Philips Laboratories, Briarcliff Manor, NY, USA, involucrado en diseño y control electromecánico.
Se unió a Case Western University en 1988, y en 1992, fue nombrado NSF Young Investigator in Robotics. Otras de sus experiencias y asignaciones profesionales incluyen: Visiting Scientist en Philips Naturrkundig Laboratorium, Eindhoven, Holanda, facultativo visitante en Sandia National Laboratories, Intelligent Systems and Robotics Center, Albuquerque, Nuevo México, NASA summer Faculty Fellow en NASA Glenn Research Center, Visiting Fellow en Princeton University, Distinguished Visiting Fellow, U. Edinburgh, Institute for Perception and Behavior, Edimburgo, Escocia, y el Hung Hing Ying Distinguished Visiting Professor in Science and Technology, The University of Hong Kong.
Puedes saber más del autor visitando su perfil en LinkedIn.
Ficha técnica:
TITULO: A Systematic Approach to Learning Robot Programming with ROSAUTOR: Wyatt S. Newman.EDITORIAL: CRC Press (Routeledge)AÑO: 2017 ISBN: 978-1498777827
PAGINAS: 530