Avtokrobat is a project aimed at developing the world’s first autonomous car capable of performing aerial manoeuvres. As part of this project, my task was to design a development platform that supports modular upgrades and allows the system to gradually progress toward the project's final objective. This thesis describes the design and implementation of the hardware and software foundations of such a system. The platform must provide a four-wheeled vehicle capable of reaching the speeds required for aerial manoeuvres while being durable enough to withstand landing forces. It incorporates modular hardware components prepared for the further development of algorithms for autonomous aerial manoeuvres, as well as a supporting structure suitable for mounting and protecting these components. In addition, the platform is designed to allow system optimization through future upgrades, all while maintaining an appropriately low cost.
The MJX Hyper Go 14210 remote-controlled car was selected as the base vehicle due to its high speed and robust chassis. A Raspberry Pi 5 serves as the high-level controller, while an Arduino Nano 33 BLE Sense Rev2 board handles low-level control and sensor data acquisition. For odometry, the system uses a BMI270 combined accelerometer and gyroscope, a BMM150 magnetometer, and a MagAlpha TBMA-Q-LT 730 magnetic encoder. The platform is also prepared for visual odometry using a camera.
The supporting structure was designed in Tinkercad and Autodesk Fusion 360 and manufactured through 3D printing. The final design fits under the vehicle’s original hood and provides compact protection. Key improvements include reinforcement of the front section, a redesigned camera mount, and optimized attachment points. A printed circuit board (PCB) was also developed to ensure simple and robust connections between sensors, actuators, the DC-DC converter, and the power bus.
On the software side, both Arduino and Raspberry Pi are used. Time-critical operations such as data acquisition, safety mechanisms, and value mapping are executed on the Arduino, while the Raspberry Pi serves as a high-level computing unit for the user of the development platform. Within the scope of this thesis, the following low-level functionalities were implemented on the Arduino board: communication with all sensors, control of the electronic speed controller and steering servomotor, safety protocols for fault conditions, and bidirectional communication with the Raspberry Pi, which executes high-level algorithms. Safety mechanisms include detection of signal loss and sensor or camera faults, upon which the vehicle performs a safe stop. In addition, a Python-based ROS 2 communication node was developed to facilitate data exchange between the Arduino and the ROS 2 environment.
To validate the functionality of the platform, several implementations were carried out. A PID speed controller established closed-loop control of the drivetrain based on encoder measurements. Wheel odometry was combined with visual localization using ArUco markers, and fused through a Kalman-filter-based algorithm. Finally, a ground-navigation controller was developed, enabling the vehicle to move toward arbitrary target points while accounting for its orientation. These tests demonstrate that the platform supports reliable development and verification of algorithms ranging from low-level control to high-level autonomous navigation.
Future work may include improvement of sensor-fusion algorithms, and expanding safety protocols with additional redundancy and diagnostic capabilities.
|