Friday, August 06, 2004
( 5:56 PM ) Matt
# - (1) comments
Tuesday, June 15, 2004
( 4:39 PM ) Matt
I have a couple of ideas for my next robot.
The robot music box.
This would be a relatively small device with its logic encoded into a PIC or other programmable chip. It would take all the rules taught in introductory music composition (Harmony and Counterpoint) and generate lulabies on the fly. The robot would be powered by a turn crank which would wind up a spring, and when released, the spring would turn a generator. The rotation would also be used to move the mechanics of the robot which would play notes on something like a thumb piano, or the little sheet of metal with many slits in it that a regular music box uses.
The robot picture frame
This would be based on my old Pentium motherboard. You insert a floppy disk with a JPG image on it, it analyzes it, and then draws the entire thing with one stroke of a pen. The pen moves left and right, and the paper moves up and down. When the image is complete, it scrolls up into the frame where it is displayed. The reason it is done in one stroke is because lifting the pen seems like it would be too hard. :-P# - (0) comments
Friday, June 11, 2004
( 1:08 PM ) Matt
I was clicking on random things on the web and came across a description of a game called Fear Effect. One neat thing they do well in this game (from what I've read) is to use a video loop for the background. That is, 3 seconds or so of a background which has a little bit of movement. Maybe a few blinking neon signs, or a person in the distnace smoking a cigarette. That got me to thinking, how would you make such a video loop.
For a computer game, a single screen's worth of video loop won't suffice. Presumably your character is gonig to be moving across some scrolling background much wider than you could possibly capture in a single shot. What you could do is to take a slow panning or tracking clip and then assign each frame to the angle or position it was taken at, and recreate a larger panorama or backdrop. If your pan or track was slow enough, you would have small clips of each piece of action. Just what you need for a video loop.
Then the trick is get all of these pieces of action into loops. But wait, it would be best to automate this as much as possible. Isolating the pieces of action can be done with wavelets. By looking at the significant higher frequency coefficients in the time dimension, we can find action. Then by extrapolating based on existing data, we can turn the bits of action into loops.
Ta-da! Wavelets save the day again.# - (0) comments
Thursday, February 26, 2004
( 9:00 AM ) Matt
This is it! The Daubechies D4 Wavelet Transform
I haven't given this a try, but I think some slight variation on the Daubechies wavelet transform is going to revolutionize my wavelet ideas. The cool thing about it is that the filter basis uses 4 samples instead of 2, so it is less prone to having drastlicly different transforms when the image is shifted by one pixel. Anyway, go read all about it.# - (0) comments
Friday, February 20, 2004
( 11:06 AM ) Matt
PNG (Portable Network Graphic) is a lossless image compression algorithm. It is based on GIF77 (LZH) compression and Huffman trees. Basicly, the way it works is the image is serialized into a stream of values. Then the stream is written to a file, but whenever it sees a series of values which is a repeat of something that happened before, it only needs to record where the series was last seen and how long it is. (This is GIF or LZH compression.) Then, a Huffman tree is used to make the more common values in the output take up less space, and the less common values take up more space. This compresses the image a little further.
This method works really well for images like screenshots where identical colors and patterns are repeated througout the image, but when PNG is applied to digital photographs, compression is not nearly as effective. The JPG format is a lossy compression technique meaning that the compressed image is not exactly the same as the original image. The differences are chosen to make the compression more effective while making the image virtually indistinguishable from the original.
Yesterday, I was thinking about making PNG lossy so that I could compress scanned images of handwriting effectivly. So, I did a quick web search, and found someone who had already done it! His results aren't too impressive. It seems his algorithm really loses a lot of information. My guess is that when he is determining if a previous series of values is "similar enough", he is looking at the sum of the differences instead of something more meaningful like the average difference. That way, pretty much any short string would be considered "close enough" while a longer string is very unlikely to be "close enough". This would result in poor compression and poor image quality.
The neat thing about lossy PNG is that the resulting file is readable by any standard PNG viewer. (Most modern web browsers support PNG.) So, I think I might try to implement a better lossy PNG algorithm.# - (0) comments
Wednesday, February 11, 2004
( 9:13 AM ) Matt
To start my map project, I took a look around for population density and location information. On one site I found latitude, longitude, and population information for every ZIP code in the US. The home page for the site talks about how ZIP (Zone Improvement Plan) was introduced in 1963, so maybe the populations are from back then... I also found a site with latitude and longitude for practicly every city, town and village. I couldn't find Harmony, San Luis Obsipo, California, population 18, but there are about 20 listings for Harmony, USA. There is no state or county information, and no population information either. A Google Search revealed the World Gazetteer with population and location information for major cites. This might be a useful place to start, though mining the information may be non-trivial.# - (0) comments
Monday, February 09, 2004
( 9:32 AM ) Matt
Have you ever seen the illustration of the human body with each part proportional to the density of nerve endings? For example, the face and thumbs are really big, but the torso is fairly small. I thought it would be cool to have a map of the world with areas of denser population scaled up and unpopulated areas scaled down. The idea is that the physical size on the map would be proportional to the population of that area. That way the oceans would become rivers with no area, Antarctica would be a dot, upper canada would be very small while Manhatten Island would be pretty big. Then, as a follow-on, it would be really cool to have the same map, but use species diversity instead of population density to scale the map. The oceans would be large again, and places like Manhatten would be vanishingly small.
Followup: I found a map with a rectangle for countries in size proportional to their population. It conveys the same information that my map was, but I was hoping to have major cities and states on mine as well.# - (0) comments
Monday, February 02, 2004
( 9:05 AM ) Matt
Last night when I closed my eyes, all I could see were icicles. Yesterday I took about 30 pictures of icicles. I saw some icicles that were small and pointy, clustered in two dimensional grids, crawling down faces of rock, emerging stalagmite style from the ground, and some bigger than me. All these I saw in downtown Toronto.
The best icicles form as the result of a particular weather pattern. Following a large snow, there must be several days of below-freezing weather with strong sun. The sun melts the snow on the rooftops, but as the water tricles over the side of the building, it enters shadow where the lack of sunlight and sub-zero air temperatures cause it to freeze again.
The most amazing icicle I saw yesterday was forty five degrees away from vertical. There is a lamp on a semi-circular support which illuminates a sign above a storefront downtown. Water had been dripping onto the support forming an icicle. (Imagine an upside down U with an icicle in the middle of it, much like the 'element of' symbol on its side.) After the icicle had grown to be about two feet long, the sun rose enough to shine on it directly. This slightly melted the base of the icicle, and it slipped down the side of the U, rotating it 45 degrees. There was a similar icicle on an identical support next to it that hadn't rotated. I'd post a picture, but I can't put upload images here. If you're interested, I'll e-mail it to you though.# - (0) comments
Tuesday, January 13, 2004
( 8:46 AM ) Matt
Did you know that in Japan you can get the content of a digital camera's memory card burnt onto a CD with index prints, and a DVD style case for 500 yen? That's about $5 canadian, or $4.25 US. If you ask nicely, you can get it done in 20 minutes.
In the convinience of your own home, you can save the content of the memory card to your computer, and then burn it to a CD when you are closer to 680 MB, but 680 MB of pictures is a lot, and I don't have any way of making index prints for myself. Writing a program to make a jpg for an index print sounds like a fun little project. I could just bring the jpgs down to a camera store to have them printed. Now, what would be really cool is if I could get the computer to automaticly summarize all of the photos so that the entire thing would fit on the front of the DVD case. Something like a forier or wavelet analysis might make it easy to choose the most representitive photos, and maybe even automaticly assemble multipicture panoramas.# - (0) comments
Monday, December 08, 2003
( 1:47 PM ) Matt
I really like wooden puzzles. I came across a fantastic site with instructions for constructing several classics. I wish I had a router and a place to use it.# - (0) comments
Thursday, December 04, 2003
( 8:51 AM ) Matt
Pictures are here!
I finally got the pictures developed and uploaded to the web. I've posted them on ofoto. If you want a high resolution version of any of them, just let me know and I'll e-mail it to you. You can order prints from ofoto if you really want to too. # - (0) comments
Monday, November 17, 2003
( 8:44 AM ) Matt
Charlotte Wins Second Place!
My eight legged walker, Charlotte, won sencond place at the ECRG over the weekend. :-) They gave me some cool simulation software and other stuff as a prize.
Now, I have to admit that there were only 3 walking robots, so getting 2nd place didn't take much. It was a lot of fun though. :-) I'll be posting picture somewhere soon.# - (0) comments
Thursday, November 06, 2003
( 9:34 AM ) Matt
Last night I got a distance sensor working. Nile soldered up a new connector, I plugged it in, and it just worked. Nile has superior soldering skills. My brother gave me some advice on wiring up an op-amp, now I have a distance sensor which can trigger the motor driver. I don't have it hooked up to the motors yet, but I have some LEDs which tell me it's doing what it should. :-)
This morning I was updating my robot registration, and decided to have a look at the ECRG's Flash site. On that site I found a different set of rules for the competition I am entering. The main difference is that in the set of rules from the HTML site that I was designing my robot for, one of the events is hallway navigating. In the other set of rules from the Flash site there is sumo wrestling instead. Yikes! I just sent an e-mail to an organizer asking what it is we'll be doing on Nov 15th. :-P# - (0) comments
Wednesday, November 05, 2003
( 9:13 AM ) Matt
So, I've been working on the robot for a couple weekends now. I'll have pictures and another update after the contest which is November 15th. The robot has taken shape, and most of the wiring is done. It's a really simple project, but I don't have a lot of time.
Over the weekend I wired up the control circuitry. It is basicly just 1 H-bridge chip which has 4 H-bridges on it. I use 2 H-bridges per motor so that I can drive them bidirectionally. The way it's wired now, the motors drive forward when the switches are not pressed, and when a switch is pressed, the opposite motor drives backwards. This makes it turn away from the switch which is pressed. By adding 1 wire I can make it also stop the motor which is on the same side as the switch. I think this would increase its effectivness in wall following.
Speaking of effective wall following, I thought I had a great idea on my way home yesterday. I say "thought" because I was unable to get it implemented last night, and not for a lack of trying. My idea was to use a distance sensor so that it could try turning away from the wall before it reaches it. Unfortunatly, I couldn't get either the distance sensor or the op-amp, which I was using to control it, to work. I send my electronics whiz brother an e-mail asking for help. I'll post again if I get it working.# - (0) comments
Thursday, October 23, 2003
( 8:56 AM ) Matt
Quick, Easy Walking Robot
On Tuesday I was sure I'd build a light seeker. On Wednesday I was leaning toward the line follower. Today, I'm almost certain I will build a walking robot for the ECRG this year. So, here's my plan to build a walking robot in 2 weekends.
First weekend: I'll use the pile of Lego under my bed to build the mechanics of the robot. The simplest way to build a walker that I know of is to start with wheels. Imagine I have a 6 wheeled vehicle, and I attatch a vertical rod to each wheel. If there were some way to keep those rods vertical, the bottom of each rod would trace a circle, and thus let the robot walk. Instead of making the rods stay vertical, I'll just make each one pass through a hole below the axis of the wheel. This way the end of the rod will trace a circle in the opposite direction of the spinning wheel. I just turn the wheels backwards, and the robot walks forwards.
Second weekend: Add the electronics. All we need is a simple method of avoiding obstacles. I propose two touch sensors much like an insect's antena. When the left sensor is hit, the right legs are switched into backward motion, and when the right sensor is hit, the left legs go backwards. If neither sensor is hit, the robot walks forward. This should allow the robot to navagate well enough. This very simple control model should be achievable with very little electrical hardware, making a controller unneccessary. I'll probably run my robot off of a single nine volt battery, or a few double A's.
In closing, I have to admit that the idea for the basic mechanism for this walker is not mine. A friend built a small robot with this mechanism when I was TAing 6.270.# - (0) comments