Tuesday, February 24, 2009

THe Robot Doesn't Work

The OSMO Hacker arrived and I tried it out but it didn't fix things. The robot didn't respond to the commands from the PC, even after trying to install this device. The next step is to make sure the interface is okay (by applying voltage to the inputs to see the output level is as expected with a Voltmeter). If that fails to work, which it may, I either have a bad robot and the communications port is damaged, or the commands aren't being sent as expected. I'll have to build an oscilloscope using my PC sound card to verify the communications.

Other notes, I have been sick for the last week or so and have been working more on my job search as well as working on personal economics and/or political things as these things seem more important than the Robot now.

Wednesday, February 18, 2009

Latest status

I was able to verify that the board we built last week is working using my customized power supply that has the RX/TX lines on the DIN 6 connector side looped. Today I finally was able to send the control commands to the Roomba but I didn't see any response from it. I read where all of these third generation devices, built before Oct. 2005, will not work unless they have been modified. So I must assume that this is the problem and I need to purchase a OSMO Hacker to enable the ROI commands and then try again. This device can be purchased on ebay for $20 with shipping or new for $30 from iRobot. I hope to have this device soon, so I see the Roomba be controlled but in the mean time I can work on the Router and the other parts of the system I have wanted to work on.

Thursday, February 12, 2009

Some work done - week 5

With Jake, my 12-year old friend who finally got to work with me on this more, I built an interface board between the Roomba and a PC. The idea was that if a PC could talk to the Roomba, we could then make sure that the Roomba can be controlled by the Linksys Open-WRT box (and also diagnose the problems I was seeing with the vacuum bot). The work we did involved a schematic found in "Hacking Roomba" book which had some basic directions on how to build the interface board. As all the interface board parts came in from Digi-key earlier in the week (and had other purchased from Radio Shack), we could do this. Jake and I spent almost 14 hours on the project over a night and a day, and had to deal with a lot of challenges and delays, mostly related to my lack of prototyping and soldering skills (this was one of my few soldering projects I've ever worked on and probably the most sophisticated, definately since High School). At the end of it all one of the PC's showed an echo of the text back (using a test wiring and not from the Roomba), however I want to verify this again soon so I wasn't mistaken, as it didn't happen on a Windows XP PC, that had the communications software recommended to use in the book.

For the week I wanted to work on a new web page, requirements, and even start coding but this time and effort on the interface board perhaps was too much over two days. I've had the need and luxary of being able to take a break and I've been able to do other things that are valuable (like look for a job more) . Also I was a bit sick but I'm looking to pick back up again. The thing I want to do next is to send the commands through the Linux PC RS-232 port and see a response from the Roomba, and try to get my planning and requirements done, so I can actually start coding.

Photo links:
Summary of tasks done:
  • Built an interface board according to specification with the addition of a connector for the DIN 6 cable. This interfaced the 16 Volt battery to power the MAX232 chip. The MAX232 chip converted the TTL data lines to the RS-232 data line voltage levels that were compatible with the RS-232 port on my PC.
  • Used a 9V "wall wort" power supply to test the circuit by adding a male DIN 6 connector on it and looping the RX/TX lines as recommended in the book
  • Converted the DIN 6 to be compatible with the DIN 7 / 8 ports - by brute force and experimentation
  • Downloaded communications software to test the interface board. The Linux PC seemed to show an echo but not the Windows XP PC. I need to get a new cable to diagnose the problem on the XP PC or figure out how to stay with the Linux system.
  • The software from the book didn't run on the XP PC as expected but it didn't matter as the RS-232 port didn't seem to echo back anything.

Tuesday, February 3, 2009

Week 4 - Status Update

From last week, I was only able to work about 2/3rds of my planned time, but I have some noteworthy progress:

New equipment!
  • Purchased indoor remote flying toys: Wowwee Flytech Bladestar and a Nano Combat IR Helicopter. Both were only ~$20 on sale at Radio Shack, and my thought was that they had a IR signature that I could detect with a web cam. If I can see it, then I could control it. So the Home Robot could use one of these devices a means to discipline the animals.
  • The Bladestar only worked for it's first flight and then the battery didn't want to charge long. It was very stable compared to the helicopter, but the wings got damage (Styrofoam) and the unit wasn't able to be controlled well anymore. I have plans to get a new one at Radio Shack, after contacting tech support. This unit has potential to be controlled by the Robot / computer system, but the cat was not intimidated. In fact she liked watching it and trying to get it. I wanted to use this to scare the cat and keep her off the counter / table so I guess it's just something that will be not be included to deter the cat... perhaps it can be used to lure the cat away from other things however...
  • On to the helicopter... The helicopter was not easy to control but it was working and I was getting better controlling it. The cat however didn't get scared by it either but did get into batting it. It eventually stopped being stable enough to hover after a few flights and many crashes, and I think it's permanently broken. Do not know what happened but perhaps the main rotor shaft is shifted as Styrofoam is holding it's motor in place. Can't really fix it if the Styrofoam is now bent out of shape. It's a shame that it doesn't work so I'll try to get help from Danbar Toys and see if they can help (but doubt it).
  • Got the Striker II USB Missile Launcher ($26 off of Ebay). This turns out to be a dangerous device. It's not the missiles as these only shoot about 3-5 feet (which is pretty much a joke for a pet deterrent). The onboard laser happens to is very dangerous to the eyes. I was careful not to look into the beam but happened to walk across the beam at my eye level (at the side of my right eye)! What a bad move, as I think my eye could have been wounded as I felt it was affected and felt a bit sore. I guess I'm okay as I can still see and it's not getting worse, but I should have read about laser safety first, as it has a level 3R laser which has at least some risk of damage to eyes.
  • BTW: The USB Missile Launcher was not intimidating or impressive to the dog. See video here. The Missile launcher, while, not an effective deterrent with the missiles could be used to mount a Web cam, and to make distance measurements with the laser.
  • I purchased gear from Radio Shack and Digikey to interface the computer and Linksys router to the Roomba. I'm still waiting for the parts to come from Digikey. Note: Needed to buy a soldering equipment, and components for Voltage conversion for power and data.
  • I do not have a Web site yet, requirements document, or have written any code but will post as I do.
  • The testing I was able to do will lead me to creating a water based canon to stop the animals.

Tuesday, January 27, 2009

Report - Week 3

There was some fair progress...
  • Got the new Roomba battery I ordered. The Roomba worked for a bit! It then stopped working as expected. The new behavior is shown on my You Tube page. May be able to be fixed if it's a broken wire on a sensor, TBD... need to take it apart and perhaps Hack the serial port to figure out the problem.
  • Finally was able to re-flash and "Talk" to the Linksys WRTSL54GS router via telnet and then SSH. I am working on getting it setup as a client vs. an access point.
  • Got the "Hacking Roomba" book and skimmed it. Found some good ideas there and will use this more later.
  • Researched a remote controlled indoor helicopters to be vision controlled from the Roomba device. I saw Jake's Air Hog Havoc helicopter ($25 at Walmart!?!) and was inspired to control it via a computer using a webcam. It would be great to have the Home Robot involved in the control of a helicopter vs. just fire missiles. The helicopter can be vision controlled as I've seen done by others (see links below).
  • Found that there are USB Missile launchers that can be hacked. One model has a laser and then can be used for range finding using the web cam but this model only shoots about 5 feet. The other model can shoot 25 feet. I think that getting both will be helpful for evaluation and for picking one as a base to rotate a web cam on the Roomba.
  • Put in ~25 hours put in since last Monday am tracking my time with a free software tool, Baralga and shooting for 30 hours / week
  • Talked with a few people about this and am evolving ideas.
  • Analyzed the data rate needed to transmit for vision control without compression. There are some challenges to overcome to remotely stream webcam video to a PC for analysis.

To do:
  • Make a financial budget for the project
  • Finish the initial requirements and project plan
  • Setup a web site or find server to host my Robot requirement documents and other notes (may do a home brew setup)
  • Get the Linksys router working as a wireless client on the network
  • Order parts needed: electrical interface hardware, soldiering equipment, missile launcher(s), etc.
  • Get a remote control helicopter!? The one I would like is ~$120.
  • Start developing code
Helicopter vision controlled examples:

Monday, January 19, 2009

Report - Week 2

The first week since I started the blog, I made some progress. Here are some highlights:
  • Started the requirements and the document to track this
  • Received the Roomba 4200 and the Linksys WRTSL54GS Router from Matteo
  • Ordered a new battery (the one I was sent was DOA) for about $40 as the Roomba doesn't do much without a working battery
  • Talked about the project with various people, technical and non-technical. This helped to get new ideas and gauge interest
  • Talked with Matteo about his ideas for his project that included these parts
  • Ordered a Hacking Roomba book
  • Trying to get the router working with OpenWRT, but it didn't respond, so am debugging this currently
Also I:
  • Continued to research existing robot projects to understand the public state of the art
  • Brainstormed and logged the various ideas I have
  • Researched electronics, software, and even mechanical tools
  • Logged books I need , people I can ask for help, etc.

Saturday, January 10, 2009

The Robot Plans

Welcome to my Robot Blog site! This is my first posting as I have been considering a robot for a few months now and am finally starting the project. The motivation behind this was to learn new things, enhance some skills that I have, to work with a 12-year old, Jake, and to have a cool robot that would help us out with the pets. My wife and I have a cat that likes to climb onto the counters, so I need to have a robot to help out when we're not home. I'm sure the dog needs monitoring and discipline sometimes too.

I plan on doing this project with the help of a 12 year old friend, Jake, who is very interested in robotics and tinkering with things. Jake told me about the Lego Mindstorm NXT Robot and I considered getting one and probably would then load a free custom RTOS on it, where I could program in C++. I decided against this because of the limitations of the abilities of the system and the cost ($225 at least). So I was going to plan on building my own hardware / software solution using the brains of an low-cost embedded microcontroller using a free off the shelf RTOS and programmable in C++ using OOAD techniques.

Before I made my decisions I wanted input from my friend, Matteo, who told me he was willing to give me his robot parts, as he was too busy to work on it now. I gladly accepted, and also he wanted me to blog on it, so he can follow the work, and see what's going on with it.

This robot would be able to move around the house, see using a Web cam, record audio, fire a few missiles, and all be controlled wireless from a PC or over the Internet. I would like the robot to have a programmed assignment to monitor the pets, and keep them from doing bad stuff as well.

The parts I am getting sent:
Part I want to get as well:
I plan to be regularly updating this (probably weekly) with various project plans, technical information, and multimedia.