Showing posts with label robbie. Show all posts
Showing posts with label robbie. Show all posts

October 4, 2009

Victory

Well, the climax has finally come. It's been months since I returned from Germany, and the Robbie project has been marching on, but the competition has come and passed in just a day. Sick Robot Day 2009 took place on October 3rd, and Kobra (Robbie 13's robot day build) took first place.
It's not uniformly good news, because evidently our robot only recognized two of the posts (out of nine), while none of the others recognized more than one. I guess it was a more difficult task than I thought--I hope they put up some video of the competition soon. In the meantime, though, here's the press release--in German--and the official blog--also in German, but with pictures! It's so nice to see the final setup of the robot looking just like I imagined it would. I'd better go now before I get all teary-eyed.

July 17, 2009

Back to Work

I have been working this whole time (well, except last week), even though I've kept pretty quiet about it on the blogging front. I think it's about time for an update.
The DynamixelNetwork code is just about finished. That is, it feels very well-rounded, it's densely-commented, and it'll do everything we need it to do. (In fact I think there's now more comments in it than actual code... but I did it for Doxygen, so that you don't even have to open the source code now to find out everything you need to know about it.) There are still one or two problems with it--a couple obscure functions of the servos aren't yet supported, and the latency is pretty high--which I'm hoping to get the chance to iron out before I leave, but I still think it's a nice bit of code, and better than anything else available for Linux for these servos. I hope the university will choose a license for it soon, so I can post a link. It's my first real contribution to the "open-source community", and hopefully not the last. I hope it gets a good response.
On the robot front, I'm making good progress writing the pan-tilt unit module to integrate into the software framework. That's kind of minimal, though--just a bit of code to accept and send messages, which talks to the servos with my library. I've also been tasked with designing the hardware for the robot body... somehow. Heh. When I first got here I started in on the pan-tilt unit, and I had never designed hardware before. What I'm doing isn't really too complicated, it's just a bit of CAD... but I had never done it before, and I didn't have any idea where to start. I did it, though, and it was pretty fun. It turns out that by doing that, I became the most experienced person on the team when it came to hardware. So I was the natural choice to design everything else.
I'm not complaining, though. I'm learning some valuable new skills, and I do like to tinker with gadgets every now and then. It's staves off the drudgery of programming 24/7, and I'm getting better at it, too. So on Tuesday I'm going to take the robot apart again, pull off a few things, walk to the workshop with an armful of aluminum, and slap it all together. Fun times.

I'm leaving Germany on the 12th of August. That means I've got three weeks left to finish up. If I finish the hardware next week, I should be able to get the software wrapped up before I leave. It's really strange to be leaving so soon. Three months isn't really much time at all. It's okay, though--it wasn't long enough to get overly attached to the place, but it was long enough to get a whole lot of stuff done, and get some memorable moments in there, too. I'm not really excited about jumping right back into school again, though...

June 6, 2009

What I'm Doing Here

I'm here in Koblenz working with the Arbeitsgruppe Aktives Sehen (AGAS)--the active vision team. In a word, I'm working with robots. Right now I'm involved with the Robbie 13 project, which is the 13th iteration (in as many semesters) of a robot that is by now quite adept at fulfilling its duties--namely, to autonomously navigate a simulated "disaster area", map the area, and find "victims" (heat sources). Robbie has been very successful at past competitions, participating in the RoboCup Rescue League. I won't go too far into detail, but there's a lot more information at the website if you're interested. Now, though, Robbie is being groomed to take part in a different competition, the SICK Robot Day. Unfortunately the description is all in German, but I'll summarize the basic competition. The robot will be placed in a large oblong arena with obstacles scattered about, and 9 signposts clearly labeled 1-9. The robot's task is to navigate to each of the signposts in order (naturally, it has to read the numbers itself), while avoiding the obstacles as well as a second robot doing the same task in the opposite order. A collision with the other robot will mean disqualification, but the final judge of success is speed. It sounds pretty challenging, but a lot of Robbie's existing capabilities are well-suited to this task. In fact, except for the lack of image recognition (to read the numbers) and weatherproofing (this competition will take place outside, rain or shine) he's almost got everything he needs right now. But of course there is always room for improvement, and we've got until September to make him ready.
Unfortunately I'll only be here until mid-August, so I won't get to see the little guy compete. Currently my task is to build a pan-tilt unit to integrate the new laser range finder. Robbie already has one of these, and it's an indispensable part of his operation--it scans a wide radius in 2 dimensions to sense walls, and it's hooked up to a little servo which allows it to scan up and down to get a 3-D snapshot, mostly for identifying inaccessible areas ("rough terrain"). It's just a little tiny one, though, and now we've got a big heavy-duty new one--the SICK S300. It's actually quite portable compared to most LRFs, but it still weighs more than a kilogram, so just sticking it on top of a servo won't quite work. That's what I'm here for. Although I've never done any CAD before, I jumped in feet-first and over the past week I made a pretty good, basic schematic for an aluminum bracket to hold the LRF. Once the servos get here, I can take a few final measurements, get the design finalize, and then find out if the thing works at all, but for now I'm working on the software to control the servos. It's been a long time since I've done any object-oriented programming, so once again I'm really learning on the job. Overall, though, I think I can get this all finished in just another week or so. I hope so, anyway--this is interesting work, but I'd like to get this finished and start on another project before I go. I'm particularly hoping to have a crack at the higher-level designing... actually contributing to the intelligence of the robot. Anyway, I'll keep you posted!