A couple of days before the actual Robotex competition we had a preliminary “test competition” in Tartu. At that time most of the Tartu robots were not actually yet ready to play properly, but it was none the less a fun event. Team Nasty (who had their robot’s electronics completely burned down in the morning and somehow managed to completely recover in time) won. Telliskivi came a close second.
By now we have completed the series of posts describing the “hardware” of our robot. Here is what we have covered.
If there is anything regarding the hardware of the robot that should be explained in more detail – feel free to ask in the comments.
To finalize the story of our hardware development, let me show you the budget, i.e. the money we spent on building the robot in the table below. There are two numbers for each expense. The “nominal price” denotes the approximate minimum amount of money one should expect to spend on a particular item. The “we paid” price denotes the actual amount we had to pay. It is nearly always different from the nominal price for two reasons:
- In some things, such as the smartphone and CNC manufacturing we got help from the sponsors (Nokia, Tööstusplast, Tartu University Institute of Technology and the Robotics club of the University of Tartu). Thus, we spent less than the nominal price.
- For other things, we spent more either because we bought back-up items (you never know when something is going to burn so this is always a good idea) or because we did not know exactly which particular option we would need and had to try different options.
I might have forgotten or left out something, but the table below should give a reasonable impression of a minimal expense sheet for a robot like Telliskivi. The prices are in euros.
|Item||Nominal price||We paid||Remarks|
|Electronics (275.00 | 325.73)|
|Miscellaneous (55.00 | 37.28)|
|Sockets, pinheaders, buttons, etc||15||18.18|
|LiPo 3-cell battery||30||0||Provided by the Robotics club|
|Battery voltage converter circuit||10||19.10|
|Main PCB & motors (140.00 | 217.70)|
|Main (motor control) PCB||35||0||Provided by the Robotics club|
|Motors||60||122.20||We ordered two pairs, just in case|
|Wheels, wheel mounting hubs, motor mounting brackets||15||49.70||In the end we did not use the wheels nor the motor brackets. We did need two sets of wheel tires and mounting hubs.|
|Coilgun (50.00 | 39.60)|
|Coilgun PCB||35||0||Provided by the Robotics club|
|Capacitor with mount||5||9.60||We bought two, just in case|
|Coilgun wire||10||30.00||We tried several options|
|Bluetooth module (30.00 | 31.15)|
|Mechanics (130.00 | 114.34)|
|Nuts and bolts, spacers, rubber bands, springs, ball bearings, grease, …||30||92.52|
|Sheet plastic and CNC cutting||50||14.07||Tööstusplast sponsored most of the manufacturing. The “nominal price” is an optimistic guess.|
|Sheet aluminium and laser cutting||50||7.75||Metec sponsored most of the manufacturing. The “nominal price” is an optimistic guess. The “we paid” price includes the price for restoring a lathe and a drill broken by us.|
|Other (0.00 | 105.51)|
|Postage and taxes on stuff ordered from Pololu and Proto-pic||0||105.51|
|+ Nokia N9||600||0||Provided by Nokia|
Let me summarize this to those of you not interested in detailed numbers.
- If you are willing to make a similar robot, be prepared to spend at least 400 euros. Out of those, you will spend about 100 on raw materials and manufacturing, 100 on microcontrollers and PCBs, 100 on “large” components (motors, capacitors, battery) and 100 on all kinds of nuts, bolts, connectors and wires. If you plan to order stuff from abroad, prepare another 100 for shipping and taxes.
- You might easily end up spending at least twice the nominal amount on some articles either for experimenting or for safeguarding against failures on the last moment. This can double your numbers up to 1000 euros.
If you now include expenses on junkfood, transport and the sleepless nights spent by the four team members making and programming the robot, you’ll see that participation in Robotex is, in fact, a very expensive project (for a student, at least). But it’s worth it none the less!
So, the last three weeks were full of hectic preparations to what culminated in this weekend’s Robotex competition. Our team was incredibly lucky and did just great, winning the fourth place out of 16 participants, beaten only by the three teams from IT College. Considering that the IT College guys have been polishing their three more-or-less similarly designed robots for three consecutive years under the careful supervision of an experienced leader, we do not feel a single bit disappointed to grant them the fair victory. Telliskivi fought its best, losing to the overall winner with a close score of just 5:6.
The main factor which gave the ITC robots a defining advantage was their superiority in speed. This is not something unsurpassable – there were just technical reasons why Telliskivi was tuned to a “slower” setting for the competition, and we’ll discuss this in a later post, now that we finally have time to go on describing the ins and outs of our robot.
We are waiting for the Robotex organizers to put the competition videos out on their web – those are really fun to watch. So far, let me just share a couple of my own shots.
The competition-ready robot
Just a day before Robotex, on Friday, we received the final cuts for the transparent plastic cover of our robot.
On Saturday, we also found out that the horizontal bar on the goals will be attached firmly, so we added a couple of “frames” to preserve the phone in case the robot decides to drive into the goal (which we now could afford to allow in the algorithm).
Nights before Robotex
Robotex is known for its promise of sleepless nights, and that promise was fulfilled. In fact, the bulk of the most important code was actually written during the last two nights. Something tells me it is not just our team who had it this way. Here’s how the competitor’s area looked at 3AM on the night before competition. Things didn’t change much all the way through to 8AM – there were still people working hard on the last-moment fixes.
Telliskivi’s first round
The only round I managed to get on my camera was our first game. It was easy to win – the opponent was extravagant, but non-aggressive. The opponent’s name was “Ventikas”, it was made by kids from the Kullo hobby club, and the sly trick it relied upon was to be large, stand at its own goal and blow air in three directions diverting the balls away from the goal. Unfortunately, the fan was not strong enough, otherwise it might turn out to be an unexpectedly hard opponent to beat. Note the careful aiming Telliskivi is making to get the ball exactly into the goal – at this point the judge asked me to stop filming as he suspected we might be remote-controlling it. That’s what good AI is all about – it looks like a human is behind it.
Telliskivi on TV
On the day before Robotex we actually got to show off our robot briefly on the early morning show on the national TV. Footage here (starting at 1:11:40).
Tallinn’s Robotex competition is about a single robot trying to hit all balls into the goal. Its “older brother”, the RoboCup, is about many robots chasing one ball, just like in real soccer. Doesn’t it look amazing?
Yesterday we had a chance to go to Tallinn to “practice” in the same room and with the same lighting that will be during the actual competition. There was also a “test competition” on which our robot, who lacked most of the relevant algorithmic logic, did not score a single goal. None the less, it could practice driving along the field in random directions, fighting for the ball with an opponent, and shooting a ball in the wall of the playing field, having confused it with a goal.
In the meantime, I made a couple of shots of the other robots (by IT college and TTU temas). Please excuse me for not being capable of properly identifying them. If you happen to know the names, do tell me, I’ll update the post. I might also have missed some of the robots from yesterday’s event.
The second group of guys in Tartu are the “gurus”. They have already done at least one Robotex, and their current aim is not so much to make a baseline working device, but rather to create something fun and unusual. This takes them way more than a couple of months.
First is team Nasty, who are making an extra-cute tiny robot with a hyperbolic mirror (this way one camera can see the whole field). Their robot design was even published in a SolidWorks-themed magazine (lost the link to it, sorry).
If team Nasty is aiming for a smallest possible size, another team (not sure about the name), is making a hyperbolic-mirror based robot which is as large as it can get. Its weight is going to be close to the upper allowed limit of 8kg. Unfortunately, I did not manage to get a shot of this robot in its assembled shape, but here’s the view of its lower base plate during maintenance:
The third guru here is Matis, who is working on something which has huge wheels, two kilowatt-or-so powerful motors and can drive around at 5-10 m/s, if not more. This robot is in its early stages yet, so it does not have anything besides the motors and wheels yet. As usual, I could not even get a good shot of it
Finally, there is a robot that, I am sure, is going to be everyone’s favourite, once it steps up onto the Robotex field (which, unfortunately is not happening this year yet). This is the legged spider by team “polügoon Z”.
The best part of it is that the Spider robot team maintains an awesome blog, covering everything about their robot’s insides and outsides.
There are two types of Robotex robot builders in Tartu – the beginners and the “old sharks”. The first ones are those guys who come in September with no previous experience, and struggle with the simplest things to have the simplest possible solution working by the end of November, when the competition happens. We are one of such teams. Besides us, there are beginner-league teams named Spirit, Sidi, and EKRS. Although I’m not good at being with a camera at the right moment in the right place, I did manage to get some shots.
Night or day, there is always someone in the Tartu University’s physics department Digilabor, fiddling with their electromechanical babies. Here are some random shots from one evening when teams Nasty and Sidi were there.
Once we know the background, planning the robot becomes a matter of simple decisions. As we are strictly limited in our time (two months to build the robot from scratch) and lack previous robotics experience, simplicity becomes the first priority. Consequently, the dumbest differential drive system with a single webcam is what we shall be building. There are some details here, though.
Dribbler and kicker
In our quest for simplicity we would even consider avoiding the dribbler and the kicker, hoping to just ram the balls into the goals. Such an approach, however, seems risky, as it is not immediately clear how easy it is to control the robot with sufficient precision. Moreover, we do not know of any successful differential-drive ramming robots in Robotex. Hence we split our plan in two sequential iterations:
- Stage A: Making a differential-drive robot which is capable of ramming and trying to see whether it is possible to implement a reasonable control algorithm.
- Stage B: Adding the coilgun and dribbler to the robot and switching to a simpler “approach the ball, grab the ball, rotate towards the goal, kick” algorithm.
In order to make things interesting and have our robot stand out from the crowd, we decided to use a smartphone for both the brain and the camera. Nowadays smartphones pack all the necessary brainpower together with a camera in a small lightweight package. Konstantin had a Nokia N950 to spare, and it seemed to fit the bill – 1GHz processor, built-in camera, programmable using familiar C/C++ on a Linux platform.
Later on we used our choice of the phone as an excuse to ask Nokia to support us, and Nokia kindly provided us with their latest and greatest Nokia N9 model to use with the robot, yay!
The choice of a smartphone for the brain, however, did not come without a complication. Namely, the only reasonable way for the phone to communicate with the chassis is Bluetooth. Why not USB, you might ask? Well, USB turns out to be an asymmetric protocol, where each device is pre-set to play a role of a “master” or a “slave”. The phone is always a “slave” and we would have a hard time making the chassis hardware play the role of a “master”. An alternative idea would be to use the phone’s headphone/microphone jack for communication, however this would require us to implement nontrivial modulation/demodulation protocols and we do not have time for that. Hence, Bluetooth it is.
Omitting some other details of the overall planning procedure, let us just show the finalized plan for our soon-to-be-made robot, which got named “Telliskivi” (“The Brick”), in honour of the simplicity of our “Stage A”:
Activate both and reload to view the mindmap