Something else I’ve been looking at since late on in 2017 is Formula Pi. I’ve been interested in machine learning/artificial intelligence for a while, so coming across a competition where you can program a Raspberry Pi based robot to race against competitors (and have the organisers handle literally everything else) was appealing right from the off. I managed to grab a slot for the winter season just before the closing date for entries. At the time of writing the event is just about to enter it’s second round of competition proper (there have been a few practice sessions).
After paying the entry fee (a modest £37), I was given access to the standard code for the robots (along with a branch containing the previous seasons winning effort). The robots this season are MonsterBorgs - pretty robust bits of kit that use a “Thunderborg” motor controller (both sold by Piborg who also organise the competition). The ‘borgs have a ‘standard’ Raspberry Pi camera on their front. No fancy LiDAR here! This is all computer vision based. All the cars are configured exactly the same way hardware wise and the organisers take care of installing the software on the robots locally and running the races, broadcasting them live on YouTube. They even have little overlays introducing each competitor!
The default code is all Python based and uses the modules you might expect when it comes to interpreting input from the camera (cv,numpy). The track as seen from the picture here is divided into different coloured lanes to aid the robot when it tries to identify where it is (and which direction it’s travelling in!). The base code does a great job of getting the robot around the track and avoiding obstacles (other robots), but in order to be competitive tweaks (or wholesale changes) are encouraged/necessary. The code package comes with a cool little track simulator which can feeds the running code generated images of the track (along with other cars). The competition website has a bunch of information on each bit of the code base and there is a friendly forum too.
The whole thing is great fun. As this is Team Limilo’s (my companies name - hey, free publicity) first season I’d be ecstatic if I even get to be competitive before the end of it (the team has unfortunately suffered a couple of starting line failures already). There are a bunch of things to think about. I’ve decided to experiment first on making the platform that controls the car a bit quicker (switching to Cython from Python, bumping the OpenCV version etc) so that I can free up some resources for the model I’m attempting to create and train for better collision avoidance. I haven’t looked at the Thunderborg controller itself yet but will at some point - I’ve seen a couple of other competitors manage to pull off some tighter turns than the default code can manage and assume this is where they’ve spent some of their time.
This is a cool little entrypoint to autonomous vehicle development and robotics. I thoroughly recommend it. Having awakened my inner F1 team owner, Team Limilo has already signed up for the Summer 2018 series - and the shareholders are expecting results.
(Of course Team Limilo had to purchase it’s own Monsterborg for development and performance testing too)