This week started off on an academic note, yet I wasn't really expecting to begin my studies until the 21st.
My Java class back in Toronto was writing a test, and so, of course, since I'm still enrolled in the course - I had to do the same. My professor at York agreed to email the test to my professor here, and once I finish writing it under supervision, that it would be faxed back for grading. Yay - lucky me. The Java isn't the problem - I just don't want to start studying again, just as I'm starting to get the hang of living. I finally have my kitchen in a functioning state, I'm getting to know the city, and the language - and just as I wish to be out more and start really diving into the German lifestyle - Java comes knocking on my door.
I've been on campus every day this week, hanging out at the RoboCup lab, trying to make friends with the robots (and some of the students as well), as well as really sink my teeth into something fun. Our first task last week was to install ROS (Robot Operating System) on our laptops, which I did with no problems. However, once the installation finished - there was no icon on my desktop - no new program added to the application list - nothing - it's just libraries and modules, and I didn't really know what to run and how to run it. So I asked one of the guys at the lab to show me if there's something I could poke around with.
I was sitting next to Johnny - the old robot in the lab - so when the guy came over to show me the ROS, he thought it would be a great idea to show me something practical - something hands on - something real. He grabbed the laser scanner that used to be Johnny's head (apparently this thing costs about 5k) and plugged it into my laptop USB. Punched in a few commands in the terminal and ...
... Fascinating.
A few more commands, and suddenly - an environment comes up on my screen showing me a 3D map of what the laser scanner is picking up. It's just dots to me now, but with some calibration and in-depth understanding, perhaps I could make some sense of all this. After he left me to play with it, I recorded a short video of me performing the same task - just to make sure that I could do it on my own:
... not bad for a robotics n00b.
After playing around aimlessly for a bit I came back to the guy and asked if there's something I could do a bit more practical. Sure I can go through the ROS manual page by page and start learning every little bit about every little module and every little application, and luckily enough, I'm sitting next to some pretty expensive hardware, so I could even play around with some of it - but I find learning more stimulating and engaging when I can actually make something worth while. I told the guy I want to contribute something to the team. When he asked me what is my research topic, I timidly explained to him that I'm not a Masters student, and that I'm only here for the summer term. That I used to be a web programmer (which in comparison to these guys, is probably at the bottom of the food chain), but that I'm eager and excited to learn something, and rather than me learning for the sake of learning - I'd like to learn and do research and by the end of the summer term leave them with at least some code that they could use for their project.
He nodded in acknowledgement and told me that we'd have to ask the team leaders, who just at that very moment were walking into the lab. He called them over, and in German quickly explained to them my situation. The team leaders' eyes lit up. "Really?!", they asked me. "You vant to help uz?!", one of them asked, rubbing his palms together. "Zupper!", he exclaimed, and the three of them rushed off to check their to-do lists. "Well, what are you interested in?", one of them asked. "Robots!", I replied with a smile. They laughed and continued flipping through their notebooks. After a minute or so, they came back with a great task for me. It's something none of them know how to do, and it's something that would be useful for the entire team and the entire project, yet doesn't require me to have too much background with robotics or the ROS.
There is a simulator that can be used to test the code and the robot without actually having physical access to it. It's called Gazebo, and it basically creates a 3D environment - kind of like in a video game. You can then test your robot in this environment before running the code on the real hardware. Just in case your code tells the robot to "kill" - you'll know it in the simulation before having to deal with a killer robot on the loose. Thus far, the team has been using a model of someone else's kitchen to run their tests, but would love to have an environment which represents their lab. They asked me if I would be interested in creating a model of this lab, which they would then be able to use to test their code. They could see if the robot can properly navigate from the lounge, to the kitchen, to the work area, etc., without having to run the robot and risk having it knocking over tables and chairs.
And so - my task is decided. I'm currently doing lots of reading and lots of research trying to figure out how to model this environment in Gazebo, and hopefully contribute something useful to the RoboCup team! ^___^
OMGWTFBBQ!!1!
Don't be
dismayed at goodbyes,
A farewell is necessary before
you can meet
again.
And meeting
again, after moments or
lifetimes, is certain for
those who are
friends.
- Richard Bach
Showing posts with label robots. Show all posts
Showing posts with label robots. Show all posts
Wednesday, March 16, 2011
Saturday, March 12, 2011
O... M... Robots!
| www.explodingdog.com |
Yesterday I went to the University and met with a team of international students who all feel this way about robots. The team is working on something called a RoboCup - a competition between different Universities across the world to stimulate research in robotics.
Generally RoboCup is a football (soccer) competition, where the teams submit a number of robots who can play football against each other. And I'm not talking about remote-controlled robots either - I'm talking about fully autonomous machines that can play a game. They have to be able to move around, avoid obstacles, recognize the ball and the net, and attempt to score a goal on the other team. The following video is the finals from RoboCup2010. It looks a little boring at first, but trust me - watch it, and you'll get into it. You start rooting for the robots to score - doesn't even matter what team, it's just exciting to see a machine trying so hard to perform a task that we take for granted - like kicking a ball.
They look so silly and clumsy at first, but you have to keep in mind that these are fully autonomous humanoid bots. The competition started in '97, and they had several really great battles of bots that just look like boxes on wheels. They're fast and agile and can shoot the ball to different corners of the net, but they don't look like humans. The humanoid ones have only started appearing within the past few years, so all things considered - this is progress!
The goal of the RoboCup is to have a team of humanoid bots win a football match against a team of human players by 2050. The first such challenge was solved in '97 when Deep Blue won a game of chess against Kasparov - the world's best chess player. So... with only 14 years since the competition started and with 39 years to go, I think it's definitely possible. And to be honest, I'm kind of excited to see a team of fully autonomous humanoids beat the crap out of Spain. :-P
(no offence, Spain, but while I'm on German soil - DFB FTW!!)
RoboCup has many different competitions, and as much fun as it is building robots for games - the more practical competition is with service robots, which is what the team is working on this year. The idea is to have a robot perform a service task within a given time. Something as simple as "bring me a cup of tea", is actually an extremely complex task for a robot to complete. We don't even think about these daily routines when we perform them, but for a robot, millions of lines of code have to be written to go from room A to room B, locate the kettle, locate the water, pick up the kettle, get the water into the kettle, etc, etc, etc... And if I can have any part in contributing to a robot that will one day fetch me tea, I'll spend the rest of my waking hours writing that code.
| Caution Level ! |
The meeting we had was to discuss something called the ROS (Robot Operating System). This is a collection of libraries that interface from code - to hardware. Basically any robot that is in commercial use today uses this operating system to run and perform its tasks. We were briefed on what the OS is and what it does, and our first task was to go home and install it on our laptops (check). Next meeting is on Monday and we're going to start with basic tasks and coding some algorithms to solve these tasks. If anyone has any ideas and recommendations for what kind of tasks I could work on - I'll definitely try to incorporate them into my project. This is not for a class, and not for credit - this is just a group of people who are all passionate about robotics and wish to contribute to the research.
Apparently the ROS can be installed on a lot of different hardware, and I plan on saving up some money and buying components to build a robot of my own. Something small, perhaps a toy car with a mop that would clean my floors... or an arm that would open my curtains in the morning... who knows... the possibilities are endless... ^__^
Thursday, March 10, 2011
Why did I come here again?
I have been on such a high being in a different place, experiencing new culture, new food, new language, that I have completely forgot the purpose of my trip. Yesterday, however, brought me back down to earth, as I had to meet with my professor at BRSU (Bonn-Rhein-Sieg University) who coordinates with my professor at YorkU, to help me pick out the courses I'll be taking here.
Our main concern was courses in English (as my Deutsch is still nicht sehr gut), and of course, courses for which I would get credits back at York. I have to be enrolled in 5 courses for the semester, and so far the courses we've selected are giving me goosebumps from excitement. Nothing is finalized yet, but I am so super-excited I just have to share this with you:
1. Operating Systems
2. Computer Vision
3. Autonomous Mobile Robots
4. Machine Learning and Adapting
5. Introductory German
I am so stoked, you guys have no idea. I'm giddy from excitement. Robots, you guys... ROBOTS!!! I'm gonna be working with robots!!! How they see; how they move; how they learn and adapt to their environments... EEEEeeeeeeeeeeee!! ^_____^
When I came home, I remembered that I'm still enrolled in one course at YorkU and had made an arrangement with the professor to continue the course from here. Since it's a Java programming course, and the professor actually knows some people at BRSU, he figured the programming assignments I could submit online, and any written tests could be proctored by someone here. So I checked the course website, and what do you know - I completely forgot that in Toronto, my class is just settling in at the lab to write a programming test. I emailed the professor with an update on my status and asked him how he was planning for me to write the assignment. He told me that it was no problem if I simply log into the system at York and do the assignment. Since it was all very last minute (and 11pm local time), there was no way he could get someone to monitor me, so I was on the honour system to not use the internet for help during the test. Honestly, though, it's Java, and you either know it - or you don't. Being a programmer for the last 10 years, it was no big deal, but having to switch gears so fast from being a tourist, to now sitting in front of my laptop writing Java code and sending it half-way around the world to be graded, was a bit of a buzzkill. Luckily I had ran out of cash earlier that day, so my usual routine of coming home and having a couple of beers was interrupted - good thing too - drinking and coding is a mess.
And now, I'm off to school again, for a very exciting meeting which I'll have to tell you all about when I come back.
Our main concern was courses in English (as my Deutsch is still nicht sehr gut), and of course, courses for which I would get credits back at York. I have to be enrolled in 5 courses for the semester, and so far the courses we've selected are giving me goosebumps from excitement. Nothing is finalized yet, but I am so super-excited I just have to share this with you:
1. Operating Systems
2. Computer Vision
3. Autonomous Mobile Robots
4. Machine Learning and Adapting
5. Introductory German
I am so stoked, you guys have no idea. I'm giddy from excitement. Robots, you guys... ROBOTS!!! I'm gonna be working with robots!!! How they see; how they move; how they learn and adapt to their environments... EEEEeeeeeeeeeeee!! ^_____^
When I came home, I remembered that I'm still enrolled in one course at YorkU and had made an arrangement with the professor to continue the course from here. Since it's a Java programming course, and the professor actually knows some people at BRSU, he figured the programming assignments I could submit online, and any written tests could be proctored by someone here. So I checked the course website, and what do you know - I completely forgot that in Toronto, my class is just settling in at the lab to write a programming test. I emailed the professor with an update on my status and asked him how he was planning for me to write the assignment. He told me that it was no problem if I simply log into the system at York and do the assignment. Since it was all very last minute (and 11pm local time), there was no way he could get someone to monitor me, so I was on the honour system to not use the internet for help during the test. Honestly, though, it's Java, and you either know it - or you don't. Being a programmer for the last 10 years, it was no big deal, but having to switch gears so fast from being a tourist, to now sitting in front of my laptop writing Java code and sending it half-way around the world to be graded, was a bit of a buzzkill. Luckily I had ran out of cash earlier that day, so my usual routine of coming home and having a couple of beers was interrupted - good thing too - drinking and coding is a mess.
And now, I'm off to school again, for a very exciting meeting which I'll have to tell you all about when I come back.
Subscribe to:
Posts (Atom)