RoombaComm: Roomba Control & Communications API, release 1

This is an updated version of the RoombaComm API.

This release contains Javadoc documentation!

This release further expands on the two different levels of driving API: a lower-level one that is based on velocity, and a higher-level distance/angle one. I’m debating how to notate these differences. For instance:

roombacomm.setSpeed( 100 ); // set speed to 100 mm/sec
roombacomm.goForward( 150 ); // go forward 150 mm
roombacomm.spinRight( 45 ); // spin 45 degrees right
roombacomm.goBackward( 25 ); // go 20 mm backward

vs.

roombacomm.goForwardAt(100); // go forward at 100mm/sec
roombacomm.pause( 1500 ); // wait for 1.5 seconds, so it goes 150 mm
roombacomm.spinRightAt( 100 ); // spin right at 100mm/sec
float ptime = 45.0 * roombacomm.millimetersPerDegree / 100.0;
roombacomm.pause( ptime ); // wait until the Roomba has spun thru the angle

The wacky angle calculation above is the primary reason why I wanted a higher-level API. I want to do more Logo-like things.

flattr this!

ReadyNAS Rules

I recently obtained a ReadyNAS NV by Infrant, on the recommendation of my friend Ben Franco, who’s done much research on large disk arrays. The ReadyNAS pretty much rules. I think my long-standing storage woes may finally be over.

readynas status screen

It’s a dedicated Network Attached Storage (NAS) box that does RAID-0, RAID-1, RAID-5, or a proprietary combo of the three called “X-RAID”. X-RAID allows you to start with one disk, move to two, then three, then four, all without rebuilding the RAID or changing RAID levels.

Continue reading ReadyNAS Rules

flattr this!