Surveyor Robotics Journal
   



email:
support@surveyor.com

web:
Surveyor Corporation

rss:
Subscribe

Archives
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
December 2008
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

       
Tue, 30 Jun 2009

In the works ...

We haven't posted much development news lately, but there are several significant projects that should soon see the light of day ...
  • onboard depth mapping for the SVS (stereo vision system) - we have a port in the works of Bob Mottram's Sentience stereo vision code to the SRV-1 Blackfin processors. this is a feature-based mapping approach that computes distances to various object features in the overlapping stereo cameras fields of view. the project is progressing nicely, and we hope to make a firmware update with this capability available soon.

  • GPS + compass + tilt + 8-channel A/D board - we have working prototypes of the new version with uBlox5 gps and new 3-axis Honeywell compass, with I2C interfaces to all onboard devices. once we have nailed down a production schedule for these modules, details will be posted. production prototype photos here (final pcb will be red):





  • optical flow - we have integrated some optical flow functions into the core SRV-1 firmware, and just need to create a graphical display of results and some functions in picoC to access the vector data. this should emerge in a few weeks in a firmware release.

  • autorun function for picoC - we have a tested version of code which enables the SRV-1 to launch directly into a picoC script from flash storage on system startup, and just need to generate a release version of firmware that includes this feature.

  • ruggedized robot base - Inertia Labs has developed several prototypes of larger SRV-1 robot bases with 4WD, planetary gearhead motors, shaft encoders, larger battery, etc. we don't have a production schedule or pricing yet, but these new bases look GREAT, and we look forward to getting them into production. here's a photo of the latest prototype with SVS and pan/tilt head:

Posted Tue, 30 Jun 2009 12:53 | HTML Link | see additional stories ...

Sun, 28 Jun 2009

Carnegie Mellon "RoboGuard"

"RoboGuard" is a project at Carnegie Mellon University using the SRV-1 Blackfin robot as a development platform for automation of security personnel personnel functions. A variety of sensors have been added to the base SRV-1, including:
  • IR based line following
  • Motion detection
  • Compass
  • RFID reader
  • Battery monitoring
The project is can be accessed on Google Code - http://code.google.com/p/roboguard/

Video of a test run is shown here:


Posted Sun, 28 Jun 2009 14:26 | HTML Link | see additional stories ...

Thu, 25 Jun 2009

Status of new SRV-1 RCM 20 servos / 16 analog in / 16 gpio / micro-SD expansion board

The SRV-1 RCM expansion board has gone into production. An initial batch of 100 boards has been ordered with delivery scheduled for end of July, though 50 boards have already been allocated.





Schematics are found here - Preliminary user guide is found here - The RCM has been priced at $175 ($157.50 to education customers). If interested in ordering, please contact support@surveyor.com. As noted above, only 50 boards are currently available from this initial batch.

Posted Thu, 25 Jun 2009 10:23 | HTML Link | see additional stories ...

Fri, 12 Jun 2009

Surveyor + RoboRealm bundle !

Starting next week, we will begin bundling CDROM's with a registered version of RoboRealm robotic vision software at no additional cost (an $89 value) with purchases of the Surveyor SRV-1 Blackfin Robot, SRV-1 Blackfin Camera + Wifi, and SVS stereo vision system from the Surveyor online store.



RoboRealm has been customized for the Surveyor robot controllers, and they have introduced a series of tutorials for the Surveyor robots and controllers called "Fun with Surveyor". The tutorials include keyboard driving, joystick driving, chasing a light, chasing a red ball, chasing movement, finding a target, and following lines.

Target finding:




Line following:




Visit "Fun with Surveyor" for more details.

Posted Fri, 12 Jun 2009 20:00 | HTML Link | see additional stories ...

Thu, 11 Jun 2009

Some price increases on Monday, June 15

Due in large part to the falling US dollar, we need to make a few pricing adjustments. Effective Monday, June 15, 2009, the following price changes will take effect:
  • SRV-1 Blackfin Robot - $495 (up from $475)
  • SRV-1 Blackfin Camera + Wifi - $350 (up from $325)
Other prices are unchanged (e.g. the SVS will remain at $550). If you already have a quote from Surveyor for a future order, your prices on that order will be unchanged. New orders received before Monday will receive old pricing, even if delivery is post-June 15. Also, academic discount rates remain unchanged. If you have any questions about pricing, please email support@surveyor.com.

Posted Thu, 11 Jun 2009 23:52 | HTML Link | see additional stories ...

Mon, 01 Jun 2009

We now have a twitter feed


twitter.com/surveyorcorp

Posted Mon, 01 Jun 2009 12:29 | HTML Link | see additional stories ...

Fri, 22 May 2009

Updated version of software-based horizon finder for SRV-1 Blackfin camera

Here's an updated version of the software-based horizon finder for SRV-1 Blackfin. An actual slope and intercept is now being computed, and some filtering has been added ...


Posted Fri, 22 May 2009 18:22 | HTML Link | see additional stories ...

Wed, 20 May 2009

Nintendo DS control console for SRV-1 Blackfin



Peter Dove has written a nice tutorial on how to control the Surveyor SRV-1 Blackfin Camera from a Nintendo DS game console. He is using DevKitPro to build the NDS application, generating the SRV-1 commands as defined in the SRV_protocol, and using a JPEG decode library on the NDS to display the live video feed from the SRV-1, similar to what we did for the SRV-1 control console for the Google Android G1 phone.

Full NDS / SRV-1 project details are found here - http://roboticjourney.blogspot.com/

Posted Wed, 20 May 2009 15:26 | HTML Link | see additional stories ...

Sat, 16 May 2009

Software based horizon finder for SRV-1 Blackfin camera



Noting the interesting discussion about optical flow and horizon finders in this DIYdrones thread, we undertook to add a simple horizon finder to the SRV-1 Blackfin Camera firmware. The algorithm uses a basic edge detection function that is already build into the SRV-1, dividing the image into 16 columns and searching from top-to-bottom for first edge hits. From the video, it appears that the edge threshold could be set a bit lower, but the results are pretty good without any tuning or filtering.

The Google Code project is here - http://code.google.com/p/surveyor-srv1-firmware/ . Next step is to add a least-squares fit to draw a line through the edge segments, then compute pitch and roll angles based on the line slope and intercept.

Posted Sat, 16 May 2009 13:29 | HTML Link | see additional stories ...

Wed, 13 May 2009

Update to Delphi SRV-1/SVS console for Windows

There have been major additions to Andrew Hutchison's DelphiSRV console for Windows users of the SRV-1 and SVS.



Besides fully stereo viewing support and customizable command keys, he has added full support for i2c devices:



and an especially nice edit mode for onboard C interpreter programs:



The DelphiSRV console can be downloaded from www.surveyor.com/stereo/DelphiSRV.zip

Posted Wed, 13 May 2009 13:08 | HTML Link | see additional stories ...

Sat, 09 May 2009

SRV-1/SVS navigation module provides GPS, compass, 3-axis tilt and 8-channel 12-bit analog input

We just received the prototypes of a new sensor board we developed for outdoor navigation. This navigation module includes a Honeywell HMC6352 compass, ST LISLV02DQ 3-axis tilt sensor, Analog Devices AD7998 8-channel A/D, and interface to GPS (we're using the Locosys LS20031). Interfaces to the compass, tilt sensor and A/D are via I2C bus, and interface to the GPS is via UART. Everything runs at 3.3V. The board measures 31mm x 38mm (1.25" x 1.5"), and weighs around 5gm without GPS (18gm with GPS).



The 8-channel A/D enables interface to other navigations sensors such as gyros, barometric pressure, thermopiles, infrared range sensors, etc, supporting the development of a complete IMU solution. The prototype module, as seen above with the Locosys GPS, has an unfinished appearance without solder mask or silk screen, but these features will be present in the production version. We will likely ship the board without headers, but the prototype is functioning properly and is already supported in SRV-1/SVS firmware.

The schematic is found here.. Component placement is shown below:



The navigation module is expected to be priced at $150 including Locosys LS20031 5Hz GPS, and we should have production quantities available in 30 days. If interested, please send an email to support@surveyor.com

Posted Sat, 09 May 2009 12:00 | HTML Link | see additional stories ...

Tue, 05 May 2009

Robot Learning with a Biologically-Inspired Brain (BECCA)



A group at Sandia National Labs has used the SRV-1 Blackfin robot as the platform for development of a learning model based on exploration of an environment. The robot's software "brain" is BECCA, a brain-emulating cognition and control architecture. BECCA gives the robot the ability to learn from its experience and to develop very simple problem solving strategies.

Source code for the project is published at becca.sourceforge.net

A description of the underlying robot learning model, called "S-learning", is found here - RohrerICCBR09ms.pdf

Posted Tue, 05 May 2009 17:35 | HTML Link | see additional stories ...

Tue, 28 Apr 2009

A really small system for SRV-1/SVS code development ...

For an upcoming trip, I wanted to create a very compact SRV-1/SVS code development environment, so I picked up an Eee PC 901 netbook and a DLink DWL-G370AP wifi access point.



It doesn't get much smaller than this. In the photo, behind the robot with SVS is a little black rectangle that is the wireless access point - it is powered by the computer's USB. There is a full size Mac keyboard further in the background that gives some sense of scale. The Eee keyboard is cramped, but certainly functional.

The Eee came with the Xandros Linux distribution, but I replaced it with Ubuntu's Eee version (called "easy peasy" for unknown reasons), and had little difficulty installing the Blackfin gcc toolchain, Java SDK, and SDL libraries. Still on the list is to add the Google Android SDK. Other than the normal set of hassles with migrating to a new system, the setup was relatively painless. Thus far, perhaps 4GB of the available 20GB solid state disk has been used.

Posted Tue, 28 Apr 2009 20:04 | HTML Link | see additional stories ...

Tue, 21 Apr 2009

New expansion board for SRV-1 Blackfin supports 20 servos, 16 analog in, 16 gpio and micro-SD

We have a couple of expansion cards in the works. One which we will discuss in a few days is intended for robot GPS navigation, while another, called the RCM, is designed to greatly expand the capabilities of the SRV-1 Blackfin Camera for robot control.

The RCM, short for "robot control module", creates a fully functional augmented microcontroller (video, audio and data streaming and control, wifi, comm. ports, multiple I/O and servo controllers) geared toward education and hobby robots that could replace embedded PC104 and mini-ITX computers. Inspiration for this project came from multiple years of participation in robotic competitions, the most recent (and most demanding) being the RoboCup Rescue Robot League.



Developers of the RCM wanted to create a system that fit well into the learning goals of a high school engineering program from LEGO; through the SHARP IRs, and R/C servo motors; on up to IFI Victor and Dimension Engineering Sabertooth motor controllers, and Hokuyo laser scanners. The result is an expansion board for the SRV-1 Blackfin that supports 20 servos, 16 12-bit analog input channels, 16 GPIO signals, additional I2C and SPI expansion channels, and a micro-SD memory card slot. Voltage level converters provide support for 5V devices, and an external 5V supply can be added to drive large numbers of servos.



The schematic for the RCM can be found here. The RCM is expected to be priced at $150 ($135 to education customers), and production volumes should be available in 4-6 weeks. For further information, please contact support@surveyor.com.

Posted Tue, 21 Apr 2009 01:46 | HTML Link | see additional stories ...

Sun, 19 Apr 2009

Just how large are the SRV-1 Blackfin Camera and SRV-1 Blackfin Robot ?

We often hear the comment from our users that the SRV-1 Blackfin Camera and SRV-1 Blackfin Robot are a lot smaller than expected. Although we publish dimensions in millimeters and inches for our various products, sometimes the numbers don't register. So here are a couple of photos that might help with perspective.





The hand holding the camera boards and robot is normal size (medium-large male glove), if that helps with calibration.

Posted Sun, 19 Apr 2009 16:43 | HTML Link | see additional stories ...

Sat, 11 Apr 2009

New C interpreter for SRV-1 / SVS

After numerous experiments over the past 3-4 years with various scripting languages (including C, Basic, Lua, Lisp and Scheme) for autonomous operation of the SRV-1, we finally found a good solution. Latest versions of SRV-1 Blackfin firmware have incorporated a powerful new open source C interpreter called picoC.

picoC is quite compact, but it supports a substantial subset of the full C language syntax, and we've extended the language with a large collection of robot-specific functions for actuator and sensor interface, image processing and data manipulation. Thus far, we have added 43 robot functions, and the list will continue to grow.

A description of the core language and robot extensions is found at http://www.surveyor.com/C.html.

An introduction to the new C interpreter is found here on the Surveyor Robotics Forum

Posted Sat, 11 Apr 2009 11:19 | HTML Link | see additional stories ...

Thu, 09 Apr 2009

ICEbear Light JTAG Adapter available to order

We just received a small batch of the section5.ch ICEbear Light JTAG Adapter. ICEbear is a JTAG adapter that has been optimized for use with Blackfin processors. We mainly use the ICEbear for programming the onboard flash memory of the SRV-1 Blackfin Camera, and it has been a big timesaver for this purpose.

ICEbear Light can be ordered from our online store or directly from section5.ch.







Posted Thu, 09 Apr 2009 12:02 | HTML Link | see additional stories ...

Sat, 04 Apr 2009

New signal breakout board for SRV-1

Adding new sensors and actuators to the SRV-1 Blackfin camera and robot just got a lot easier. Our first batch of signal breakout boards has arrived.



We are selling the bare breakout board for $6, board with 32-pin header for $16, and board with 32-pin header + battery header + 3.3V 1A regulator for $32. You can order the boards with headers from the Surveyor online store, and bare boards direct from Surveyor.



The middle board with just the header and no voltage regulator is ideal for the SRV-1 Blackfin Robot, as it stacks between the Blackfin processor card and radio/motor card (after a little surgery on the robot faceplate), as shown below:



More details on the Surveyor Robotics Forum.

Posted Sat, 04 Apr 2009 15:09 | HTML Link | see additional stories ...



Soccer robot using SRV-1 Blackfin Camera




Our partner Netspectrum has developed a very interesting set of soccer robot controls using the SRV-1 Blackfin Camera and a biped robot. More information is found on the Surveyor Robotics Forum

Posted Sat, 04 Apr 2009 11:35 | HTML Link | see additional stories ...

Sat, 14 Mar 2009

YARB robotic blimp now available for purchase

The YARB robotic blimp, as chronicled in www.surveyor.com/YARB.html, has proven to be a very useful platform for testing various configurations of cameras, sensors and control consoles.



While it has always been possible for others to purchase the various components to build YARB, we are now offering a complete version of the robotic blmp with 66-inch helium envelope, gondola with dual rotors and thrust vectoring, SRV-1 Blackfin camera with 2 lenses and 2 camera headers, 802.11bg Wifi radio, battery and charger.



YARB supports other sensors, include LV-MaxSonar-EZ1 ultrasonic ranging modules and Honeywell HMC6352 digital compass. As shown below, it is supported by a variety of control consoles, including host-based SRV1Console and SRV1Test, as well as a
Google Android G1 phone-based console, as shown here:



YARB is designed only for indoor operation. If you are interested in outdoor operation, note that we are exploring various options for larger envelopes and motors, so contact support@surveyor.com with your requirements.

Price for YARB is $875. Please check our online store for YARB availability.



Posted Sat, 14 Mar 2009 15:43 | HTML Link | see additional stories ...

Mon, 09 Mar 2009

Expansion board option for standalone SRV-1 Blackfin Camera

We are now offering an expansion board option for standalone SRV-1 Blackfin cameras.



Intended for those who have purchased a standalone SRV-1 Blackfin Camera, the SRV-1 Base Expansion Module includes a 3.3V regulator for battery operation (4.5V - 18.0V), header for Matchport radio, option for XBee radio header, extended pins on underside of board for 32-pin SRV-1 expansion header as well as 2-pin battery power header.

This board does not include the FAN8200 H-bridge or laser pointer drivers provided with the Wifi Expansion Module, nor does it include any radio modules. However, for users interested in interfacing the SRV-1 Blackfin Camera directly to serial ports or other radios, this is a convenient option.

Check our online store for availability.

Posted Mon, 09 Mar 2009 13:30 | HTML Link | see additional stories ...



New low-light camera option for SRV-1/SVS Blackfin

We just received our first batch of camera boards with Omnivision OV7725 low light color sensors.


OV7725 pixels are 6um x 6um, which is 4x larger than OV9655 pixels, and the chip is optimized for low light conditions. Resolution is limited to 640x480, 320x240, or 160x120, but capture frame rate is as high as 60 frames/second (actually, 55fps because of our 22MHz clock) in all resolutions.

The new camera modules are now available for $55 with choice of 3.6mm f2.0 lens or 2.2mm f2.5 lens.
Check our online store for availability.

Note that an SRV-1 firmware update is required to auto-detect the OV9655 or OV7725 module.

Here is a comparison in equal low light conditions of the OV7725 (top) and OV9655 (bottom), both with 3.6mm f2.0 lens. The OV9655 lens actually isn't out of focus, but camera noise reduction filtering creates that impression. In full light conditions, images from the two modules are comparable, with OV9655 images somewhat more fully saturated than the OV7725.


Omnivision OV7725 Camera Board


Omnivision OV9655 Camera Board

Posted Mon, 09 Mar 2009 12:35 | HTML Link | see additional stories ...

Sun, 15 Feb 2009

Google Android G1 control of Surveyor SRV-1 robots - code now available



A few weeks ago, we hinted at a new control console we were building with the open-source Google Android G1 phone for wireless remote control of the open-source SRV-1 robot controller. The Google Code project is now live, plus we have some cool videos to show the Android console in action.

The Google Code project is found here -
We actually have three different demo projects. The first was built by the main developer of the Android application - Jeffrey Nelson of Macpod Software - for his Forknife2 Robot (don't miss the cupcake snapshots - robots love cupcakes !). The second was control of a prototype SRV-1 Blackfin Robot, and the third was a relaunch of our YARB Robotic Blimp. No changes were made to the SRV-1 firmware for any of these projects.

Here are the videos:







Posted Sun, 15 Feb 2009 23:33 | HTML Link | see additional stories ...

Fri, 13 Feb 2009

Doubling the capacity of the SRV-1 / SVS motor controller

The SRV-1 and SVS use a Fairchild FAN8200 H-bridge for PWM motor control. This is a 2-channel H-bridge rated at .65A / channel continuous with 1A / channel peak.



For much larger motors, there are a variety of suitable higher capacity motor controllers such as the Dimension Engineering Sabertooth, Devantech MD23, etc. For smaller motors, the FAN8200 has generally been adequate for the SRV-1 robot base and a variety of other motors. However, we sometimes we find that we need a bit more current capacity, especially with motors wound for higher speeds. In this situation, we have found an easy solution by piggybacking a second FAN8200 to double the current handling capacity.

Because there is minimal clearance between the FAN8200 and the Matchport WLAN radio on the top side of the combo radio/motor board, we found it best for clearance and heat dissipation to solder the second FAN8200 to the underside of the radio/motor board, as shown here:



The main thing to watch is that the alignment of the FAN8200 pins matches between top and bottom, and to use plenty of solder to get a good contact. After soldering the chip, the leads are clipped for clearance:



That's all that is needed. The resulting configuration should be good for for driving motors at 1.3A / channel continuous (2.6A total) or 2A / channel peak (4A total).

Posted Fri, 13 Feb 2009 23:14 | HTML Link | see additional stories ...

Fri, 06 Feb 2009

More progress on neural net engine ...

"ng" (grab blob to create neural input pattern) and "nb" (compare blob against trained patterns) are now working, though certainly in need of lots of testing.

Code repository:
http://code.google.com/p/surveyor-srv1-firmware

Forum discussion

Here's an example session -



vc0100200070130150250
##vc 0



vb0
##vb0
2111 - 118 188 91 188

ng4   (this is where we grab a blob,scale it to 8x8, and store it as a new pattern)

ni   (initialize the net)
##ni - init neural net
nt   (train the net)
##nt - train 10000 iterations

nb0   (check that the pattern was learned)
##nb
0 0 0 0 71 7 0 0 0 0 0 0 0 0 0 0

then after moving the robot slightly

vb0
##vb0
2137 - 126 196 92 189
nb0
##nb
0 0 0 0 78 6 0 0 0 0 0 0 0 0 0 0

The "nb" command matches the input pattern from the largest blob against the patterns that the neural net has already learned. You can see that the best match is with pattern #4 (counting from 0). The detector seems to be pretty sensitive to small changes, so more work is needed, but at least we have a starting point.

Posted Fri, 06 Feb 2009 17:52 | HTML Link | see additional stories ...

Sun, 01 Feb 2009

Neural Net Engine for Surveyor SRV-1 / SVS

This long-awaited projected, which started two years ago, is finally reaching fruition. As discussed on the Surveyor Robotics Forum, neural net code is included in the latest firmware build (020109 or later).

Initially, we are using the neural net for pixel pattern matching. We are using 8x8 pixel patterns, and there are 16 pre-programmed patterns which are easily changed, e.g.

unsigned char npattern[NUM_NPATTERNS * 8] = {
0x18, 0x7E, 0x7E, 0xFF, 0xFF, 0x7E, 0x7E, 0x18, // #0 solid ball
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // #1 solid square
0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x18, // #2 cross
0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, // #3 box
0x18, 0x7E, 0x66, 0xC3, 0xC3, 0x66, 0x7E, 0x18, // #4 circle
0xC3, 0xC3, 0x24, 0x18, 0x18, 0x24, 0xC3, 0xC3, // #5 xing
 ...
 ...
};

You can display a pattern (0-f) using the "nd" command, e.g.
nd5
##nd 5
** **                  ** **
** **                  ** **
       **            **
             ** **
             ** **
       **            **
** **                  ** **
** **                  ** **

You can replace a pattern using the "np" command
np57830303030307800
##np 5
nd5
##nd 5
     ** ** ** **
          ** **
          ** **
          ** **
          ** **
          ** **
     ** ** ** **

Look at font8x8.h and you'll find a full set of 8x8 ASCII patterns that would be suitable for replacing the pre-programmed patterns -



Once you have your patterns,

1. send "ni" to initialzed the network with random weights
2. then send "nt" to train the network on the stored set of patterns
3. then use "nx" to test the network against various patterns

For example, after adding the 'I' character as pattern 5, I tried
nx3030303030303030
##nx
0 0 1 0 0 97 0 0 16 0 0 0 0 0 0 5

and you can see that it matches best against pattern 5

The next step is to add the "nb" command for matching blobs against patterns. The blob needs to be scaled into an 8x8 pattern to match, and there is an issue with aspect ratios, as demonstrated here




These patterns will be okay, because they occupy the full width and height of a template. The problem will occur with characters such as 'I' or numbers such as '1' which don't occupy the full width, or '-' which doesn't occupy full height, and I am open to suggestion on how to handle this. Once we have scaling working properly, we can directly connect the blob search to the neural pattern matching. At that point, we will add functions to the built-in C and Scheme interpreters for accessing these features.

Posted Sun, 01 Feb 2009 13:15 | HTML Link | see additional stories ...

Sat, 31 Jan 2009

Google Android G1 + Surveyor SRV-1



Just got our first live video running from the SRV-1 on an Android G1. Above is a screenshot of the emulator running the video feed, but this is running on the actual G1 phone as well. Motion control for the robot is next. More details to follow.

ps: huge thanks to Jeffrey Nelson, creator of the Forknife Robot

Posted Sat, 31 Jan 2009 17:41 | HTML Link | see additional stories ...

Wed, 28 Jan 2009

adding a GPS to the Surveyor SVS / SRV-1

Last week, I added a Locosys LS20031 GPS to my SVS setup. At the moment, it is using UART1 at 57600 baud (standard configuration for the LS20031 from Sparkfun) on the left Blackfin, but plan to use GPIO pin 31 or 32 with a software-only UART when we have a chance to finish that code. The latest firmware (srv-blackfin-012509) has a command "$g" to dump the data from the GPS to the console, but one line in main.c has to be uncommented in order for this to work -
      //init_uart1(); // use UART1 with GPS until GPIO soft-UART is ready

The setup is quite simple. I soldered a 4-pin header to the LS20031 as shown here -



and then ran a lead from the left-most pin on the GPS to pin 1 (3.3V) on the 32-pin header, a lead from the right-most pin on the GPS to pin 2 (GND) on the 32-pin header, and a lead from the pin next to GND on the GPS to pin 6 (UART1 RX) on the 32-pin header.



Finally, I put a block of non-conducting foam under the GPS to isolate it from the SVS.



This same setup works with the SRV-1. Only work remaining is to parse the incoming NMEA strings and move the RX line from UART1 to a GPIO pin once the soft-uart code is ready.

As mentioned on the robotics forum, to make this easier, we will be adding a 4-pin header for the GPS and another header for a Honeywell HMC6352 compass on the next version of the SRV-1 radio/motor board, so no wiring will be required.

Posted Wed, 28 Jan 2009 14:12 | HTML Link | see additional stories ...

Fri, 09 Jan 2009

new console for Surveyor SVS (stereo vision system) on Windows

Andrew Hutchinson of LochTurret.com has developed a very nice console for the Surveyor SVS using Delphi. The console supports the SRV-1 motor controls, lasers, image processing functions, range, stereo anaglyph rendering, etc, with provision for custom-designed functions as well.





The console can be downloaded from -
      http://www.surveyor.com/stereo/DelphiSRV.zip

Posted Fri, 09 Jan 2009 18:01 | HTML Link | see additional stories ...

Thu, 08 Jan 2009

just moved surveyor.com to a new server

This should resolve the significant performance issues we had with the previous server, especially on the robot forum. The transition was reasonably easy, but it is likely that we broke a few links in the process. If you see any problems, please notify us by email at support@surveyor.com. Thanks !


Posted Thu, 08 Jan 2009 16:40 | HTML Link | see additional stories ...

Sun, 04 Jan 2009

Robot NASCAR - modifying a stock r/c car for robot control

With the new year, I was reminded of the Robot Magazine RoboRacer project and my HPI Micro RS4 1:18 scale r/c car that had been gathering dust for 2+ years. I took a stock SRV-1 Blackfin robot controller, added connectors to the switched battery power and 2 servo signals, and mounted the Blackfin with little trouble to the RS4.

This is stock photo of an unmodified RS4 -


Here is my RS4 with the r/c receiver removed, ESC (speed controller) moved toward the front of the frame, and SRV-1 Blackfin board set with Wifi radio mounted on standoffs -


The underside of the SRV-1 radio/motor board with pins 5 and 6 of the expansion header connected to the servo input signals for steering and speed control -


The RS4 is controlled via Wifi connection to the same java console we use to control the Surveyor SRV-1 Blackfin Robot, though a joystick control would be much more effective than the button commands shown below. For those familiar with the SRV1Console, the only change was a redefinition of the 'M' motor commands in srv.config to 's' servo commands, e.g. changing
      button.2=buttons/forward.png
      command.2=4D323200
to
      button.2=buttons/forward.png
      command.2=73303100



Next step is autonomous control. A race track is not complicated visually - the processor needs to differentiate between ground and walls, and eventually be able to detect other cars on the same track. Orientation and track position are more complicated - we might want to add road signs for visual marker beacons and perhaps use different color markings on the left and right walls. The design of the track will "steer" some of the decisions on the best approach to image processing. This is a cool project, and it would be nice to see it gain some "traction".

Posted Sun, 04 Jan 2009 17:04 | HTML Link | see additional stories ...

Fri, 26 Dec 2008

SRV-1 Blackfin now plays chess !

Okay ... this is a bit off-the-wall, but I came across a very nice chess engine called TSCP - Tom Kerrigan's Simple Chess Program, and couldn't resist the exercise of porting it to the SRV-1 Blackfin camera board.

TSCP isn't going to take down any chess grandmasters, but this is a pretty good engine, and it fits into slightly more than 3kB of code space. The code is currently loaded into SDRAM rather than L1 cache, but it could run 4x faster just by changing the srv1.x load table. There is a set of book openings, "book.txt", but to incorporate them, we had to add some firmware commands to read and write other flash sectors to store the data. At the moment, the book functions aren't generating random openings, but we should have that fixed soon.

This is what the program looks like when invoked using the 'C' command via a terminal connection:


Besides being an interesting exercise in porting new functions to the SRV-1, part of the concept was that someone might eventually want to add vision processing functions to actually recognize chess piece positions on a board and even a manipulator to move the pieces. If anyone went to that much trouble, they might want a stronger chess engine or an adaptive engine that learned, but TSCP is certainly a good starting point.

Discussion of this latest version of firmware, along with download links, is found here.

Posted Fri, 26 Dec 2008 18:47 | HTML Link | see additional stories ...

Tue, 16 Dec 2008

"Teaching AI Concepts Using a Robot as an Assistant"

As presented at the Fourth UK Workshop on AI in Education, Cambridge, 9th December 2008, the Surveyor SRV-1 robot has been used very effectively as a tool for teaching AI concepts.

"Teaching AI Concepts Using a Robot as an Assistant" was presented by Eleftherios Karapetsas and Demos Stamatis, Alexander Technological Educational Institution of Thessaloniki. They used a stock SRV-1 robot, but added an optical sensor for odometry, as discussed here on the Surveyor Forum



Likewise, default SRV-1 firmware was used as a starting point, though some functions were added to build upon existing image processing functions in the firmware.



The results were excellent, as described in the technical paper and presentation, accessed here -
     http://dces.essex.ac.uk/staff/mfasli/eventorganisation/AIinEducation4/Paper3-Karapetsas.pdf
     http://dces.essex.ac.uk/staff/mfasli/eventorganisation/AIinEducation4/PPP3-Karapetsas.pdf

Posted Tue, 16 Dec 2008 18:47 | HTML Link | see additional stories ...



Surveyor SRV-1 / SVS firmware now archived on Google Code

We have a new home for the open source SRV-1 / SVS firmware where you can browse the source code online:

     http://code.google.com/p/surveyor-srv1-firmware/

This site hosts an SVN server, so you can directly check out the source code using the following svn command, which will save everything to a blackfin/ subdirectory under your current working directory:

     svn checkout http://surveyor-srv1-firmware.googlecode.com/svn/trunk/ .

Google provides a list of interesting SVN clients that might be useful in managing the download process. Take a look at the following link and let us know if any of these are particularly noteworthy:

     http://subversion.tigris.org/links.html

We will continue to post code archives in zipped form on surveyor.com, but expect that the Google Code archive will become the preferred means of accessing the SRV-1 / SVS firmware.

Posted Tue, 16 Dec 2008 17:59 | HTML Link | see additional stories ...

Sun, 23 Nov 2008

Laser pointer ranging function added to SRV-1 firmware

We now have a laser_range() function which uses the laser pointers and onboard camera in combination to estimate distance to the nearest obstacle. The function is accessed by console with 'R' or 'r' commands, the C interpreter via "range()", or the Lisp interpreter with "(range)". The 'r' console command dumps lots of diagnostic data, in case you want to see what the laser_range() function is thinking.

Here is a sample program for the C interpreter using the range() function:
main()
{
    int x;
    char ch;

    ch = 0;
    while (ch == 0) {
        x = range(); /* user laser pointer ranging */
        print("range = " x);
        if (x < 30) {
            motors(-50 , 50);
        } else {
            motors(50, 50);
        }
        delay(500);
        ch = input(); /* continue until any console input */
    }
    motors(0, 0);
}

A version of code for the new Lisp interpreter looks like this:
(define (stop) (robot 5))
(define (left) (robot 4))
(define (right) (robot 6))
(define (forward)
    (begin
        (robot 8)
        (delay 500)
        (robot 5)
    )
)
(define (back)
    (begin
        (robot 2)
        (delay 500)
        (robot 5)
    )
)

(define (branch)
    (begin
        (set! x (range))
        (print x)
        (if (< x 30) (right) (forward))
    )
)

(while (not (signal))
    (branch)
)

Note that while the Lisp version is longer, most of the code is creating some library functions such as stop, left, right ... that can easily be used later. A detailed discussion of the new firmware version is found here on the Surveyor Robotics Forum.

Posted Sun, 23 Nov 2008 18:08 | HTML Link | see additional stories ...