Blog of things

Tag archives: piwars-2019

PiWars 2019 - Fail Whale Part 2 of 2, Onwards...


It has been two months since I wrote my last post. It has taken a bit to fully get over the disappointment. But last weekend marked the official end of Robot J2...

read more

PiWars 2019 - Failure and heartbreak - maybe Part 1 of many


So we attended PiWars 2019 yesterday, and failed miserably with our robot - J2. It broke down on the second event of the day, struggled with the third event and went up in smokes on the fourth. We came 15th (last) in our category. It was a sobering lesson in robot building and failures. I have blogged a lot of what I did with PiWars bots in the past, but not always focused on the fails, so I think the time has come for me to detail the fails, if nothing for myself to refer to.

read more

PiWars 2019 Diary: Are we there yet? Not quite!


So here we are... 2 weeks to go! Honestly I didn't want to write a post yet but today is the last day for submission into the competition, so I thought I'll share some more of the progress. Actually a lot of stuff has happened on the mechanical end of things and not enough has happened on the software side. So end result is a fairly good looking bot that still needs a lot of integration and testing. However, lots of lessons were learnt, so I'll try to cover some those today.

read more

PiWars 2019 Diary - A Major design change and other challenges


First up, many apologies for not writing a new post in the last two and a half months. No, I didn't give up on PiWars 2019, it has been just... things... But I am back, hoping to cover all the challenges our team has faced and overcome, in as much details as possible.

read more

PiWars 2019 Diary - Motors, Brackets and GPIO


Many apologies for the delayed update, I have been failing at doing detailed blog posts rather badly,

read more

PiWars 2019 Diary - Mid October update


It's been a month since our last post and our PiWars build has been chugging along slowly but surely. Unfortunately I am not getting solid chunks of time, instead it is little bits at a time, but I've managed to do it regularly. A few things happened since our last post a month ago:

read more

PiWars 2019 - So it begins


I sent my PiWars 2019 application in about ten days ago (weekend before last). I wasn't ready to the extent I wanted, but then again, you never are, and I didn't want to wait for the last two weekends. Hopefully the application has enough meat to see it through the first round of eliminations. I can't reveal much about the application until the results are announced so, suffice to say, brand new, built from scratch, robot, by the same team as last year. It does have a new name though :).

read more

OpenCV Baby steps 6: From VM to metal, OpenCV 3.4.2 on RaspberryPi


Last weekend a fellow PiWars competitor (Vishal) pinged me and said my instructions for installing OpenCV on RaspberryPi were not working. OpenCV was getting installed but Python wouldn't load it, with missing dependency errors. My entire OpenCV series is for the sole purposes of a gentle introduction to OpenCV including how to set it up. If it wasn't working, we had a major problem. It was time to go digging...

read more

OpenCV baby steps 5b: Tweaking HSV masks using Morphological transformations


Well I did think I'll get to blogging so quickly again, but I am currently 'marooned' at one of the most scenic places on earth - Columbia Ice Fields, Jasper, Canada. Our bus has been impounded by the DoT and we are waiting for a replacement. I've done the nearby hikes and now sitting around in a sun lounger. This was too good a place to not write some code or write about code 🤓. So today I'll just add a couple of lines of code to our previous application, that will improve the HSV mask and make the circles more contiguous.

read more

OpenCV baby steps 5: Tracking multiple colours


Sorry, its been a while since I took my last baby step. I have been in the midst of a few things and funnily enough, as I start typing this, I am actually holidaying in Canada. The drive from Vancouver to Kamloops is very very scenic :D. Eitherways, learning never stops, holidaying or not. I have been struggling to go ahead with my plans to track multiple coloured objects in the same frame. I mean in the last post we saw how we can identify four coloured balls using HSV masking. Also in step 3 we saw how to detect circles using OpenCV's HoughCircles function. What I wanted was a combination of the two - Detect position of a ball of my choice e.g. Red ball is placed here (x,y,radius). Turns out it was my lack of Python knowledge than OpenCV that got in the way. OpenCV continues to amaze me for its versatility and ease of use.

read more

OpenCV baby steps 4: Building a HSV calibrator


So far we have taken small bits of OpenCV goodness and explored them independently. Today we are going to see how we can combine a few things together and build ourselves a small app that helps us convert a coloured image into its Hue, Saturation and Value equivalent, and then adjust the HSV range to isolate one or more colours in the image.

read more

Open CV Baby steps 3: Circle detection


So far we have seen how to install OpenCV and capture images from a video stream. Today we'll see how we can detect circles (or balls) in an image. Last year, the biggest challenge of PiWars was to be able to detect coloured balls kept on four corners of an arena and drive a robot towards it. Now I don't know if they will have the same challenge this year, however we can use this as a starting point to use a few more OpenCV tricks. Today we'll learn about how to use Hough transforms in OpenCV and how we can use it to detect balls in an image.

read more

Open CV Baby steps 2: Capturing video frames


In the introductory post we saw how to setup OpenCV on a Raspbian (Desktop) and run a small sample application to convert an image into greyscale. Today we'll see how easy it is to capture frames from a camera and write some text on to each frame and save them.

read more

Open CV Baby Steps 01: Installation


I always wanted to learn OpenCV, because it was a massive step up from my Computer Graphics theory class back in the University days. Also I dream that all my the pictures I have ever taken will one day be collated, indexed and searchable with context like place, scene, people in the image so on and so forth. So learning OpenCV is the natural first step towards that (no, I will not use a my images as training material for some corporate AI engine, I wear a tin-foil-hat, sue me!). Of course everything had to run off (one or more) RaspberryPi!

read more