|Surveyor Robotics Journal|
Tue, 26 Feb 2008
another fun SRV-1 Blackfin firmware extension - real-time frame differencing
Just added a couple of functions for storing a reference frame and differencing that reference frame against the most recently captured frame. This will be useful for laser range finding, by comparing frames with and without the lasers on, and it will also be quite useful for motion detection.
Here's an example frame sequence:
#1 - normal capture
#2 - normal capture with lasers on
#3 - reference frame captured with lasers off, frame difference shown
#4 - lasers now on, frame difference shown
Here's a motion detection example:
#5 - normal view before capturing reference frame
#6 - differencing enabled, no motion
#7 - differencing enabled, motion detected
More details on this test version of SRV-1 Blackfin firmware are found on the Surveyor Robotics Forum and code is posted to our SVN repository
Thu, 21 Feb 2008
SRV1Console java source code posted
SRV1Console.java can now be downloaded from
To compile -
javac -classpath .:ImageButton:RXTXcomm.jar:wstreamd_embed.jar: SRV1Console.java
Please note that this code is GPL open source, so modifications and extensions are meant to be shared.
Wed, 20 Feb 2008
Test firmware; revised (simplified) bundling of SRV-1 Blackfin board set
In response to user requests, we have recently added a number of features to the SRV-1 firmware, including a failsafe mode as well as support for servos and electronic speed controllers, ultrasonic ranging modules, accelerometers, and I2C devices, as discussed here on the robot forum. While the firmware is available for testing, it hasn't yet been formally released, as a few image processing functions still need to be added, but this is expected to wrap up by the end of the month.
Many of the firmware requests are coming from users who are building their own motorized robot bases or UAVs, and we are finding an increasing number of users want the SRV-1 Blackfin board set without the motorized base. We are glad to see this trend, and to accommodate this, we have reorganized our SRV-1 board bundle to include all of the electronics of the SRV-1 robot except for the battery and motorized base, i.e. the SRV-1 Blackfin Camera board (500MHz BF537 Blackfin and OV9655 1.3Mpix camera), combo radio/motor board, Lantronix Matchport WiFi module, antenna, and 2 laser pointers.
A complete description of the bundle is found here.
Fri, 08 Feb 2008
Transterpreter, occam-pi and concurrency on the SRV-1 Blackfin
I first met members of the Transterpreter development group from University of Kent last year at the AAAI Spring Symposium at Stanford, and was really impressed with their architecture and portability of their tools, as demonstrated by their performance in the competition at the end of the conference - http://www.surveyor.com/cgi-bin/robot_journal.cgi/2007/03/29#091 and http://www.surveyor.com/cgi-bin/robot_journal.cgi/2007/04/09#094.
Since that time, the group has scattered somewhat, with Christian finishing his PhD and moving to France, Jon joining the PhD program at Kent, and Matt returning to the US as a visiting professor at Olin College. However, Matt contacted us a few months ago looking for robots to use in an engineering class, enlisting Jon and others to help with a port of the Transterpreter to the SRV-1 Blackfin. The results are pretty spectacular ...
Matt and his team have built a complete graphical development environment for the SRV-1 using existing Transterpreter tools. You write some code in the occam-pi programming language, hit "Compile", hit "Run", and it uploads your code to the SRV and you're rolling. They have provided an easy way to send and receive text from the SRV-1 as well as images; if the robot transmits an image, the IDE automatically catches the image header and opens up a window of the appropriate size to display the image. They have also written the entire SRV-1 control loop in occam-pi, so that it can be easily modified.
A more complete description of the development environment is found here on the Transterpreter blog, with additional blog posts describing other aspects of the project. This is a very exciting development - projects like the Transterpreter port and the Matlab port mentioned yesterday significantly leverage the core development work we're doing for the SRV-1 Blackfin, and this is very rewarding to see.
Thu, 07 Feb 2008
Matlab support for SRV-1
Professor Ani Hsieh of Swarthmore College has developed a mobile robotics course for the current semester using the SRV-1 with Matlab. The course website is found here -
The SRV-1 Matlab code and description are found via the SRV-1 Robot link, and a very interesting set of class projects are outlined via the Projects link. This looks like a great course ! We look forward to highlighting some of the completed projects.
Tue, 05 Feb 2008
another SRV-1 Blackfin servo control example - Lynxmotion Tri-Track
Here's an example of interfacing the SRV-1 Blackfin camera board and wifi radio module to another motorized base. In this case, it is a Lynxmotion Tri-Track Base with Dimension Engineering Sabertooth 2x10 motor controller that are driven from the SRV-1 board set.
A build log is found here in the Surveyor Robotics Journal, and a project blog is found here
Nicely done !
Mon, 04 Feb 2008
driving servos and speed controllers from the SRV-1 Blackfin
We have several interesting projects in the works involving motorized drives other than the SRV-1 robot base. One of these project is a unique unmanned aerial vehicle (UAV) that uses a pair of counter-rotating fixed-blade props for lift and a couple of servos that shift the battery weight around to effect steering, similar in principle to the old Hiller Flying Platform.
This is called a coaxial rotor because we have a motor assembly with two brushless DC motors that are aligned with the shaft of one motor passing through the hollow shaft of another motor - see http://www.maxxprod.com/pdf/CR2805.pdf. The motors are driven with R/C airplane electronic speed controllers that take servo-style PPM (pulse position modulation) signals, we are able to modify the Blackfin processor's timer functions to a waveform that can drive PPM circuits. We are using the two timer channels that otherwise were driving the SRV-1 robot H-bridge with PWM waveforms to drive to two prop motor speed controllers. Another two servo signals come from the two pins that can alternatively be used as a second UART on the Blackfin, and the using a 5VDC regulator off the battery to power the servos and speed controllers. Note that the 3.3V logic of the Blackfin has no trouble driving the 5V logic of the servos.
The SRV-1 Blackfin is used here with our WiFi radio board that carries the Matchport 802.11g radio module. For remote control and monitoring, we modified some button definitions of SRV1Console to generate the flight controls, but didn't have to change any of the java code ...
The servo controls from the Blackfin work quite well. Our steering is another matter, as you can see from the following video clip ...
click here if you can't access the YouTube clip
In any case, this is a good start on a really interesting project, and the next step will be to add sensors for attitude (pitch/roll) and rotation (yaw) However, You can read more about this and other related projects, plus find links to download test firmware from this thread on the Surveyor Robotics Forum