Surveyor Robotics Journal
   



email: support@surveyor.com

Surveyor Corporation home page

Subscribe to a syndicated RSS feed.

Subscribe with Bloglines

Archives
November 2008
October 2008
September 2008
August 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
Februray 2006
January 2006

       
Fri, 23 Jun 2006

SRV-1 autonomous wander mode and some new buttons

We've posted a test version of SRV-1 firmware along with an update to the SRV1 base station console (SRV1Console), which are downloaded from http://www.surveyor.com/srvdownload/index.html. The firmware and console updates are designed to work together, since some button definitions have been changed. You'll also see a classy new set of buttons on the console, courtesy of Ty at ThinkGeek.com.



Most of the buttons are obvious, but a couple of changes are enable/disable buttons for the IR obstacle detection, and enable/disable buttons for the autonomous wander mode.

The wander mode is interesting - the robot is navigating solely via the video sensor, and while it can get confused by reflective surfaces and lighting changes, it does produce some fun and occasionally impressive behaviors while exploring.

Basically, you orient the robot so that it's looking at a floor surface that defines the space in which it needs to be confined. By pressing the "wander on" button, image characteristics of the floor surface are captured, and the robot will move around, trying to stay within the space defined by that floor surface while not running into things. There's lots of opportunity to improve the image processing and motion algorithms, and it's a good idea to keep an eye on the SRV-1 while its wandering until there is confidence that it won't get itself into trouble, but we look forward to hearing how this works for others.

Here's a brief Quicktime video of the robot in "wander mode". It really is operating autonomously - click on the image to view.


Posted Fri, 23 Jun 2006 21:09 | HTML Link | see additional stories ...

Thu, 15 Jun 2006

SRV-1 firmware update

We've posted a minor update to the SRV-1 firmware, changing the function of the red triangles in the SRV1Console to increase/decrease motor speed, and changing the function of the little yellow and brown icons to turn on or off simple obstacle detection - the robot stops moving forward if it detects an object when this is activated.



The update can be downloaded from

http://www.surveyor.com/srvdownloadsrv1.hex.061506

though it should be saved as srv1.hex before uploading to the robot

Posted Thu, 15 Jun 2006 23:08 | HTML Link | see additional stories ...



notification feature added to SRV1Console

We have added the ability for messages from the SRV-1 robots to trigger HTTP actions, such as calls to email CGI's, message logs, etc. We haven't tried to hook up to an email CGI, though something like http://www.perlfect.com/articles/sendmail.shtml should work. However, we have added a simple echo server into SRV1Console's built-in WebcamSat server so that this feature can be tested.

First, download and install the latest SRV1Console distribution -

http://www.surveyor.com/srvdownload/SRV1Console-061506.zip

Then take a look at srv_notify.config in the main SRV1Console directory. At the moment, there's just a single entry -

SRV-1=http://localhost:8888/echo?msg=SRV1+startup+message

The SRV-1 robot already generates a startup message, so we're just looking for the "SRV-1" string in that startup message. When it's detected by the SRV-1 console, an HTTP request is issued - in this case, it's http://localhost:8888/echo?msg=SRV1+startup+message

Through a browser, you can view the echoed messages here -

http://localhost:8888/echo?action=view

To clear the message list, use -

http://localhost:8888/echo?action=clear

This is a really primitive example, but hopefully shows the possibility of this feature. Basically, by adding various messages to the SRV1 firmware (e.g. motion detect, low battery, stalled motor, etc), we can trigger useful notification messages. A representative srv_notify.config entry might look something like -

Low-Bat=http://www.foo.com/sendmail.cgi?to=admin@foo.com&subject=SRV1+needs+recharge

Posted Thu, 15 Jun 2006 22:51 | HTML Link | see additional stories ...

Fri, 09 Jun 2006

Windows .exe version of SRV1Console; change from javax.comm to RXTX

We now have a Windows executable version of SRV1Console, so the console can be launched with a double-click instead of having to open a DOS/CMD windows and typing a command line to launch Java. This latest version is still distributed in a zip file, though a Windows installer is planned for later in the month. Anyhow, grab it from -
http://www.surveyor.com/srvdownload/SRV1Console.zip
and let us know if there are any problems.

We actually tried to create SRV1Console.exe earlier, but had problems connecting to the USB radio interface through javax.comm. However, after tracking down a similar problem with the Java on the Mac, we switched from javax.comm to the RXTX serial comm library on the PC, and found that using the Windows version of RXTX solved our .exe problem. It's nice when things like this work out.

The only downside is that the RXTX library is a bit more complicated to install on the Mac - you can find instructions in the INSTALL file in
http://www.surveyor.com/srvdownload/RXTX-for-Mac.zip
as you have to run the installer, and then a shell script called fixperm.sh to create a mechanism of locking the serial devices. This is a bit of a pain, but once complete, the serial comm seems to be solid. There's probably a similar procedure for Linux, so more information can be found at http://www.rxtx.org

Posted Fri, 09 Jun 2006 16:55 | HTML Link | see additional stories ...

Wed, 07 Jun 2006

latest news ...

We've been really busy building and shipping robots since releasing the "tracked" version, especially after the SRV-1 got very visible coverage on www.engadget.com, so there hasn't been much time to write about various projects. However, we've caught up for the moment, waiting for a batch of USB radio boards to come from the PCB fabricators (we've moved beyond using the skillet for mounting the SMD components), so it seemed like a good time to update the robotics journal.

One of the production issues we've encountered has been with variation in stiffness of the tank treads - we've developed a procedure to pre-stretch the treads in advance of mounting on the robots, but we're also getting bids from fabricators to build our own treads and hubs. The basic design of the existing drive components is good, but we'd like a somewhat softer material for the treads, and we want to add a flat surface to the inside rim of the hub to host some reflective markings which can be used to add incremental wheel encoder functionality. Creating our own molds will be expensive, but should pay off in the long run.

Regarding wheel encoders, we've received a number of requests for this functionality, and have come up with a very low cost approach, as mentioned above, by marking the inner rims of the hubs with a reflective pattern and using an optical emitter/detector pair to catch the markings as they rotate by, taking advantage of the capture/counter registers on the ARM7. We'll be prototyping this setup next week, and plan to add the functionality to future circuit boards. We'll also look at the possibility of a retrofit kit for existing robots.

Other than that, we have a lot of work to do on the software. The next Java base station console update will include a "notification" feature, so that certain messages from the robots will trigger HTTP requests from the console. Notification examples might include CGI posts that would trigger the sending of emails, SMS or pages, browser alerts, etc, based on motion detection, object recognition, robot functional problems, etc. On the robot firmware side, we're working on development of some basic autonomous behaviors, as well as the framework for coordination of multiple robots through the IR data link. These are big tasks, but we'll hopefully be able to provide some of the basic components that enable others to build interesting applications.

Posted Wed, 07 Jun 2006 17:00 | HTML Link | see additional stories ...