Machine Vision Localization System

From Mech
Revision as of 12:14, 16 January 2009 by Hwang (Talk | contribs)
Jump to: navigation, search

Contents

Overview

This is a machine vision system that tracks multiple targets and can send out the positions via the serial port. It was developed specifically for the Swarm Robotics project, but can be adapted for other uses. It is based upon the Indoor_Localization_System, but has several enhancements and bug fixes. Refer to Indoor_Localization_System for a basic overview of the setup of the system and the workings of the patter identification algorithm.

Major Enhancements/Changes

  • The system will now mark the targets with an overlay and display coordinate data onscreen.
  • The serial output is now formatted for the XBee radio using the XBee's API mode with escape characters.
  • The calibration routine has been improved, and only needs to be performed once.
  • A command interface for sending out commands via the serial port has been added.
  • The system will discard targets too close to the edge of the camera frame to prevent misidentification due to clipping.
  • The origin of the world coordinate is now in the middle, not the lower left corner.
  • The GUI displaying the camera frames is now full sized instead of a thumbnail. However, if your monitor isn't big enough, you can resize them.

Major Bug Fixes

  • Two major memory leaks fixed.
  • Calibration matricies are now calculated correctly.
  • File handling bug that causes an off-by-one error in LoadTargetData() fixed.

Camera Calibration Routine

The camera calibration routine used is explained in the document Image_Formation_and Camera_Calibration.pdf by Professor Ying Wu.

Target Patterns

The target patterns and preprocessor can be downloaded at Indoor_Localization_System#Pre-processing_program_source_with_final_patterns:.

Operation

Setting up the Cameras

Camera setup.png


The cameras should be set up according to Indoor_Localization_System with one caveat: targets at the edge of the camera frame will now be discarded. This prevents misidentification of patterns if one or more dots in the pattern fall off the screen, but it also means that there must be enough overlap that when the target is in the dead-zone of one camera, it is picked up by another camera.

Targets found in the margin are discarded.


The frames must overlap; overlap by the width of one target to ensure that it will never be discarded by both cameras.


Running the Program

Calibration

Twenty-five points are used to calibrate the cameras.
Personal tools