Supersmart Autonomous Car (nxp Cup 2020)
About the project
Badass robot car developed by reasonably advanced monkeys
Estimated time: 7 months+
Items used in this project
Scope of the project
Building an Autonomous Vehicle in order to participate in the 2020 NXP Cup.
During the Cup the Car has to complete several challenges including "Figure 8" - a test of precision and reliability, "Speed Limit" - recognizing zones and adjusting its velocity accordingly, "Obstacle Avoidance", "Emergency Brake" and the Timed Race in which the Car has to, by itself, navigate through an unknown course. In order to accomplish all these tasks the car is equipped with a variety of sensors which are being monitored and processed by two NXP development boards.
We are two students from the University of Lübeck currently enrolled in the third semester of our bachelors program in Robotics and Autonomous Systems (RAS).
As we have participated in last years NXP Cup, we already had a reasonably solid Codebase for the project. Due to the more relaxed rules this year and experiences from last year there is still the potential for a number of improvements to be made however.
1. Hardware/Software Architecture
The Hard- and Software are decoupled into Sensor/IO-Layer (K66F) and Driving/ESC-Layer (KL25Z). This allows for faster processing of real time data and better separation between functionality.
This means that the K66F MCU gathers and processes the Sensor and Input Data according to the user selected mode, reports telemetry regarding the vehicles surroundings back to the user and sends only the necessary information to the KL25Z board. The KL25Z is therefore free to constantly update and adjust motor RPM and set the Servo position according to the data provided by the K66F board while also monitoring slip, oversteer, understeer and other driving parameters based on measured RPM, the curvature of the road (servo angle) and the use of its gyroscope. It thus functions as the Electronic stability control (ESC) system of the vehicle.
2. Custom PCB
A custom PCB was designed to provide stable connections to all the Sensors, IO-Components and between the two board. It furthermore provides the voltage divider for the Ultrasonic Sensors and four RGB-LEDs of which the front most two can be controlled by the K66F board in order to indicate a left and right line and the ones in the back by the KL25Z board to indicate braking and loss of traction.3. IO and Settings
The spoiler houses the IO which can be used to make on-the-fly adjustments to the vehicle mode (Race, Em. Brake, Obstacle, Speed Zone, Eight), the camera exposure and the max speed of the vehicle. The OLED screen furthermore displays relevant information dependent on the currently selected driving mode for debug purposes.
4. 3D-Printed Parts
The Car was built using a number of custom designed 3D-printed parts including:
Ultrasonic Sensor Mount
The finished design
(LED Light-bar currently missing due to incident involving a chair)