During my PhD I worked on two “real world” projects, namely an indoor and an outdoor robotic museum tour guide. This is a short account of that experience, rather than a description of what I did (which the interested reader can find here).
The first project looked like CMU Minerva. A robot guides the visitors around several exhibits, interacting with them a proposing a few tours. The main problem I had was dealing with people. It was a hard task to convince the museum employees that “no, this robot is not going to take your jobs, please do not destroy it”. The second problem was the invisible obstacles. The museum was full with glass panels, glass screens and several other objects that don’t reflect light very willingly. And the sonar is out of question as it is too noisy. Ah, yes, I forgot to mention two staircases! The third problem was the working condition: a laptop on my lap, on a plastic chair. No internet. And the air conditioning that went out for holidays during the Sicilian summer.
But the big moment came, as student from schools and the State TV came to record a session with the robot. And everything worked perfectly! The satisfaction of seeing the robot cheerfully negotiating (in)visible obstacles, kids and invaluable museum items is indescribable. And all with a single processor being kept at 99% usage, where a bit less would have meant localisation failing and the robot tipping off the stairs. Countless hours of sweating and bug-tracking spent with a wonderful team finally had been repaid.
Below is the video that recorded the event. Note the last frames showing me setting on the chair and being very worried.
Take Cicerobot, do a pit-stop to change the wheels and a few sensors, a new make-up and you’ve got Robotanic. With a difference: its museum was an outdoor Botanical Garden. And that’s a huge difference!
The environment was an area 100 meters long by 30 meters wide. The alleys were covered with sand and foliage making the odometry a pure random number generator. The GPS kept sending a position that was jumping from the navigable alleys to the far less friendly trees and bushes nearby. And the working condition made the above museum a heaven: sitting on stone benches, constantly under the attack of mosquitoes and paying attention to the sky, fearing that it would become too hot or rainy!
Again the big moment came, this time no TV but several people participating to a conference flocked to see the robot. At the very last-minute my supervisor noticed an unplugged cable hanging from the camera, and said “why don’t you plug it in?” I did, and I regret that. The firewire cable triggered an interrupt conflict that took the GPS out of work. It took me more than half an hour to find the problem, and I had lost the momentum. The rest of the demo went well, but the bad start black-clouded the whole event.
Below is the only video I could find of the robot in action. The video is a bit wobbling but I am proud of it.
First of all: Test^30 (that is test to the power of 30). Whenever you are doing something in the real world, test it as much as possible. Something will go wrong, but at least you are minimising the risk. Second: code freeze. If something is working, and you are sure it is working, put it in the fridge, and leave it there until the very last moment (or until it expires!). Third and most important: have fun. It is very frustrating when you fall from the ideal world of pure research to the real world of people expecting something from you. But the satisfaction of seeing something really working is far more stimulating than having a paper published!
Powered by Blogilo