Towers of Hanoi
Almost all of it went into the preparation of a two-days high-school pupils' day (aka "Schülertag") in a Nuremberg Gymnasium. UBT was present there with several faculties each having a booth with lots of info material, some more or less enthusiastic promoters (assistants or professors) showing off some presentations, giving some talk, or - in our case - having a small demo in store for the pupils hanging around and checking into every other booth.
BK had proposed to use this occasion for an introduction of his operating-system-interpreter-robot-controller behemoth V-Parser to me, since I'm supposed to take over the position of "responsible assistant for the robotics hands-on course/lab" of our workgroup in the future (provided there'll be some students who want to attend it during the time I'm still here). Since it's implementing not only a cooperative multitasking environment, but also a subset (albeit with some deviations) of the standard V+ robotics language, let's call it Frickel+ for the sake of clarity here.
Since Monday, it has been more or less a full-time job for the two of us to implement a software interface into Frickel+ capable of controlling a 1/2-self-made robot we recently acquired. It soon turned out it's a nightmare of implementing, rewriting, and debugging on four fronts simultaneously - extending the Frickel+ command set, interfacing the existing robot API with the existing Frickel+ API, dealing with the robot microcontroller we couldn't look into, and cursing error-prone serial communications.
Once that idea of using this robot for that occasion was born, it became clear it will be a very close call to deliver prior to the strict deadline. While parts of that job could be delegated - like asking others to make sure a functioning notebook would be available - most of it still stuck on BK and me. And finally, it turned out the parts which got delegated were completed only partly, at best.
Of course, this demo was not the only deadline to consider, at least for me. There's a deluge of them right now - the annual Watschenfeld research seminar presentation, at least one paper submission deadline, one conference presentation, final lecture review of last semester, and so on. They're all due this month, or rather, in the first two-three weeks.
There wasn't a single day when we could leave office before 20:30 (McDonald's in BT is open until midnight, but not at 03:00 any more), and the night before the first demo day we stayed until well past midnight. In fact, we stayed so late that finally it reminded me of the old study times in 5th semester when MW used to pick me up for our robotics hands-on course programming at 03:00 at night. In fact, I even ran into exactly the same bugs and omissions we have run into during that Robotikpraktikum five years earlier. Both projects were centered around a table-top serial manipulator with five DOF used to handle blocks (wooden or LEGO), moving them from place to place and stacking them one on the other. Every single bug we encountered this time I remember to have seen before - the robot trying to pick up blocks too low, running into them; the robot sweeping over the work area and toppling over some other stacks along the way; the tedious fine-tuning of parameters like additional height during drop-off; and so on.
Finally, everything ranging from faulty communications, shaky manipulation, buggy implementation of the Wikipedia-based "Towers of Hanoi" algorithm, to "user interface" issues worked. At least didn't fall apart right away.
[...]
Stack # 0: 1 2 - -
Stack # 1: - - - -
Stack # 2: - - 4 8
On stack 0, we found Block # 2 on top.
Checking stack 1 to move Block # 2 to...
Checking stack 2 to move Block # 2 to...
... and that's ok. Move to here.
Stack # 0: - - - -
Stack # 1: 1 - - -
Stack # 2: - 2 4 8
On stack 0, we found no movable Block on top.
On stack 1, we found no movable Block on top.
Skipping stack 2 ( 15) with Block # 1 on top.
Stack # 0: - - - -
Stack # 1: - - - -
Stack # 2: 1 2 4 8
Waiting 30sec for robot to cool down...........Since the workgroup's current notebook has no serial interface (contrary to what almost everybody I asked has sworn), and since every other available notebook has no serial interface (partly contrary to what many people have sworn, too), and since I definitely do not believe the crappy open-source Linux we use is able to correctly deal with a USB-to-Serial adaptor, we had to prepare a desktop PC for transportation and use in Nuremberg.
When everything finally worked in the end, the next day, on Friday, with a colleague of mine serving time as presenter in Nuremberg, the whole thing didn't work:
ssh: no route to host.I was way too tired to feel anything but a strong urge to go to bed that Friday.
On Saturday, I was on duty in Nuremberg.
I drove there by car (very sensibly so, since Smørebrød was packed full on the way back with a barrage of notebooks, projectors, a huge projector screen, and stacks of information leaflets left over), arrived on time, even had a spare cross-over Ethernet cable in stock to prevent this being the last source of error imaginable - and it still didn't work.
Luckily, since I had a little time left and the teeming masses of prospective students didn't literally crowd in front of my booth yet, I used that occasion to walk off in search of a monitor and a keyboard (both of which we didn't pack with the PC, since it was supposed - and tested - to start up straight out-of-the box without any intervention until providing an SSH login shell over Ethernet to our notebook). Hooking up a keyboard snatched from the Computing Science room of that school and our projector, it turned out the
Floppy Disk Controller failed, for whatever reason. Finally, it worked, though.A relief, reward, and eye-catcher all rolled into one.

(There's a very short video of the robot available, too. Including squeaking hardware and all.)
Another thing I learned from this excessive programming run: You're never too old for an off-by-one bug.
Yet another finding: When you have filled a webshop cart with an expensive gadget, and a collague of yours comes in who is notorious for his lethargic typing (although very qualified, to be honest), and you haven't clicked on "Order" yet, don't put it off for later.
Otherwise, you may end up with your prospective photo camera rising 15% in price, and dropping in availability to near 0%.

Labels: Work



<< Home