For the last few days, we have been working on two problems: the ball possession problem and the ML-based ball detection algorithm.
At first, we attempted to detect the possession of the ball in the basket using IR sensors. However, both the sensors we had gave a very small range of at most 5 cm. For a decent estimate of whether the ball is in possession, we need at least 5 such IR sensors, each weighing around 0.6 g (~0.3 for the sensor and ~0.3 for two resistors), giving a total about about 3 or 4 g.
However, we realized that a LIDAR sensor, while being just about 1.2 g heavy, gives a range of about 4 meters.
Hence, we have decided to use that instead. The following video is a demonstration of this detection:
The LIDAR-based detection works well. However, in the midst of our recording, the motor driver burned out due to which we are unable to provide a demo with the motors driving the blimp to the ball.
Ball Detection from Image
After multiple tries across several weeks, we have arrived at the conclusion that the OpenMV Cam is unable to utilize the custom object detection model that we created using Tensorflow Lite due to some unknown internal issues.
What ot improve next:
- Adopt a much lighter algorithm such as a Gaussian mixture model (GMM) on the OpenMV cam
- Run the PyTorch-based code with esp-32 cam that was developed over the summer since it works very well up to several meters.
Although this is not exactly a new work, demonstrated below is the first test we have performed with the PyTorch algorithm using multiple real balloons in the presence of other blimps, green objects, external light (causing reflections), clutter, etc.: