Google Summer of Code 2022

Open Source Autonomous Vehicle Controller (OSAVC)

Aaron Hunter

Aaron is a PhD student in Computer Engineering at the University of California, Santa Cruz. He is one of the mentors of the sensor driver modules project. His primary academic interest is the intersection of robotics, artificial intelligence, and autonomy.

Carlos Espinosa

Carlos is a PhD student in Computer Engineering at the University of California, Santa Cruz. He is one of the mentors of the sensor driver modules project. His expertise is in robot navigation towards a robust autonomous navigation in real world environments.


The OSAVC project, which is scheduled to begin in Summer 2020, is an open source hardware and software project that provides the link between real-time control and intelligent decision making. Although a number of CROSS-funded projects have interacted with hardware, the OSAVC project is the first CROSS funded effort that has the development of open source hardware as one of its primary goals.

Github Repository (master branch)

Can explore project Github repository here. To specifically know about my work during GSoC program take a look into the dev_sensor_driver branch in the project.

Sensor Driver Module

My contribution to the OSAVC Github repository: dev_sensor_driver
Detailed documentation of the development of the project: Documentation
A video of working module: Video

Glimpse of the Rover and Sensor Module

Detailed Documentation


The purpose of this sensor driver module is to develop the low level data transfer drivers for Servo Motor, LiDAR and Magnetic Rotary Encoder. Moreover, also want to different working modes, namely Range At Angle, Constant Panning and Idle Mode. Explore the other sections to get more insights in the project.

Raspberry Pi Pico

Raspberry Pi Pico is a small, fast and versatile microcontroller board with large number of GPIO pins. The board is based on a RP2040 microcontroller.


LiDAR is one of the major component of self-driving cars. LiDAR works as a sensor and used to measure a distance with very high speed and accuracy.

Servo Motor

In our project, motor can be used to rotate a sensor module. This sensor module is comprise of LiDAR and rotary encoder. One of the benefits of using a servo motor is one always know at what position it is in. It got feedback mechanism built inside.

Magnetic Rotary Encoder

Encoder is a sensing device and converts motion to an electrical signal that can be used as feedback mechanism. Rotary Encoder is used to convert rotational motion into electrical signals that can be used to detect position and speed of rotating bodies. Magnetic Rotary Encoder uses hall effect of magnetic field and senses angle and speed of the rotating part.

Changing the driving modes

As, we already discussed in Introduction section. We have two different modes of driving. Namely Range At Angel and Constant Panning. If a sensor module is not in any of the mode than it would be in Ideal Mode.

Description of different modes

In detailed description of each mode.