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 the DARPA Challenge:

Software block diagram of a self-driving car

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 the DARPA Challenge, they implemented a publish/subscribe mechanism to do these tasks. One of the IPC library development by MIT for the 2006 DARPA Challenge was Lightweight Communications and Marshalling (LCM). You can learn more about LCM at the following link: https://lcm-proj.github.io/.

Let's learn what each block means:

  • Sensor interface modules: As the name of the module indicates, all of 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.
  • Perception modules: These modules perform processing on perception data from sensors such as LIDAR, camera, and radar and segment the data to find moving and static objects. They also help to localize the self-driving car relative to the digital map of the environment.
  • Navigation modules: These modules determine the behavior of the autonomous car. It has motion planners and finite state machines for different behaviors in the robot.
  • Vehicle interface: After the path planning, the control commands, such as steering, throttle, and brake control, are sent to the vehicle through a Drive-By-Wire (DBW) interface. DBW basically works through the CAN bus. Only some vehicles support the DBW interface. Some examples are the Lincoln MKZ, VW Passat Wagon, and some models from Nissan.
  • User interface: The user interface section provides controls for the user. It can be a touch screen to view maps and set the destination. Also, there is an emergency stop button for the user.
  • Global services: This set of modules helps to log the data and has time stamping and message-passing support to keep the software running reliably.

Now that we know the basics of self-driving cars, we can now start simulating and interfacing self-driving car sensors in ROS.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.220.160.216