Building Smart Robots using ROS
Design, Build, Simulate, Prototype and Control Smart Robots Using ROS, Machine Learning and React Native Platform
Our first book on robotics is now available for robotics enthusiasts across the globe. You can buy a copy and try out building your own version of intelligent robots. The book is our experience, engagement and empowerment gathered while building, deploying multiple humanoids, industrial robots for our customers across the world along with TCS.
A Sneak peek into 'Building Smart Robots using ROS'
Chapter 1, ROS - Describes the concept and architecture of Robotic Operating System (ROS) along with an introduction to Ubuntu command terminal. Familiarity with the Ubuntu command terminal will help you navigate, execute and monitor the files and data in the ROS system. In the next chapter we will learn how to build and run the basic nodes in ROS.
Chapter 2, Writing Nodes - A brief introduction about the communication type used between nodes in ROS. It describes the various communication methods along with their usage based on the application type. We will learn about nodes and also implement two basic nodes in ROS. In the next chapter we will try to implement and understand ROS nodes in terms of a sensor and an actuator.
Chapter 3, Sensors and Actuators – In this chapter we will be creating a basic program in ROS, based on the concepts covered in the previous chapter. Once the basic node is created, the program is further extended to include actual hardware control. We will get a brief understanding how sensor data is used and shared in the ROS network. We will be using ROS SERIAL package in this chapter which is explained in detail in the next chapter.
Chapter 4, ROS SERIAL – This chapter describes one of the packages used in the previous chapter. The ROS serial package helps the host system communicate to a controller (Arduino) using serial communication. In the next chapter we will learn how to create a web interface for robots that use ROS.
Chapter 5, Web interface - One of the basic problems faced during ROS implementation is the lack of a user interface (for non-ROS users). In this chapter we will learn how to publish and consume data from a ROS network using a web interface. In the next chapter we will learn about a simple two-dimensional simulator that will help us reinforce the concepts learnt in the previous chapters.
Chapter 6, Turtle Sim Simulation - Now as the basics of ROS and the useful packages are already covered, in this chapter we will get an idea about how a robot works within a ROS network. This includes usage of multiple nodes as well as simulation. This chapter explains how to install and use the Turtle sim simulation (2D robot simulation). This chapter will help us understand how all the nodes function together as a single system. In the next chapter we will look into the designing of a simple robot.
Chapter 7, Designing a robot - This chapter teaches how to create a basic differential drive robot in a CAD (Computer Aided Design) software. This model will be later imported into the simulation environment. We will be using a separate software for the simulation environment which is explained in the next chapter.
Chapter 8, Gazebo - This chapter gives an introduction to a 3D simulation environment called Gazebo. All the 3D models (e.g., Robot, Markers) created in the previous chapter will be imported to this environment during the simulation. The Simulation will actually help in testing the real-world scenarios virtually. Some specific tools used for evaluating a robotic arm will be discussed in the next chapter.
Chapter 9, Moveit - This chapter introduces Moveit for manipulator evaluation. Moveit is a software used for motion planning, kinematics and design evaluation. We will be evaluating a robotic arm in this chapter to get a better understanding of Moveit. In the next chapter we will be learning about a visualization tool for robotic systems.
Chapter 10, Rviz - In this chapter, we will be learning about a visualization tool called Rviz: it is a tool used during simulation as well as actual robotic application. This chapter gives an overview regarding the usage and functioning of Rviz.
Chapter 11, Vision - In this chapter we will get a basic introduction about using image processing techniques in ROS. We will learn about a ROS package called cv bridge. This chapter also gives a brief introduction about OpenCV and calibration instructions for Hardware (Camera). In the next chapter we will be learning a particular image processing example which can be used in robotics.
Chapter 12, Aruco Markers - This chapter explains the use of Aruco markers in Robotics. It teaches how to generate markers, how are they read using a camera and the instructions to run a basic program in ROS. We will also be creating a 3D marker model which can be imported to the simulation environment – Gazebo.
Chapter 13, SLAM - In this chapter we will learn the concept and usage of Simultaneous Localization and Mapping. The chapter also describes the ROS packages used for implementing SLAM and a basic example. In the next chapter we will learn how the controls of a robotic system can be ported to mobile devices.
Chapter 14, React Native App - In this chapter we will learn a method to use inputs from apps to run a robotic system. This chapter describes the method to create and run ROS integrated mobile applications.
Chapter 15, Artificial Intelligence - This chapter explains the basics of Artificial Intelligence and Machine Learning. It has a brief description of how to integrate AI and ML packages into the ROS environment along with a sample code
About the Authors
Robin Tommy is a Rapid Innovation Strategist and Thought leader, who for the past 16 years has been working with customers and partners designing technology solutions using emerging technologies and accelerated prototyping methodologies. He has filed over 90 patents across technologies and design. Robin is a strong advocate for societal and sustainable innovations and has been actively involved in devising products and platforms for the enablement and empowerment of neurodivergent society. He has been awarded with the most coveted 'Distinguished Engineer' by Tata Consultancy Services. He has also been recognized as one among the Top 100 Global Thought leader and Influencer by Thinkers360 for the past two consecutive years. He has won the NASSCOM Engineering and Innovation Excellence Award. Along with Robin, this book is also co-authored by Rinu Michael and Ajithkumar Manaparambil.
Ajithkumar Manaparambil is a robotics developer with expertise in simulation, design and manufacturing of projects pertaining to robotics, automobiles, and special purpose machines. Ajith is currently pursuing his Masters in Robotic Systems Engineering in RWTH Aachen University.
Rinu Michael is a technical expert in Artificial Intelligence and Edge Analytics and she is currently heading the TCS Rapid Labs at Amsterdam.
We owe our gratitude to many people who have played instrumental role towards the content covered in this book. We appreciate the effort and contribution by:
Reshmi Ravindranathan for her contributions to certain sections of this book and for collaborating with the publishing team.
Jeena Jayaraman, Akash Kaimal and Janu Narayan for their patience in doing multiple rounds of review for the book and helping us to refine the book, to the way it is today.
Jithin L R and Jerin Varghese Thomas, highly specialized in the field of IoT and Robotics, Power management and Human Machine Interface (HMI) design and electronic circuitry.
Gireesh Bandlamudi, an expert in the design and development of Web & Mobile applications and contributed towards integrating mobile applications with ROS.
Anand G, a distinguished robotics engineer, contributed towards embedded systems and robotics.
Georgekutty Johny for sharing his thoughts, knowledge and experiences so generously and honestly, so that the contents will be useful to someone aspiring to build their own humanoid