Chapter wise Code
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 (Ex: 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. Rviz 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 application.
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.