Archive for the ‘Art’ Category
CMUcam2 in Matlab! & Project updates!
On Sunday, a breakthrough was made with regards to getting the CMUcam2 to send a frame back to Matlab! Amazing! It works!
Check out the screenshots:

(something bright was being shone onto the camera)

(lens cap on (yes they make lens caps that small))
It’s quite noticeable that the resolution is very small. In fact, it’s only about 10 pixels in size!
I started off small so that we could have something that works, then go from there.
It’s only sending the green channel too, which helps improve the latency.
The way it works now is that it asks for a few hundred bytes of data. From there, we search through the array to find a 1, or the start of the frame, until a 3, or the end of the frame. This is stored into a new variable so that we can search through it (again!) and plot the data.
Plotting the data needs some improvement. Not too sure how to handle this yet– should I make a Processing app that will be able to save the image as a .png? Or can Matlab write images too? Hmm!
Post a comment if you want me to post the code, I just don’t want to post something that’s incomplete and will essentially confuse everyone.
Other projects statii:
PR2 Proposal
Out of the 120 Letters of Intent that WillowGarage received for the PR2 Beta program, one of them is one from Clarkson University!
There are ten robots that are going to be given away. Coincidentally, the research teams that win will be notified on March 26th — that’s the date of the Boston FIRST regional (which Team 229 is attending and is going to ROCK THE ROBOT HOUSE)!
We’re giving it our best shot, and it’s looking really cool! If you see me around, ask me about it!
This whole process has been super exciting. Our proposal is being wrapped up, though it’s only due March 1st (that’s in six days, we still have plenty of time). My two sections are pretty much complete except for some stuff. I’ll be blogging about it on March 1st at 8:00PM, so keep an eye out!
Sociable Robotics
The Socializing a Social Robot with an Artificial Society SURE abstract from the summer has been added to the Honors Summer Research 2009 page! Finally!
Also, I refined my paper with logic that can easily be followed now, and included Zoomify graphs of the results. This makes it easy for readers to scan and interpret the graphs themselves. Plus, Zoomify graphs are always fun.
As for the code… I still have to get on to documenting it. It’s a lot of work, so I’m just getting through it step by step. Lesson learned: although comments are distracting when you’re working on the code, it’s horrible to go back and then spend time to comment it. Always comment. No exceptions!
SecondLife Statistics Project
We finally parsed through the data and found something really striking. When the economic downturn in real life appeared, the usage hours on SecondLife rose, and kept on rising for a few months! The virtual economy was booming. It’s almost like as if people were tired of the real life, and wanted the easy success of the virtual world.
Though, there was eventually a decrease in the usage hours on SecondLife. This leads us to wonder if…
1) Is there a lag between RL and SL?
2) Did people notice that there weren’t as many opportunities on SL as when they first joined?
It’s really cool to think about this sort of stuff. It makes you wonder what Oreo sales have been like throughout this modern recession. I would love to study Oreo sales, I think they would be really representative of the economic situations. Either that, or Oreo sales always remain constant.
Team 229
This build season I helped out with the website a lot. We were coming from nothing, and now we have a beautiful source of information, all collected together!
It was quite a load of work, however help from the teammates and mentors helped very much. Go check it out!
Physics Team Design
In Physics II there are two lab sections that allow you to participate in a team based design course. The challenge is to model the velocity of a hobby train with given voltages. We do this using photogates… and a piece of National Instruments hardware that measures data at a rate of 400,000. I’m not sure what the units are, but it’s pretty amazing! The challenge sessions are where we apply this model, trying to predict the train’s movements based on the data that we have collected.
The way the data is collected is through LabView. Unfourtunately, the program that is used was deleted… so the professor/TA needed some help to fix it. After working on it for a few hours, we figured it out and got it to work!
iPhone Stuff
I’ve been playing around with core-plot and working on an app lately- it’s 80% done, and will be out on the App store within the next few weeks!
We’re still trying to sort out if we’re going to Open Source it, and how that would work (since we want people to buy the App too…!). Perhaps we could just *suggest* a donation whenever people try to download the code? Anyone have any experience with Open Source App business model plans?
Random
Coming back from winter break to school was tricky this time around… since I was outside the entire day playing hockey during the break!!! Although Clarkson has open skate, their ice mixture is really weird, and there’s no pickup hockey games
Better than nothing, though.
I bought two shirts from shirt.woot, and they are awesome. One of them is ‘I Fought the Laws’, and has three pictures of crazy robots. The other is a robot that is plugged in to a wall outlet, leading to its heart.
That’s all for now! Keep it real, humans and robots.
January Happenings
What has happened in January? Tons of stuff!

For Matlab this semester, it’s an independent project. I’m working with a friend to implement an adaptive online SLAM algorithm for an iRobot with a CMU cam and ultrasonic sensor. We want it to be able to reach a goal location even if objects are placed in front of it. I’ll be blogging more about this later, though.

The Social Robotics software that I worked on over the summer is now released under the GPLv3 license. I encourage everyone to check out the Social Robotics page if you want to learn more about the project! I am still in the process of creating the documentation and commenting for the code. As soon as it is complete, I will make a blog post.
Luckily for me, I took time to make detailed daily and weekly summaries. This will help a lot, plus it’s always neat to look back and see what the difficult parts were.
Did you hear/watch this year’s FIRST game animation? The game is about soccer! Team 229 has many useful links on their webpage that can fill you in.
This year I’m helping out with the website, maybe I will get to help out with some AI coding for the autonomous mode later on. It all depends on what the high school students think up!
I ended up adding a class two hours before the first lecture- Applied Statistics I. I don’t enjoy statistics very much since I have horrible memories of it from Math 536. But, once I gained access to view the class on the gradebook software, I immediately noticed two words:
SecondLife ……………… Project
Is this for real!?!?! It turned out that it is, and it is awesome! A friend and I are working on trying to figure out if there is a correlation between the virtual economy and the real economy. We’re going to focus mainly on North & South America, Europe and Australia.
Here’s a screenshot of my professor in SecondLife!

I’m taking a class on Computer Graphics. It’s really neat– I’m learning OpenGL!
OpenGL is something that I’ve wanted to learn for a while now. It’s actually quite simple when you’re given a template to work with!

Above is the first homework assignment! We were given a lot of time with it, which allowed me to play around with the code. I have to make the colours more plain before I hand it in, though.
I have no idea what I want to make with OpenGL at the moment. Maybe a moving robot? I definitely want to make some sort of game, though. (That way I can sell it on the iPhone App Store!)
That’s all for now. I’ll be blogging more about the Matlab project, since I think it’s going to be a hit!
Friday Night Robotics – MLK Day Preparations
Warning: This FNR does not contain any robots at all, but it’s still REALLY amazing!
A while ago I put my name on a list that wanted to help out with MLK day, 2010. I originally thought I would be doing a website, not really thinking about the intractability portion. When the Fall 2009 semester began, the group of us met, and ideas were tossed around. MLK Day in 2010 had to be different.
We came up with the idea of having a Twitter aspect of the performance. People would be able to tweet from laptops and then see it displayed on the screen! We are going to be using 5 laptops throughout the dinner, each with a different theme:
- Inspiration
- Dedication
- Culture
- Leadership
- Performance
When a person goes to send a tweet, this is what the webpage looks like:

It’s very user-friendly in the way that… once a person reads the theme and the question, they’ll understand to type in the box and press the button. I designed it to be simple, hopefully people will think it is simple too.
Being projected onto the display will be the Processing application that I’ve spent the better part of 4 months coding! :O It displays three twitter accounts at a time, and they are refreshed every 10 seconds and cycled upwards. The background changes very slowly over time as well, it’s almost not noticeable. Here is a screenshot:

The best part about this is… it will be open source… in about 1 month. I just need to take some time to document it before I release it to the wild. Since it wasn’t a project for grades, I didn’t comment it (I find comments get in the way), so I will have to do that. Hopefully people will pick it up and improve it, since there’s some parts in the code that it’s obvious that I had no idea what I was doing.
So that is the MLK Twitter portion of the dinner. I’m really amazed how well this is all going to work together, it will be a very special moment for sure. I had the privilege of seeing the performance being rehearsed, it is extraordinary! If it is going to be recorded, I will be sure to post a video.
I hope everyone has a wonderful MLK day!
Friday Night Robotics * 3 – MANOI’s Holiday Xtravaganza Warmup
This weekend really gives patronage to how challenging the sport of robotics is (Technically it’s not a sport since it’s not in the Olympics), and how frustrating everything can be!!!!
Last year, MANOI barely showed off any holiday spirit. Just a seemingly 2D stocking sticky-tacked onto its head.

This year I really wanted to improve on that because… well, I don’t really have a reason. I just wanted to. I wanted to see what it would be like for MANOI to ring bells
The decorating started off with just a hat, followed by the hunt to find jingle bells that are a circle, not a bell. My mom eventually figured out the type of bell that I was looking for, and bought me some festive bells and bows!
Et voila, MANOI! C’est magnifique! (Tada, MANOI is magnificent!)

I spent an enormous amount of time getting various actions set up so that I can string them together into a final product. In total, there are 7 different movements. My favourite of which, called ‘tango’ can be seen in the video below where one of MANOI’s arms is outwards, and another is inwards, perpendicular to its front shell with the bow. Surprisingly enough, its only two motion frames:
-
int tangoHeadTilt = 400;
-
int tangoHandTilt = 200;
-
int tangoHandIn = 120;
-
int tangoHandUp = 500;
-
int tangoArmUp = 500;
-
int tangoArmTilt = 600;
-
int tangoHipTilt = 200;
-
int leanBack = -25;
-
-
int tango_keyframe1[17] = {
-
HOME0-tangoHeadTilt,
-
HOME1+tangoHandTilt,
-
HOME2-tangoHandIn,
-
HOME3-tangoHandUp,
-
HOME4,
-
HOME5+tangoArmUp,
-
HOME6+tangoArmTilt,
-
HOME16+tangoHipTilt,
-
HOME17+leanBack,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21-tangoHipTilt,
-
HOME22+leanBack,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
int tango_keyframe2[17] = {
-
HOME0+tangoHeadTilt,
-
HOME1,
-
HOME2+tangoArmUp,
-
HOME3+tangoArmTilt,
-
HOME4+tangoHandTilt,
-
HOME5-tangoHandIn,
-
HOME6+tangoHandUp,
-
HOME16-tangoHipTilt,
-
HOME17+leanBack,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21+tangoHipTilt,
-
HOME22+leanBack,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
void tango(int repeat) {
-
for(int i=0; i<repeat; i++) {
-
setFrame(tango_keyframe1, 800, 50);
-
setFrame(tango_keyframe2, 800, 50);
-
}
-
}
It’s weird because tango looks way more complicated than a movement that has 6 frames, the ‘both arm jingle’. This is where MANOI jingles both of its arms, so one is back and the other is forwards, then the hands both jingle.
-
int bothArmJingle_frame1[17] = {
-
HOME0+200,
-
HOME1,
-
HOME2+leftArmOut,
-
HOME3+leftArmForward,
-
HOME4,
-
HOME5+rightArmOut,
-
HOME6+rightArmForward,
-
HOME16,
-
HOME17,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21,
-
HOME22,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
int bothArmJingle_frame2[17] = {
-
HOME0+200,
-
HOME1-leftWristMovement,
-
HOME2+leftArmOut,
-
HOME3+leftArmForward+50,
-
HOME4-rightWristMovement,
-
HOME5+rightArmOut,
-
HOME6+(rightArmForward-170),
-
HOME16,
-
HOME17,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21,
-
HOME22,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
int bothArmJingle_frame3[17] = {
-
HOME0+200,
-
HOME1+leftWristMovement,
-
HOME2+leftArmOut,
-
HOME3+leftArmForward,
-
HOME4+rightWristMovement,
-
HOME5+rightArmOut,
-
HOME6+rightArmForward,
-
HOME16,
-
HOME17,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21,
-
HOME22,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
int bothArmJingle_frame4[17] = {
-
HOME0-200,
-
HOME1,
-
HOME2+leftArmOut,
-
HOME3-leftArmForward,
-
HOME4,
-
HOME5+rightArmOut,
-
HOME6-rightArmForward,
-
HOME16,
-
HOME17,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21,
-
HOME22,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
int bothArmJingle_frame5[17] = {
-
HOME0-200,
-
HOME1-leftWristMovement,
-
HOME2+leftArmOut,
-
HOME3-(leftArmForward+50),
-
HOME4-rightWristMovement,
-
HOME5+rightArmOut,
-
HOME6-(rightArmForward+50),
-
HOME16,
-
HOME17,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21,
-
HOME22,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
int bothArmJingle_frame6[17] = {
-
HOME0-200,
-
HOME1+leftWristMovement,
-
HOME2+leftArmOut,
-
HOME3-leftArmForward,
-
HOME4+rightWristMovement,
-
HOME5+rightArmOut,
-
HOME6-rightArmForward,
-
HOME16,
-
HOME17,
-
HOME18,
-
HOME19,
-
HOME20,
-
HOME21,
-
HOME22,
-
HOME23,
-
HOME24,
-
HOME25
-
};
-
-
-
void bothArmJingle(int repeat) {
-
-
for(int i=0; i<repeat; i++) {
-
-
setFrame(bothArmJingle_frame1, 500, 0);
-
for(int i=0; i<5; i++) {
-
setFrame(bothArmJingle_frame2, 20, 0);
-
setFrame(bothArmJingle_frame3, 20, 0);
-
}
-
setFrame(bothArmJingle_frame4, 500, 0);
-
for(int i=0; i<5; i++) {
-
setFrame(bothArmJingle_frame5, 20, 0);
-
setFrame(bothArmJingle_frame6, 20, 0);
-
}
-
-
}
-
-
}
Crazy right? I’ve found that in most of my other MANOI motions, the movement was very focused, with no other moving parts. So I made sure to make the most things move at once.
I think it gives off a more exciting vibe.
Check out the video!
It really wasn’t as easy as the video makes it look. There were a lot of times where various movements wouldn’t match up, so they would catch the balance off-guard. Also, one of MANOI’s ankle servos went crazy on me, so it let the other foot down, causing a fall.
It’s super challenging to fix this because when MANOI falls, there are at least two things that temporarily break. You fix those things, but while you’re fixing them, other things break. While you’re trying to fix the new things, you can’t get a good grip on the robot because its entire body is made up of servos, and if you set the robot down, another thing will break. I would be willing to wager that working in no-gravity is a cinch compared to this!
Once everything is working again, you go and fix the motion. Fixing the motion is a whole separate routine of trial and error- you change some of the values of the servos and see what happens. There are two options for the next step, either have super fast reflexes, or only program with one hand on the keyboard. Since macs are not very one hand friendly, I have to have super fast reflexes to turn the power switch off on MANOI so that it won’t fall. If it does fall, you have to go back and fix everything.
In any case, once the motion is fixed, you go back and try it with the other movements. Just your luck, the battery runs out! MANOI falls, and you have to fix everything again.
It’s so unbelievably frustrating!!
Especially doing it for 3 days straight! There have been three times where MANOI has fallen off the table, about 1 meter (3 feet) tall. The risk of this is MANOI getting shocked by me, the air, and the carpet! It’s really nerve wracking, but thankfully MANOI is alright. Here’s a video of all of MANOI’s falls from the various videos that I tried to take:
At the end of the day, I really enjoy seeing MANOI move around. I think of it this way: it is my frustration and patience that has given an otherwise inanimate object LIFE. How cool is that?
There will be more videos of MANOI in its holiday gear showing up soon, with more blinky lights too!





