Software block diagram of self-driving cars
In this section, we will discuss a basic software block diagram of a self-driving car that was in DARPA Challenge:
Figure 11: Software block diagram of a self-driving car
Let's learn what each block means. Each block can interact with others using inter-process communication (IPC) or shared memory. ROS messaging middleware is a perfect fit in this scenario. In DARPA Challenge, they implemented a publish/subscribe mechanism to do these tasks. One of the IPC library development by MIT for 2006 DARPA challenge was Lightweight Communications and Marshalling (LCM). You may can learn more about LCM from the following link (https://lcm-proj.github.io/).
- Sensor interface modules: As the name of the module indicates, all the communication between the sensors and the vehicle is done in this block. The block enables us to provide the various kinds of sensor data to all other blocks. The main sensors include LIDAR, camera, radar, GPS, IMU, and wheel encoders...