Latest News:

Custom built robots to solve real world problems
Menu

MBZIRC 2020

The Mohamed Bin Zayed International Robotics Challenge (MBZIRC) is a biennial international robotics competition that “aims to inspire future robotics through innovative solutions and technological excellence.”  There were three challenges in the 2020 competition, two of which complemented the work being done by the self repairing cities team. More details about the challenges for the 2020 competition can be found here: https://www.mbzirc.com/challenge/2020.

Preparation

I started with the University in October 2019 so I missed out on much of the preparation work done by the team. These two videos show what the team did before I started.

Update 1.
Update 2.

There was a lot of software to be written for challenges 2 and 3 so the tasks were split up: Bilal wrote the system design documents, Simon developed the brick recognition code, Vivek working on the drone flight planning software and I wrote the drone control and accessories software.  The bulk of the software was written using the Robotics Operating System (ROS) as a way of splitting up the problem into manageable chunks (ROS nodes) and as a method communication between the drone and the base station.  This approach also allowed us to reuse some nodes that had been developed by other people, e.g. the DJI OSDK node to interface with the DJI M600 drone autopilot.

As I was new to robotics, I found this quite challenging as there was a lot of new things to learn in a very short time but after a couple of weeks, I started to get the hang of it.  I created a reliable ROS set up for the numerous Raspberry Pis that we were using to control the drones and the virtual machines that we were using to develop on.  I then started writing the easier ROS nodes: the first to control the crane for challenge 2 and the next to control the water pump for challenge 3.  Then, as I understood ROS better, I developed the more complicated ROS nodes that communicated with the base station and controlled the flight of the drones.

Alongside the software work, there was lots of hardware development going on.

Nick Fry and Moustafa Motawei were working on challenge 1 developing a long arm to grab a ball off a moving drone and another drone to locate and pop balloons.

The arm for challenge 1.
The arm for challenge 1.

Peter Mooney was working on the water pump for challenge 3.  This photo shows the water pump fitted on one of our M600s. The water bag can be seen underneath the drone with the pump, Arduino control box and the gimbal mounted nozzle. Additionally, two cameras were fitted later, a thermal camera that was used to locate the fire and a RealSense camera that was used to position the drone at a close but safe distance from the fire.

An early version of the water pump mounted on an M600.
An early version of the water pump mounted on an M600.

Jake Smith developed the crane for challenge 2, an amazing looking machine.  This crane was designed with three winches to prevent the load spinning in the down wash of the drone rotors. This arrangement also allowed us to level the brick for more accurate placement. The three armed gripper was fitted with permanent electromagnets (PEMs) controlled by a Bluetooth controller (no wires) that we used to grip and release the brick.

Testing the crane.
Testing the crane.

Our team of 4th year students: Joe, Wesley, Emlyn and Ralph were developing a ground robot based around a Husky UGV. They were develpoing the “roller coaster” mark 2, an add-on unit to receive bricks from a drone as well as all the software to control pick up a brick and place it on the wall “foundation”. 

The Husky ready to go.
The Husky ready to go.

Final testing

Final testing started in earnest in the middle of January and things got very hectic. The pump could accurately fire water over 3 metres and the control software for it worked was finished. 

The crane was waiting for parts until a few days before we left (supply problems caused by some virus or other in China) so we could not integrate the software until we got to the competition.

The flight control software worked well in simulation using the Pixhawk SITL code, but there was nothing equivalent for the DJI drones, so the software to fly the drones was completely untested.  Fortunately, Mohammed had just started and, just in the nick of time, we had some code that should fly but was untested. 

While all this was going on, we were arranging to ship the bulky equipment over to Abu Dhabi in huge packing crates (see below).

The packing crates arrived.
The packing crates arrived.
This crate was huge!
This crate was huge!

The competition

The day before we travelled, the Real Robotics lab was a hive of activty, people coming and going all day, filling up suitcases with tools, equipment and batteries that we needed to hand carry. The flight was due to leave Manchester airport around 10am so we had to leave Leeds at about 4am so we could check in on time. Not much time for sleep that night!

Getting on the bus to Manchester Airport.
Getting on the bus to Manchester Airport.
Excited to be finally on our way!
Excited to be finally on our way!

After a comfortable flight, we arrived at the hotel at around 9pm local time, had a bite to eat and then off to bed. The next morning, we set off at 7am for the exhibition centre to find our stand and unload the crate.

Our hotel.
Our hotel.
The front of the exhibition centre.
The front of the exhibition centre.

There was no time to waste as we had three days of rehearsals for the challenges followed by two days of challenges and a final day for the grand challenge. We worked for about 14 hours each day, starting at 7am, preparing for and doing the rehearsals/challenges until they finished at around 3pm, taking a pool and food break and then back to work until 11 or 12.  

Our stand at MBZIRC.
Our stand at MBZIRC.
Another successful rehearsal.
Another successful rehearsal.
The front of the stand during the day.
The front of the stand during the day.
The back room at the stand.
The back room at the stand.

On the last day of the rehearsals, we were pleasantly surprised to be in the middle of the table. Our attempts at doing the challenges autonomously had failed due to many little annoying things going wrong so each time we had to fallback to doing the challenges manually. Very frustrating after all the work that the team had put in.

Here are some photos of the challenge arena with the team in action.

The arm preparing to strike in challenge 1.
The arm preparing to strike in challenge 1.
The Husky carrying a brick.
The Husky carrying a brick.
Entering the challenge 3 arena.
Entering the challenge 3 arena.
Getting the crane ready for flight.
Getting the crane ready for flight.
We placed some bricks on the wall.
We placed some bricks on the wall.
The kitchen area in the fire challenge building.
The kitchen area in the fire challenge building.

At the end of the two days of the challenges, we ended up in the middle of the table and the team was asked if we wanted to compete in the Grand Challenge. We went for a meal at a restaurant in the hotel and decided that we would go for it. Over dinner, someone dreamt up a “surefire” plan to improve our scores with the UGV in challenge 3.  It involved installing multiple pumps and a huge water tank so was a big challenge to implement overnight. It also gave us one last chance to try some form of autonomous flight on challenge 3, so after the meal, we went back over to the exhibition centre, made the last few tweaks to the software and pumped up the Husky!

Last minute tuning of the fire detection algorithm.
Last minute tuning of the fire detection algorithm.
Grand challenge arena.
Grand challenge arena.
The pumped up Husky.
The pumped up Husky.
Grand challenge arena showing the fire challenge building.
Grand challenge arena showing the fire challenge building.

The next day, our grand challenge slot was at 9am, so we tried one last time. The drone flew on its own, found the building, searched for and found the fire and then tried to extinguish the fire. Unfortunately, the drones aim was off by about 30 cm so we scored nothing but it proved our autonomous software worked.  The team switched back to manual mode and then finished the challenge. The final results were: challenge 1, 19th; challenge 2, 10th; challenge 3, 11th; and the grand challenge, 13th. An amazing result for our first attempt!

After the challenge, some of us went to find a beach, others went to Ferrari world.  All too soon, it was back over to the exhibition centre to pack up the crate, load up our suitcases with batteries and everything else and then off to bed for another early start as the bus to the airport was booked for 6:15am. The journey back was spent sleeping on the plane, and talking about what went well and what we could do better on the train back to Leeds.

This was a really exciting project to take part in, a steep learning curve for me with the reward of visiting a new country, taking part in an challenging competition and getting to know and work with an amazing group of people. Thanks to everyone who helped make it happen and to the team for making the whole experience one I’ll remember happily for a very long time.

Goodbye Abu Dhabi.
Goodbye Abu Dhabi.