home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
vis-ftp.cs.umass.edu
/
vis-ftp.cs.umass.edu.tar
/
vis-ftp.cs.umass.edu
/
pub
/
CMU
/
cmu_files
/
desc
/
desc.stereo
< prev
next >
Wrap
Text File
|
1990-12-11
|
3KB
|
65 lines
Robert:
The stereo and sonar data were taken from the same vehicle on a single
run. For reference, this data set is from May 21, 1986. The vehicle took
69 steps straight forward, each step being 3.866 inches or 0.0981 meters.
Thus, there are 70 stereo pairs, including the pair taken before the first
step.
The physical set-up of the cameras was as follows:
height: 37 1/2 inches = 0.952 meters from floor
left camera: 0.09 meters left of vehicle centerline
right camera: 0.11 meters right of vehicle centerline
overall baseline: 0.2 meters
The nominal focal points were 27 inches = .6868 meters forward
of the vehicle origin (set attached figure). The cameras were slightly
forward and above the sonar ring. The ring is described in file desc.sonar.
The cameras were calibrated with Hans Moravec's image warping
calibration. This algorithm computes bi-cubic polynomnials that are
applied to the actual (row,col) image coordinates and return image
coordinates in an "ideal" image. This ideal image has a focal length of 1,
square aspect ratio, and an ideal camera axis parallel to the vehicle axis.
The coefficients of the polynomials are in files
may21.laxi left camera, actual to ideal
may21.laix left camera, ideal to actual
may21.raxi likewise for the right camera
may21.raix
The data in these files is read by routines in the file coordtrans3.c.
I have included a sample program that reads the calibration data, prompts
for the baseline, then prompts for left and right column coordinates and
computes the nominal depth associated with that disparity. For example,
250 (left), 220 (right) yields a depth of about 7.2 meters (baseline is 0.2
meters). The files associated with the sample program are:
test.c main program
getcal3.c calls routines to load calibration data
coordtrans3.c the routines that read the cal. data
matrix.c an arbitrary-bounds matrix package
matrix.h declarations for matrix package
test.h miscellaneous declarations
makefile puts it together
This stuff was written in C on a Sun 3 running Unix 4.2. Look at test.c to
see how to use the routines. Basically, you call "getcalibration" (in file
getcal3.c) to read the calibration data, then use the macro RCI to transform
actual image coordinates into ideal image coordinates:
RCI (row, col, x, y, camera)
"camera" selects polynomicals for the left or right camera. Use the macro
definitions LEFT and RIGHT. The images have 480 rows, 512 columns, and 8 bits per pixel (ie. no color). The "actual" coordinate system has (0,0) in
the upper left corner. The "ideal" system has the origin at the piercing
point, X increasing right and Y increasing up. Macro RCI is defined in file
test.h along with its inverse IRC and some other macros.
This method of calibrating takes care of slight camera rotations,
the piercing point, focal length, and aspect ratio. I have also computed
values for these with another calibration program I wrote. Send me mail if
you want that information too.