UWE Bristol has been hosting 40 students from the prestigious Ecole des Mines d’Ales for the last four weeks for a Summer School in coding.
About half of the cohort elected to do two-week mechatronics course in autonomous UAV coding, supplied by Aisymmetrix and led by Miles Isted s’Jacob and myself, ably supported by Masters student Hamish Chalmers.
Most students had limited coding exposure and no experience of drones before the course, so this was going to be quite a challenge – great!
Week 1 (4 days)
The priorities for the first week were:
- coding in Python
- flight concepts
- build a team drone
- fly some missions
The drones were based on standard 450 quad frames, with a Pixhawk flight controller running Arducopter.
Week 2 (4 days)
We wanted to extend the autonomy of the drones so that behaviour could be directly controlled by the team’s own code. This was achieved through the addition of a Raspberry Pi companion computer and a webcam for computer vision.
A track was constructed of red webbing and teams had some ‘starter for ten’ base code to work from. The challenge was then to improve the performance of the drone in following the line around the track and also to introduce a new trick or feature.
Code and Simulate
The code on the Raspberry Pi was first tested on a simulator in the lab to check behaviour (or lack of it!).
The weather was great – sunny although with sufficient gusts of wind to provide extra challenge (maybe a bit too much!). Some teams wasted no time in getting in some early autonomous flights to to see how the base code could be modified.
And now for some serious modifying!
The teams also got straight to work in adding new functionality, including:
- making the drone fly backwards
- improving lap times with schemes for variable forward velocity
- improving data collection with remote computer connections
- remote control through use of smartphone
- recording track positions on initial lap to fly faster on later laps.
Of course there were occasional mishaps with some re-building necessary!
And plenty of team discussions…
Ah yes… and did someone mention a BBQ?
Final Day Assessment
Teams were assessed on initiative and effort during the week and also asked to share their experience through a presentation to colleagues. We were also joined by Tim Rook of IBM and David Palmer-Jeffery of HPJ Consulting for the final demonstration runs.
Several drones had multiple failures by the last day (more of which later), so teams were sharing those that were still fully operational. But by the end of the week, all the teams had managed to complete successful laps and had explored different re-writes of the code to explore performance gains.
Team ‘Pick One’ modified both the computer vision and control algorithms to improve performance, showing excellent insights into the algorithms.
Team ‘Troublemakers’ introduced several new features, including variable forward velocity and more ‘intelligent’ behaviour to re-acquire the line when necessary. Effective novel thinking!
Team ‘Hey OH!’ named themselves after their mission to control the drone remotely by voice. They got a long way towards this objective, connecting smartphone to introduce variables into the controlling code, before simply running out of time. Very impressive! The team also modified the control code and in particular worked successfully with the ever-tricky area of PID control variables.
Team ‘Game of Drones’ successfully modified the code to make the drone fly backwards and made a number of other improvements, flying a number of laps – forwards. Flying backwards turned out to be more of a challenge than perhaps anyone thought, but the team tackled several issues and were successful in this over a distance of a few metres – great effort!
I don’t think anyone would disagree that Team ‘Drone Project’ were technically the most ambitious. However, perhaps one should expect that as three of the team work for Airbus! Team Drone Project connected remotely to their drone to collect alot of flight data and images. They also implemented an algorithm in which the drone recorded the track as a series of GPS positions on the first lap and then used those to fly faster subsequent laps. And more besides…. a very impressive effort!
Conclusions and Lessons Learned
The overwhelming takeaway from the course was the impressive progress made by the students from the Ecole des Mines d’Ales. In just 8 days of tutorials and support, the students built their quadcopters and learned basic avionics, mastered safe flying skills, conducted ‘missions’ and finally coded their own autonomous behaviours in a coding language that few if any had used previously. Awesome!
The group displayed all the qualities required to make the most of the experience; a ‘can-do’ attitude, curiosity and imagination, tenacity, teamwork and of course a great sense of fun! All essential engineering characteristics!
As far as safety was concerned, all teams piloted their drones carefully and used the various safety devices appropriately.
There were of course issues that cropped up unexpectedly. The drones suffered component failures from ‘heavy use’ and low-level ‘drops’. In particular, compasses and camera gimbals took a heavy toll. Of course some of the issues were also opportunities for further learning, such as the limitations that cameras experienced in identifying the red-webbing in very bright sunlight (I know, who would have thought that could happen in the UK!).
In summary, we could not have asked for more. This proved to be a great learning experience for both the students and for ourselves in running this first UAV Coding Summer School event. The masters of ‘playful learning’ are perhaps LEGO – for me, this seemed to work in exactly the same way for ‘grown-ups’ and as an educationalist makes me just want to do more project-based learning.
A huge thank-you to UWE Bristol and to the students themselves!