Book Image

Mastering ROS for Robotics Programming, Third edition - Third Edition

By : Lentin Joseph, Jonathan Cacace
Book Image

Mastering ROS for Robotics Programming, Third edition - Third Edition

By: Lentin Joseph, Jonathan Cacace

Overview of this book

The Robot Operating System (ROS) is a software framework used for programming complex robots. ROS enables you to develop software for building complex robots without writing code from scratch, saving valuable development time. Mastering ROS for Robotics Programming provides complete coverage of the advanced concepts using easy-to-understand, practical examples and step-by-step explanations of essential concepts that you can apply to your ROS robotics projects. The book begins by helping you get to grips with the basic concepts necessary for programming robots with ROS. You'll then discover how to develop a robot simulation, as well as an actual robot, and understand how to apply high-level capabilities such as navigation and manipulation from scratch. As you advance, you'll learn how to create ROS controllers and plugins and explore ROS's industrial applications and how it interacts with aerial robots. Finally, you'll discover best practices and methods for working with ROS efficiently. By the end of this ROS book, you'll have learned how to create various applications in ROS and build your first ROS robot.
Table of Contents (22 chapters)
1
Section 1 – ROS Programming Essentials
4
Section 2 – ROS Robot Simulation
11
Section 3 – ROS Robot Hardware Prototyping
15
Section 4 – Advanced ROS Programming

Understanding ROS – OpenCV interfacing packages

OpenCV is one of the most popular open source, real-time computer vision libraries, and it is mainly written in C/C++. OpenCV comes with a BSD license and is free for both academic and commercial applications. OpenCV can be programmed using C/C++, Python, and Java, and it has multi-platform support, such as Windows, Linux, Mac OS X, Android, and iOS. OpenCV has tons of computer vision APIs that can be used for implementing computer vision applications. The web page of the OpenCV library can be found at https://opencv.org/.

The OpenCV library is interfaced with ROS via a ROS stack called vision_opencv. vision_opencv consists of two important packages for interfacing OpenCV with ROS, as follows:

  • cv_bridge: The cv_bridge package contains a library that provides APIs for converting the OpenCV image data type, cv::Mat, into a ROS image message called sensor_msgs/Image and vice versa. In short, it can act as...