Average Bot Devblog 9 - Results & Learnings

AverageBot Devblog 9

Facing away from his wooden spoon - AverageBot had an 'Average' performance!

Pi Wars has now been and gone, and this makes me sad. Very sad. AverageBot is almost redundant!

After spending most evenings over the last few months building, learning, tweaking and testing, I’m now left with a feeling comparable to post-Christmas blues. There’s a void in my existence!

However what this does allow me to do is write about the day and share my somewhat mixed results, and talk about all the things I would change if I could do it again. Some things just didn’t work, others worked really well, and there were a few surprises along the way as well.

Let’s talk you through my day at Pi Wars 2015.

Pi Wars – The Day

It’s worth talking about the overall event before diving into my specific performance.

I was really taken back by how well planned and organised the day was, which is mostly due to the endless hours of effort from Michael Horne and Tim Richardson (The ‘CamJam’ guys…).

I had attended last year’s event as a spectator/judge and was very impressed with how the day was run, but this year they took it to a whole new level! It’s almost like they took Pi Wars 2014 and reviewed every aspect from the small things like parking and signage to the larger areas such as challenge build materials and ‘pit’ rooms.

With hundreds of spectators, rows of shops/show n’ tells and of course 30+ robots competing, it was a totally enjoyable (and tiring!) day.

Pi Wars 2015 robots

As per tradition, all robots bundled on to the obstacle course at the end of the day

AverageBot – Challenge Performance

As you probably already know, the day was based around each robot attempting a number of challenges. I attempted each one with AverageBot and had a mixed bag of results. Unfortunately I don’t have many pictures as I was busy competing!

Official positions will be released over the next week or so, but I already know I didn’t win any challenges.

Proximity Alert

This challenge gave me three attempts to approach a wall and stop before hitting it, with the aim of leaving the smallest gap possible.

Unfortunately my first attempt touched the wall, so 30cm was added to my total as a penalty. That guaranteed I wouldn’t make it anywhere near the leaderboard, but I continued regardless.

My second and third attempts were reasonably good, I think within 10mm or so, but that first run made them slightly redundant.

Line Follower

The line follower challenge is exactly what it says – a challenge to follow a line.

I spotted the course as I first entered the building and it didn’t fill me with much confidence, packed with sharp turns, right-angles and little S-bends. Considering my testing at home had given poor results, I expected insta-failure on this one!

To my surprise, wee AverageBot did himself proud. He managed to handle the reasonably sharp bends 95% of the time, but didn’t make the very sharp turns. I couldn’t believe my eyes – after a couple of weeks of failed testing, AverageBot had an ‘average’ run on the day.

Pi Wars 2015 line follower tack

The Pi Wars 2015 line following track, provided by Cannybots.com [image provided by Jarle Teigland]

Three-Point Turn

Like the first two challenges, this was another autonomous track requiring movement past certain markers roughly in the style of a three point turn.

This was my worst challenge! My first attempt started with my robot turning left instantly and driving in a circle, which baffled me as I had tested this code the very same morning. Convinced that I had selected the wrong program, I started my second attempt only to find the same behaviour. I was baffled…

I went back to the pit and investigate the issue, which I assumed was a code problem as I had adjusted settings earlier that morning. When I returned to the pit, my pit-buddy Mychelle Pride (wife of David Pride who ran sHazBot) suggested checking wiring – and there it was – a wire had wiggled itself loose from my motor controller, leaving one set of tracks without power!

Pi Wars 2015 Pit

The AverageBot/sHazBot pit where the rogue wire was identified!

With the problem seemingly solved, I returned to the challenge to attempt my third and final run. Unfortunately even with all motors connected it just didn’t work out – what worked on my grippy kitchen floor didn’t quite translate on the shiny hardboard used throughout the competition.

Let’s not talk about three-point turns again…

Straight Line Speed Test

Another ‘as it says on the tin’ challenge – this one is all about speed.

AverageBot wasn’t the fastest robot in the competition, but it was by no means the slowest. Once again I was given three attempts, but this time the best run was recorded – not a combination of the three.

I got my time down to around the 5 second mark in my second and third attempt, after a bit of a zig-zag in the first run.

Jarle Teigland captured my iffy first run, which he has kindly allowed me to upload and share here:

Pi Noon

This challenge was a mystery to all competitors, being told only to ‘have the ability to hold a thin wire at one end of the robot’.

After months of guessing, we finally found out what this robot vs robot challenge was – a pin vs balloon battle!

Each robot was given an L-shaped piece of wire with a balloon attached to the bend and a pin at one end. The objective was clear, pop or be popped! The first robot to burst the other’s balloon was through to the next round.

I managed to win my first battle but was knocked out in the second round by ‘Revenge of PyroBot‘ – the same robot that won the A3-size category.

AverageBot in the PiNoon challenge

AverageBot “in the red corner” ready for battle

Obstacle Course

A course of obstacles – you got it! The dark demons of the electronics world were involved with the build of this year’s Pi Wars obstacle course – PiBorg!

With nothing buy pure carnage in mind, the DoodleBorg creators built a spinning platform in the middle of the course to test the drivers as much as the robots themselves. A very popular challenge consistently surrounded by spectators.

I managed to get through most of the challenge reasonably quickly, flying through the bumps and not spilling any marbles…but then I came to the spinning section…

AverageBot got squished! I timed my entry wrong and was soon crushed between the platform and the side wall, dealing some bendy-damage to my tracks. There’s something enjoyable about destruction though, so I couldn’t do anything but smile!

I managed a reasonable time for the course despite the near-death experience, so I was mostly happy with that.

Skittles

My final challenge, and another poor performance from AverageBot.

The skittles challenge was essentially 9-pin bowling for robots. Each robot was given three rounds of two shots, with points awarded for downed skittles (with additional points for strikes etc).

I knocked down 1 pin. Yes 1 pin! My ‘Big Pusha’ attachment simply lacked power and the ability to hold the ball in place, with half of my failed attempts due to having a ‘runaway ball’.

Many a lesson learnt during this challenge – I’ll do much better next time (said every loser ever).

Here’s a video of my practice round captured by Grahame Collins (who ran Gnasher2):

Lessons Learnt

Something we do a lot of in my company is document lessons learnt from every project we run, and I thought it would be good to do that here too. Here’s a list of the key things I learnt from the competition:

Things that didn’t work

  1. Small rubber tracks look cool but come with a lot of negatives, including slipping off and inaccurate straight-running. Next time I’ll go for wheels or a hybrid.
  2. Fitting batteries within your chassis is fine as long as you can get to them easily. It took me around 10 minutes per change as I had to dismantle my body.
  3. Aim for a specific challenge. Being a ‘Jack of all trades’ is fun but it won’t win you any titles. Shape your robot to a specific challenge.
  4. Don’t put switches and delicate electronics on top without cover. I got away with it, but others had problems when their robot rolled over. Prepare for the worst!
  5. Function first. Making the ‘Big Pusha’ was fun, it was a different approach and it looked cool – but in terms of functionality it failed.
  6. Don’t wing it. I skipped the use of some sensors on certain challenges due to my lack of experience. I tried to wing it with a timed approach but it just didn’t cut it. If you know your stuff and can program sensors for challenges – do it!
  7. Thin motor wires. The terminal blocks on my motor controller could have done with thicker wires in the terminal blocks, to avoid the issues I had with the three-point turn. Next time I wire up some motors, I’m upping the gauge!

Things that did work

  1. PyGame + a 2.4Ghz media centre remote. This cocktail worked like a beauty. No signal clashes, no lag, no WiFi, no Bluetooth – just simple and easy robot control.
  2. Programmed function selection. Whilst others were walking round with laptops and mobile WiFi access points to start Python programs, my simple number menu plus switches on the robot made life very simple on the day.
  3. NiMH batteries. Safe (ish), cheap (ish) and reasonably small (ish) – my 7.2V batteries from RS Components were perfect for the job. LiPo is just a little scary for me still – NiMH requires less thinking, especially with kids around.
  4. A ‘do it all’ motor controller. I used the 4Tronix PiRoCon, which comes with a switching regulator, pins ready for certain sensors and all sorts of other magic. It makes life a lot easier!
  5. Your own WiFi Access point. Whilst I didn’t use this during challenges, I found it handy to have my own WiFi AP in ‘the pit’ to talk to my robot. I used a RavPower FileHub on channel 3 and had no issues with clashing networks – maybe I was just lucky?
  6. Laser cut panels + spacers. AverageBot was solid and the chassis held up well. It’s a simple design, and I believe anyone can learn to draw shapes like that using Inkscape.

Summary

Whilst AverageBot didn’t come home with any trophies, it certainly exceeded the initial aim I shared in my first devblog post – “Don’t come last in at least one challenge”. I still can’t believe how far my robot developed from the initial wood + tracks – I’m really happy with the result.

It would have been nice if the ‘silly mistakes’ hadn’t happened (motor wires coming loose etc) but you live and learn.

Mentioning learning is very relevant here actually – building a robot for a specific competition has forced me to research and learn so many things over such a short period. Battery chemistry, amperage, stall currents, sensors, Python, PyGame, Inkscape CAD and much much more.

I’ll be writing one final post to share my complete code and talk through each block, which I’ll work on over the next week or so. I may add the final bill of my robot cost, or I may avoid that harsh reality for just one more week…ouch!

After that I’m going to return to playing ice hockey for a while, to remove some of the chins I gained building this thing (that I saw on so many of the Pi Wars videos)!

After all, I have a lot of spare time now…

Was this article helpful?

0 0