Friday, December 26, 2008

Status


Ok, I've gotten the Webcam attached and the pan/tilt functionality works in Roborealm. I also went and got a Sanguino I/O board from the RepRap Research Foundation. Hopefully, I'll start playing with that here in a little bit.

My Sanguino with the Breakout Shield.

Most of my time has been spent working on a versatile Java API to easily configure and integrate devices into a generic framework so I haven't been playing with my working robot so much. Crazy I know. But I did get some foam bumpers for it so it does have a little facelift.


Current list:

1. Get alpha working 0.1 version of the API running on the robot.

2. Build some ramps around the house so the robot can move through the entire house.

3. Test the Sanguino I/O board.

4. Build voltage checking and docking port for robot so it can recharge whenever it needs to on its own.

Wednesday, November 26, 2008

WebCam


Well, apparently, the best true resolution you can currently get out of a webcam is 2 MegaPixels. You can get 8-10 MP with interpolation. HP has just released the Elite with a 3MP sensor, but it's 5-6 fps at that.


Decided to go with the Logitech Orbit AF. The Logitech QuickCam Pro 9000 was a close second. Looks like it's basically the same camera. But I went with the Orbit's stand option and the fact that it has a motor tracking which I'll eventually have to do anyway, so it might save me some money and build time if I have any control over it through software. And it may prove useful on its own.

Also, I'm looking at this USB I/O board, from ApogeeKits. Seems to have the most bang for the buck.

Thursday, November 13, 2008

Initial Mark I Run

Here are some videos from the test runs. In the first three videos I just created a program to go forward for 3 seconds, turn right 3 seconds, turn left 3 seconds, backwards 3 seconds.

1/4 full power. Didn't fix the problems with the drive train yet:

Tightened down the belts and tried it again at 1/4 power:

Try again at 1/2 full power. Much better:

So now I wanted to load the control program I wrote earlier onto another computer and see if I could control it remotely. Fortunately, I was watching my friend's dog Katy for the week so it made the experiment a lot more fun.

Now I need to tune the drive belts so they move roughly in synch and retune the turning code so that I can get more precise directional control.


After that I need to decide if I should start adding some input sensors, build encoders for the motors so that I can precisely control their movement or just go ahead and buy the video camera and try to work around the movement idiosyncracies.

Base Complete

Ok, last week or so I finally finished putting together the battery mount, the charger mount, mounting the motor driver to the chassis and all the essential wiring to start playing with it.


And built a holder for the laptop so it can run indepedently.



Now it's time to try it out!

Thursday, October 16, 2008

Coding

I was able to get the motor to work through RoboRealm and I then wrote code in Java to interface with RoboRealm to begin writing some more sophisticated applications for the robot. In doing so I came to wonder why I was writing Java code to call the RoboRealm application to send commands to the motors. Wouldn't it be more efficient to just control the motors directly from Java? So I found the Java COMM API (with much searching and just stumbled on a new one RXTXcomm.jar that I may want to try) and wrote the code to control the motors from Java directly through that interface. Unfortunately, when I tested the code it didn't work. So rather than bang my head on that one for untold hours I just went back to the Java/RoboRealm interface.

The plus side of this is that the RoboRealm "API" is a loosely based (sorry, closest comparison I can think of, apologies to both sides) SOAP server. So I can run my application from anywhere on the network to connect to the RoboRealm. Saves me the trouble of writing a socket app myself (webapp or otherwise) to control the robot remotely.
So now I have the nifty little basis of a robot application ready to go:

Thursday, October 9, 2008

Test Run


I was able to hook up the motor driver to the motors and a battery last night and test it with a potentiomer. Fortunately, I had all the wiring done from a former H-Bridge project that I could never get working. Motor Driver works. Noticed that there's a couple of pieces missing from the drive trains that are causing the wheels to slip, so I'll have to fix that.

Next step was to download and install the RoboRealm software so that I could control it with the laptop.

This afternoon I installed the drivers for the USB to TTL cable and hooked the motor driver up to the laptop. After some difficulties, lack of specifics on how the RoboRealm interface works, I was able to control the motors from the RoboRealm software on my laptop. Success!

Notes: The RoboRealm software "installs" whatever "filter" you click on and reloads it every time RoboRealm is restarted. I didn't realize what it was doing and was accidentally "installing" a new Sabretooth "filter" each time. This caused the instances to conflict. You can see what filters are running in the bottom right corner window of RoboRealm. You click on those loaded "filters" to change their settings. Not the ones on the Content menu on the left. That will add another one.

I was able to control the motor from the RoboRealm software and then got my brother to show him and it didn't work! So he went away and I disconnected the power to the motor driver, reconnected it and restarted RoboRealm. It started working again and I left a motor running this time and got him and was able to show him. I stopped the motors for a minute or two and it stopped working again. It appears that there is a timeout issue between RoboRealm and the Sabretooth after a minute or two that I'll have to troubleshoot.

So now I need to install the video camera on the laptop, get into the API for RoboRealm so that I can write commands for specific movements of the robot. Ie, move forward, backwards, turn left, turn right, etc. Then I need to fix the drive trains, build a housing unit for the batteries, figure out how to wire the charger for the batteries, build a housing unit so the laptop can sit on the robot and build a platform for the video camera.

Wednesday, October 8, 2008

Motor Driver Arrives



My Sabretooth Dual 10A Motor Driver arrived today. Along with the USB to TTL Converter cable. Nicely packaged. Curtesy of SuperDroidRobots.