Member of a 2 person team.
We designed, built and programmed an autonomous robot car from scratch, using Nvidia Jetson Nano for real-time image processing, path planning, obstacle avoidance, and vehicle control. The goal is to complete 3 laps in the shortest time while going on the left of green pillars and the right of red pillars.
I designed and developed the image processing and control algorithms while my teammate handled the mechanical part of assembly and soldering.
The important metrics of performance are accuracy and speed. High accuracy of object detection ensures that the car does not hit the walls or obstacles. Ties are broken by speed so it is also important to be fast.
Our car uses a camera to detect its surroundings. The pixel colors of the image can vary drastically depending on the view angle and the lighting. Our solution was to convert the image into HSV (Hue Saturation Value) color space so the hue value would be much more stable. For high speed, we exclusively used numpy vectorization for array operations.
One interesting thing is that the camera is aligned with the top of the walls, leading to the top of the walls being a flat line in the image. This greatly simplifies the image processing as then the top half of the image can be cropped out.