Race To The Future 2023 - Thomas More
Dive into the world of AI-driven RC cars with Race To The Future, using Raspberry Pi, Jetson Nano, and computer vision for navigation.
Race To The Future is a project that aims to make RC cars drive autonomously using Raspberry Pi and Jetson Nano. The project involves overhauling RC cars to include these computer boards, as well as other components such as a PCA9685 PWM board to control the car's ESC and servo for steering. The goal of the project is to create a fully autonomous RC car that can navigate a randomized race track built using red pipes. The Raspberry Pi is used for computer vision tasks using OpenCV, while the Jetson Nano is used for artificial intelligence to control the car's movements. The project is an exciting blend of hardware and software engineering, which challenges participants to apply their skills in both areas to make the cars drive autonomously.
The following is a list of hardware components that were used in the Race To The Future project:
- Raspberry Pi: A small and low-cost computer board that is commonly used for DIY projects and is capable of running Linux operating systems. In this project, the Raspberry Pi is used for computer vision tasks using OpenCV.
- Jetson Nano: A small, low-power AI computer designed for makers and developers. In this project, the Jetson Nano is used for artificial intelligence to control the car's movements.
- PCA9685 PWM Board: A 16-channel 12-bit PWM controller that allows for precise control of the car's ESC and servo for steering.
- ESC (Electronic Speed Controller): An electronic circuit that controls the speed of an electric motor. It receives a signal from the PCA9685 PWM board to control the car's speed.
- Servo for steering: A type of motor that is commonly used in RC cars to control the steering. The PCA9685 PWM board sends a signal to control the position of the servo, which in turn controls the car's steering.
- RC Car: The RC car is the base platform for the project, it is a remote-controlled car that has been overhauled to include the above-mentioned components.
- Red pipes: The red pipes are used to build a randomized race track for the cars to navigate.
- Battery: A rechargeable battery is used to power the car, the Jetson Nano, and the Raspberry Pi.
- Camera: A camera is connected to the Raspberry Pi to provide visual input for the computer vision tasks.
- WiFi adapter: A WiFi adapter is connected to the Jetson Nano for wireless connectivity.
This is a basic list of the hardware components used in the project, additional components such as sensors or other actuators can be added depending on the specific requirements of the project.
Software and libraries
The following is a list of software and libraries that were used in the Race To The Future project:
- OpenCV: An open-source computer vision library that provides a wide range of tools for image and video processing. It was used in the project for tasks such as object detection, image processing, and feature extraction.
- TensorFlow: An open-source machine learning library developed by Google. It was used in the project for tasks such as training and deploying neural networks for the artificial intelligence aspect of the project.
- Keras: A high-level neural networks library, written in Python and capable of running on top of TensorFlow. It was used to simplify the process of building and training neural networks in the project.
- NumPy: A library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays.
- Python: a programming language that was used to write the software for the project.
These are the main software and libraries used in the project, additional libraries or frameworks may be added depending on the specific requirements of the project.
I was responsible for the hardware aspect of the project. I overhauled the RC car and included components such as a Jetson Nano and a PCA9685 PWM board to control the car's ESC and servo for steering. My colleagues Frederik Gielis and Thierry Eeman, on the other hand, were responsible for the AI aspect of the project. They worked on implementing computer vision and artificial intelligence algorithms to make the cars drive autonomously. Together we were able to successfully integrate the hardware and software to make the cars drive autonomously on a randomized track.
Results and challenges
The results of the Race To The Future project will depend on the specific implementation and goals of the project. However, in general, the success of the project can be measured by the ability of the autonomous cars to navigate the randomized track using computer vision and artificial intelligence.
As for the challenges and obstacles that may be encountered during the process, here are a few examples:
- Difficulty in programming the computer vision and AI algorithms: Implementing the computer vision and AI algorithms required for autonomous navigation can be a complex task, requiring a deep understanding of the underlying techniques and libraries.
- Difficulty in interfacing the hardware components: Interfacing the various hardware components, such as the Raspberry Pi, Jetson Nano, and the PCA9685 PWM board, can be challenging and may require a lot of trial and error.
- Difficulty in debugging and troubleshooting: Debugging and troubleshooting the project can be a time-consuming task, as it may require identifying and fixing issues in both the hardware and software components of the project.
- Limited resources: The project may be limited by the availability of resources such as funding, materials, and technical expertise.
- Limited time: The project may be limited by the time frame given for completion, which can make it difficult to implement all the desired features and functionality.
Overall, the project is a challenging one but it can be a lot of fun and rewarding. The project requires a combination of technical skills in hardware and software engineering, and problem-solving skills. It also requires a lot of patience and perseverance to overcome the obstacles encountered during the process.
The key takeaways from the Race To The Future project are:
- Understanding of autonomous navigation: Participants will gain a deeper understanding of the various techniques and technologies used in autonomous navigation, including computer vision and artificial intelligence.
- Experience in interfacing hardware components: Participants will gain experience in interfacing various hardware components, such as the Raspberry Pi, Jetson Nano, and PCA9685 PWM board, and the challenges that come with it.
- Problem-solving skills: Participants will develop problem-solving skills and learn how to troubleshoot and debug issues encountered during the project.
- Teamwork and collaboration: The project may be completed as a team, participants will have the opportunity to work with others, communicate their ideas and learn from others in the process.
As for future plans or improvements, here are a few examples:
- Improving the computer vision and AI algorithms: The project can be improved by implementing more advanced computer vision and AI algorithms to make the cars navigate the track more efficiently and accurately.
- Adding more sensors: Adding more sensors such as Lidar or ultrasonic sensors to improve the cars' perception of the environment and avoid obstacles.
- Improving the hardware: Improving the hardware by adding more powerful motors, better battery or implementing more efficient power management to increase the cars' speed and endurance.
- Building more challenging tracks: Building more challenging tracks with various obstacles and different terrains to test the cars' abilities.
Overall, the project can be continuously improved and expanded upon to make it more challenging and exciting. The possibilities are endless, and it will be exciting to see how the participants will take the project to the next level.
- OpenCV documentation: https://docs.opencv.org/
- Keras documentation: https://keras.io/
- NumPy documentation: https://numpy.org/doc/
- Python documentation: https://docs.python.org/
- PCA9685: https://www.adafruit.com/product/815
- Jetson Nano: https://docs.nvidia.com/jetson/
- GitHub repository: https://github.com/Thomas-More-Digital-Innovation/2223-DI-005-Race-To-The-Future
- GitHub wiki: https://github.com/Thomas-More-Digital-Innovation/2223-DI-005-Race-To-The-Future/wiki