Computer Vision

From HotDec

Revision as of 19:33, 11 August 2006; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

Contents

On-board Vision

Troy is trying to make a computer that sees things. Troy is using an Extended Kalman Filter(EKF) in order to figure out the current location of the hovercraft given the visual information obtained by the on-board stereo cameras.

Getting the Code

To obtain the code for the Stereo Filter that troy wrote use the following command:

svn co svn://legend.me.uiuc.edu/hotdec/vf_filter_stereo

Using the System

To compile and load onboard vision code onto the SBC:

make
make load9    <--- edit 'load' script to change dest dir on sbc

Then start overhead vision system:
// Directions for starting overhead vision system:
//
// First start vision server on tale.mie.uiuc.edu:
//  - ssh root@tale.mie.uiuc.edu
//  - server_startup.sh
// Then start vision clients on each vision machine
//  - ssh root@vision#.me.uiuc.edu (# = 1,2,3)
//  - vclient_startup.sh



Run the code on SBC:
/home/becicka/mod/mtest 800
insmod /home/becicka.mod/cpldmcu.ko
./vf_filter 0 -t 30  (craft top 0, run for 30 seconds)

To view the results in MATLAB:
(copy all matlab scripts (*.m) from /home3/becicka/Matlab/vf_filter)
matlab7 (start matlab)
copy the data file from the SBC:
sbc9#:scp vf_filter.dat becicka@elegy:~/HoTDeC/svn/vf_filter_stereo
then in matlab, run 'plot_data'

Resources

OpenCV

The On-board vision system used the OpenCV(Open Computer Vision) libraries for a lot of the mathematics and basic vision functions. Function used in the on-board vision system include cvGoodFeaturesToTrack which was used by Troy along with cvCalcOpticalFlowPyrLK to find good feature points in the current image to track and apply the EKF to.

OpenCV related resources can be found at their Yahoo!Groups website, and their Wiki. Another useful resource with respect to the OpenCV materials is this API. While it is not up to date with the most recent release of OpenCV but it is also not very old and provides many useful explanations of different objects and functions.

Camera Calibration

The EKF algorithm written by Troy needs some basic information about the camera system which can be found using the Camera Calibration Toolbox for Matlab. Information and Instructions on how to do this can be found here. The instructions are quite straightforward and easy to follow. The information from this calibration helps fill out the data found in the capture_dist_param.h file in the on-board vision code.

Note: Code for capturing the calibration images is at /home3/becicka/HoTDeC/vision/onboard_vision/camera_calib

Overhead Vision

The overhead Vision System is a system of 6 firewire cameras and 4 servers which relays overhead vision data about hovercrafts that are on the HoTDeC.

Getting the Code

There are two pieces of code available on subversion. One is the client code for the clients that reside on the three vision computers and handle communications with the firewire cameras and relaying relevant information to the servers. To Obtain the Vision client Code:

svn co svn://legend.me.uiuc.edu/hotdec/vision_client

The other piece of code is that of the server which resides on tale. The server is the hub for communication between the vision machines, the user applet, and the hovercrafts. To Obtain the Vision Server Code:

svn co svn://legend.me.uiuc.edu/hotdec/vision_server

New Vision Client

Feanil is currently working on a new possible vision client. He has recently finished a blob detector to this end.