| Surveyor News ... | |||||
|
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() A version of code for the new Lisp interpreter looks like this: (define (stop) (robot 5)) 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 13:08 | HTML Link | see additional stories ... Thu, 13 Nov 2008Robot Lisp for Surveyor SRV-1/SVS A new version of Lisp has been added to the latest test version of Surveyor SRV-1/SVS firmware, as discussed on the Surveyor Robotics Forum. The code is based on "Scheme In One Defun" (SIOD) by George J. Carrette. Lisp can be run interactively or loaded with a program from the flash buffer. There is a rich set of built-in functions, based on the Scheme dialect - cons, car, cdr, set-car!, set-cdr!, +, -, *, /, <, >, =, eq?, eqv?, assq, read, print, eval, define, lambda, if, while, begin, set!, or, and, quote, oblist, copy-list, gc-status, pair?, symbol?, number?, quit, not, null?, reverse. We have extended this with some SRV-1/SVS specific functions -
So the command (robot 8) will move the robot forward, and (robot 5) will stop it You could define the commands - (define fwd 8) (define back 2) (define stop 5) (define left 4) (define right 6) Then the command (robot fwd) would have the same effect as (robot 8) Here is a very simple program to control the robot from the keyboard, using the digits 8, 5, 2, 4, and 6 as defined above, and 0 to exit the program ... (while (> (set! x (input)) 0) (robot x)) This is just the beginning. It is very easy to extend the language, and the next step is to add some image processing functions to enable search for objects(colors), avoidance of colors, etc. Posted Thu, 13 Nov 2008 16:06 | HTML Link | see additional stories ... Sun, 02 Nov 2008one more pass at color segmentation + edge detection Code for transferring data between processors via SPI bus on the SVS (stereo vision system) is in place, so now we need to decide what data to transfer for the purpose of building basic depth maps. There is no question that we will eventually need to move toward more robust feature detectors such as SIFT or SURF, but we should be able to get useful results from the simple combination of an edge detector and basic color segmentation. The previous robotics journal post showed an edge detector combined with a 16-color segmentation based on just 4 levels of U and 4 levels of V, but no Y component. Shown below is 16-color segmentation based on the 'vz1' filter with 4 levels of Y, 2 levels of U and 2 levels of V. Combined with the edge detector, this approach seems to provide better feature differentiation than the UV-only approach, so that is the approach we will use as a basis for correlating between left and right views, though it is easy enough to change to other segmentation schemes.
displayed using SRV1Test.java Posted Sun, 02 Nov 2008 14:18 | HTML Link | see additional stories ... Sun, 19 Oct 2008combining color segmentation with edge detection Continuing the exploration of edge detection algorithms for the SRV-1 / SVS firmware, we finally had a chance to explore an earlier idea of combining color segmentation with edge detection as a possibly richer approach to feature extraction. Here are some preliminary results - basic 16-color segmentation:
16-color segmentation combined with edge detection:
There results are very encouraging - scene features stand out much more strongly with the addition of edges. Note that for edge detection, we are still using just one horizontal and one vertical comparison (1x3) rather than a full 3x3 convolution kernel. The 3x3 approach didn't actually provide significantly better results and computation was a lot slower. The discussion of this effort continues here - "Surveyor Robotics Forum: new firmware with edge detect: srv-blackfin-101708" Next step is to use this approach to begin building depth maps with the SVS. Posted Sun, 19 Oct 2008 13:40 | HTML Link | see additional stories ... Fri, 17 Oct 2008edge detection for Surveyor SRV-1 / SVS A new test version of firmware with edge detection has been posted. Download link and discussion are found here - "Surveyor Robotics Forum: new firmware with edge detect: srv-blackfin-101708" This is just a first pass using a somewhat modified Sobel edge detector. Note that edges which are primarily horizontal will appear as cyan, while edges which are primarily vertical will appear as orange. We could take an even more aggressive approach to classification along the lines of a Canny edge detector, as we have the gradient information.
At the moment, this code only makes one horizontal and one vertical comparison (1x3) as opposed to the standard 3x3 convolution kernel, but it is comparing Y, U and V values as opposed to the standard Y-only approach. Changing to a 3x3 convolution on all 3 components will be tested next. Then we will be using this along with our color segmentation code to begin building depth maps for the SVS. Posted Fri, 17 Oct 2008 13:54 | HTML Link | see additional stories ... Mon, 29 Sep 2008"stereo.c" - source code for cross-platform SVS console posted stereo.c is a C-based cross-platform (Win, OS/X, Linux) console for the Surveyor SVS employing SDL libraries. It provides live anaglyph stereo viewing , archiving to PPM files with scripts to encode to video, simple robot control via keyboard, and the ability to image map commands with mouse clicks on the viewing window.
More details are found on the Surveyor robot forum. Download links and documentation are found here - www.surveyor.com/stereo The SDL libraries provide a very nice framework for the new console. Though we have not yet taken advantage of this, several GUI libraries and OpenGL provide SDL support. In theory, we should be able to interface to shuttered stereo viewing glasses and other VRML-compatible displays that are supported by Open GL. Here is a video that was captured from the Surveyor SVS mounted on an SRV-1 base under control of the new console. Frames were archived by the console and subsequently encoded to AVI using imageMagick and memcoder, then uploaded to www.vimeo.com. Anaglyph (red/cyan) glasses are required for proper viewing.
download robot_test001.avi (12Mb)
Posted Mon, 29 Sep 2008 09:36 | HTML Link | see additional stories ... Tue, 23 Sep 2008Surveyor SVS officially launched !
Press release here - Nice coverage already on - Posted Tue, 23 Sep 2008 11:10 | HTML Link | see additional stories ... Fri, 19 Sep 2008Pericynthion SRV1-X IMU/GPS/SD expansion card now available !!!
The Pericynthion SRV1-X expansion board for Surveyor SRV-1 Blackfin camera and SVS stereo vision system has just started to ship. The SRV1-X employs a 40MIPS dsPIC33 processor and includes 3-axis accel, 3-axis gyros, compass, GPS (choice of Trimble Lassen iQ or u-blox LEA-55), as well as 10 extra 12-bit A/D channels, lots of servo channels, and a MicroSD flash card socket. It measures 2.1" x 2.6", and costs in the range of $320 (w/Trimble GPS) to $390 (w/u-blox GPS) with a full set of sensors.
The photo above shows the SRV1-X configured with SRV-1 Blackfin camera and Matchport b/g Wifi radio.
Here, the SRV1-X is attached to the new Surveyor SVS (stereo vision system). Full details on the SRV1-X, including order details, are found here - http://www.pericynthion.org/srv1x. Posted Fri, 19 Sep 2008 11:01 | HTML Link | see additional stories ... Tue, 16 Sep 2008RoboRealm support for Surveyor SVS stereo vision system
A test version of RoboRealm supporting the Surveyor SVS has been posted (v1.8.21.1 or later) - download from http://www.roborealm.com/registration/index.php. It provides a variety of stereo viewing modes as well as access to the wealth of RoboRealm's existing image processing functions. Download the configuration file - surveyor_stereo.robo and edit to set the correct IP address. Also, for web based viewing, download http://www.surveyor.com/blackfin/srv.html. srv.html should be placed in the RoboRealm folder next to the index.html file. Make certain to enable the RoboRealm WebServer function (Options->Web Server). Depth map functions (stereo correspondence) are still in the works, but we should see some test versions of those soon. Posted Tue, 16 Sep 2008 16:50 | HTML Link | see additional stories ... Sat, 30 Aug 2008Sentience Stereo Vision Software Version 0.1 posted for Surveyor SVS This initial release of Sentience Stereo Vision Software for Surveyor SVS contains algorithms for camera calibration, sparse edge/corner based stereo correspondence and a dense disparity map.
The software is written in C# and has been built by the author on Windows using Visual Studio 2005 or GNU/Linux systems using MonoDevelop. I was able to build the project on Mac OS/X 10.4 (PPC) after installing Mono. By the way, you will find a number of interesting articles about stereo vision on the main Sentience Project web page. Posted Sat, 30 Aug 2008 15:06 | HTML Link | see additional stories ... Sun, 24 Aug 2008Upgrading an SRV-1 robot to stereo vision ... Here is a brief description of the process to upgrade an SRV-1 Blackfin robot to stereo vision. We unsolder the motor leads and battery wire from the original motor controller or combo motor/radio board, remove the circuit boards, then check the wire lengths to make certain they will reach the connectors on the underside of the SVS controller. More often than not, we do have to lengthen those wires, especially if we are mounting a pan/tilt head to the robot base.
Note that we have added connectors to the motor and power wires, using Jameco 100766 connector pins with Jameco 100812 plastic blocks. Also, we have added somewhat taller standoffs to keep the antenna cable and 32-pin headers clear of the robot base. For the original dual-motor bases, we add 7/16" standoffs. For the new quad-motor base, we would use 1" standoffs. The Blackfin and Matchport should be running at 2500kbps with latest firmware (srv-blackfin-081408.zip at time of this post). The final step is to move the Blackfin camera, Matchport radio, and dipole antenna cable from the original boards and base to the SVS board before mounting the SVS to the robot base. In some cases, we also have to change the lens on the original camera board from 6.5mm to the newer 3.5mm wide angle lens in order to match the second Blackfin camera. Here is the end result of an upgrade ...
It is actually the second upgrade for this particular robot, which belongs to RoboRealm. It started life as an SRV-1 ARM7 with Zigbee a couple of years ago for use in their original SRV-1 support, and was upgraded to Blackfin with WiFi almost a year ago for development of their updated SRV-1 Blackfin support. Now it is headed back to them for development of stereo vision algorithms, and we look forward to the results ! Posted Sun, 24 Aug 2008 12:05 | HTML Link | see additional stories ... Wed, 20 Aug 2008Surveyor SVS (stereo vision system) - first experiments with automated color segmentation for stereo disparity calculations While others are working on much more sophisticated stereo disparity algorithms using host computing power, I thought we might be able to build some basic matching functions into the Blackfin firmware using simple color matching for correlating objects between the separate views. The key to this approach is to segment the images into a minimal set of colors that can be used for simple image comparisons. Color segmentation is an interesting research problem which has led to the definition of a variety of color spaces, as discussed here and here, as well as a variety of feature processing models, as described here. One of the goals in creating the SRV-1 Blackfin and the SVS was to provide an easily accessible platform for experimenting with the color segmentation challenge. As described above, a simple approach would minimize the number of colors in the corresponding stereo images and then look for matches. Below, you will see the original stereo pair (scaled down for this display), a 16 color segmentation that uses 4 luminance and 4 chrominance levels (2 bits Y, 1 bit U, 1 bit V - "211"), and a 16 color segmentation that uses 4 U and 4 V levels (2 bits U, 2 bits V, and no luminance component - "022").
The 211 approach seems to provide reasonable feature definition, but correlation of colors between left and right images isn't actually so great. The 022 approach doesn't seem to be making very good use of the range of colors, but the feature correlation almost looks usable. So the next step is to find a segmentation of the UV-only space that more efficiently maps actual colors. Along these lines, we divided the U and V color spaces into 16 segments each, and then built a tool to display the U vs V histogram in 2D.
The next step is to define a segmentation that looks for clustering or local maxima in the 2D histogram. So stay tuned ... Posted Wed, 20 Aug 2008 15:39 | HTML Link | see additional stories ... Tue, 19 Aug 2008Inertial Navigation + GPS + MicroSD Expansion Card for SRV-1 Blackfin Camera This is very cool ! One of the developers working with the SRV-1 Blackfin Camera on the MIT SPHERES program has designed a new expansion card with support for a full suite of inertial sensors, compass, gps, and MicroSD storage.
Designated the SRV-1X, it includes:
Posted Tue, 19 Aug 2008 10:58 | HTML Link | see additional stories ... Mon, 11 Aug 2008Progress with SRV-1 Blackfin Stereo Vision System Sentience stereo vision software developer Bob Motram has been working for a few weeks with one of the prototype SRV-1 Blackfin stereo vision systems, and he has already developed a slick calibration procedure to correct for wide-angle lens distortion, as described here - http://streebgreebling.blogspot.com/2008/08/surveyor-project-calibration.html
Initial tests of stereo correspondence procedures have started, as discussed here - http://streebgreebling.blogspot.com/2008/08/visual-disparity.html
You can track Bob's progress via his blog or via his source code. Posted Mon, 11 Aug 2008 13:01 | HTML Link | see additional stories ... Live Internet control of SRV-1 Blackfin Robots - BP Explorer This is a fantastic demo of SRV-1 robot remote control through the Internet - www.bpexplorer.com.au
The images above show some fixed camera views of the "set" as well as snapshots captured by one of the robots. Five robots are available for control at any time, though sometimes the queue to access the site is quite long. The BP Explorer demo is intended to highlight some of BP's green technologies, including the solar panels that are used to recharge the robots. Kudos to the amazing job Ogilvy New Zealand did in putting this together for BP Australia. Posted Mon, 11 Aug 2008 11:34 | HTML Link | see additional stories ... | |||||