Robotics. I could stop here… This is an account of last week’s highlights (Monday 19th) I know I’m over a week late, but I’ve been sooo busy – I could write 3 more blog entries this size about the last week.
Monday night was the Game Design final exam. After that, I went to the robotics lab with Bo to finish the project due Tuesday night. At 3:00 Bo went home to work on an essay, but I stayed and pushed on – it’s how real men code. At 4:00 am with a bottle of coke in my hand and all the time in the world, I figured that I should be done by noon, or I must be retarded.
Now, the thing with programming for the robot is that it’s not nearly as simple as for a computer program. Computers behave exactly as expected, and consistently. Not so with a robot. Data readings change, the robot doesn’t move properly and bumps the wall, etc. Sometimes, the program doesn’t even perform as it should, even though the logic is flawless. This is due to hardware not keeping up with the program – for example, missing an instruction and then waiting for the command that it has already missed, so it waits, and waits and waits.
Around 9:00 people started flocking to the lab to finish their robots, so I had company – crucial for keeping me awake for I had now not slept for 24 hours. With my second coke bottle in hand, my morale was starting to diminish. Things were not going as planned. Sure, the program was written, but the robot would NOT communicate with the PC, relaying the measurements that it took. A mental health break was needed, so I took a walk to the parking lot to buy a parking pass, $10 for 4 hours – the maximum. I got taken to the cleaners, I know.
Around 10:30 a peer showed me a cheap hack to making the Bluetooth communication work: all I had to do was comment out a line, one that shouldn’t have been there to start with. Copy and paste errors, they are to be expected after a sleepless night.
Aroun 11:00 my appetite was building and the robot was ready for a test, so I left it mapping the room, to collect a wholesome breakfast of pizza, and another bottle of coke. On return, I observed a beautiful map on my screen. Part A complete!!!
The afternoon didn’t progress quite as well. Bo and I designed an elegant navigation system where the robot asks the computer for its location via Bluetooth, and navigates to known choice points and maps at that location. This didn’t work; we could not get Bluetooth to co-operate (likely the same hardware problems again) so we tried having the robot just navigate randomly and decide to map arbitrarily. This didn’t work either; the robot crapped out every time it attempted to map. Note that we were using almost the same code that worked in part A, so go figure…
Taking a break, we went to the robotics class, where Dr. Lanthier commended me for still standing, but boy that was really all I could do at that point. I don’t remember too much of the lecture either… After class, we returned to Herzberg hell, frantically racing against the midnight deadline. In desperation, we had the robot spin 360 on the spot with a pause between each spin and manually position the robot each time. This kinda worked, so naturally the data readings were complete garbage (no clue what happened there) but at this point I didn’t really care. Even a fourth bottle of coke wasn’t helping me much. It was 10:00 and midnight was approaching at an alarming pace.
Since we were still in the lab, we agreed to prepare the lab for the group project. The boards didn’t have all the necessary screw holes and the only bithead that fit was rounded, and kept slipping. After busting my finger a few times, we left the lab set up, but unscrewed. Some of the boards were free-standing. I later found out that the prof wanted them free-standing and hadn’t expected me to do any drilling. Fun times indeed. And, I got a parking ticket because I forgot to go back and pay ANOTHER $10 for 4 more hours. At least life cut me some slack there, it was merely a warning.
So guess what I did again tonight? You got it. The robotics final project is advancing splendidly – the other groups have their robots delivering blocks to the drop off zone, and ours can’t even move from point a to point b. We send it its position and direction that it is facing, as well as the location of the point that it needs to move to. Our strategy, spin around until facing the destination, and move forward. What our robot does, spin around over and over, supposedly never facing the destination clearly a lie) and lurches forward randomly now and then. So, are my partners and I all so incompetent that grade 10 trig is too sophisticated, or is the robot busted? That’s what I’m gonna find out Saturday night. Stay tuned for another exciting account of COMP 4807, Mobile Robotics.