Next Steps#

Hardware#

  • Front distance sensing: array of sensors, improve distance sensors by putting a divider between the two outfacing cylinders.

  • Processing power: include some more powerful processor that could run CNN model inference, for example, for traffic sign detection and classification. After this, evaluate whether the RPi is enough for the rest of the tasks.

  • Camera: maybe try the OpenCV AI Kit: OAK—D.

Software#

Debug#

One thing that really hurt us during the on-site part of the competition was the lack of real-time debugging capabilities. It would be great if a more sophisticated solution were implemented.

Using a proper logger for text logs (that allows filtering by types, etc) with an UI - for example, using some ROS nodes in the computer that is connected to the car (reminder: we can have a single ROS core connected to nodes in computer and in the car simultaneously).

It would be nice to be able to view the various parts of the image processing pipeline (various stages of the camera image through it) - for example by sending UDP frames from the car to the computer (using ROS communication between the car and the computer for image feeds hurts the performance too much).

Another nice thing would be the visualization of the car’s current position (as it perceives it - through the GPS, …) on a map of the track.

Algorithm Implementation#

It could be tested whether some parts of the implementation perform better if done in C++. For example, the lane detection algorithm that we implemented has a lot of logic written in python (it doesn’t just mostly use the opencv c++ wrappers). We could try to see if its implementation in C++ would give us significant performance improvements.

Maneuvers#

Reimplement maneuvers by using information from the camera, and not only the GPS.

Image processing#

More attention should be given to harsh lighting conditions, for example, the reflection of sun on the track.

Redundancy#

Use multiple sources of information. Never rely just on “GPS” for something.

Speed#

Maybe experiment with variable velocity.