This is the first drone we are designing and building with the aim of participating in a competition. The drone is conceived to map an unknown area representing a urban environment with the purpose of searching for landing pads in a predefined sequence, fly towards them by avoiding the obstacles and finally land over. During the whole mission, the drone must perform autonomously, without being controlled by a human pilot. All required computing must be executed on board, thus requiring a low power, high performance computer.
To achieve the mission objectives, the drone uses SLAM (Simultaneous Localization and Mapping) for mapping the environment and determining the state of the drone (position, attitude, speed), then computer vision and machine learning help identifing the landing pads, finally obstacle avoidance and motion planning algorithms define the trajectory to follow for reaching the target. The drone only uses cameras and proximity sensors to orient itself and map the environment, since neither LIDAR nor GPS are allowed.
JARIM (Just A Rather Intelligent Machine) is a modified RC car capable of autonomously driving inside a circuit. The car uses a mono camera to acquire images of the circuit and exploits a machine learning algorithm to perform decision making about the actions (throttle and steering) to take for driving inside the circuit. The decision making algorithm was developed by using reinforcement learning methods to train a virtual car driving in a simulated environment.
Moreover, an image segmentation algorithm was developed and trained by using a dataset of images of the circuit to learn how to label the lines delimiting it. About hardware, the actuators of the car (brushed DC motor and steering servo) were re-routed to be controlled by the on-board computer through a driver. A new electric and power system was designed and integrated to feed all components and both a wired E-stop and a wireless E-stop were implemented for safety purposes. The software framework adopted Robot Operating System for managing camera data acquisition and processing, decision making and actuators control.