Overview
Components
- Camera (Logitech QuickCam Pro 9000)
- Robot Arm (custom built, Lynxmotion Hi-Tec 645MG)
- Servo Control Board (Yost Engineering, Servo Center, Full Package, USB model)
- Software (Custom built using some open source libraries for the visual processing)
Software
The software is mostly custom built C. We make use of some open source libraries for the visual processing.
Code Block Diagram
Major Variables
- pf: parallel fiber signals – nCenters x 1
- w1,w2: synapse weights – each is nCenters x 1 – initialize to zeros
- xa,ya: actual robot arm position [units will probably be in pixels] – each is 1×1
- xd,yd: desired robot arm position – each is 1×1
- xc,yc: correction factors for robot arm position – each is 1×1
- m1,m2: servo motor angles, in radians – each is 1×1
- l1Est,l2Est: estimated lengths for robot arm segments – each is 1×1
- xErr,yErr: position error between actual and desired arm position – each is 1×1
- c: structure that contains the radial basis function description for the virtual cerebellum. It consists of:
- c1 – pointer to x-positions of rbf centers – nCenters x 1
- c2 – pointer to y-positions of rbf centers – nCenters x 1
- sigma – rbf standard deviation – 1×1
- nCenters – the number of rbf elements -1×1
- receptiveField – receptive field size of the rbf – 1×1
- servo1, servo2: structures containing the servo calibration constants:
- servoMin – minimum servo position (servo units)
- servoMax – maximum servo position (servo units)
- degreesMin – degrees corresponding to servoMin, measured according to the “Arm Calibration” diagram below
- degreesMax – degrees corresponding to servoMax, measured according to the “Arm Calibration” diagram below
Visual Tracking Settings
- In RoboRealm:
- Color Threshold = {170-255} for red, green, and blue
- Center of Gravity
- In camera “settings” tab, default settings, then set manual focus to about 2/3 between left & right
- Room lights need to be off
- Black fabric might be needed to deaden remaining glare spots
Arm Calibration
Pixels Per cm
Code Versions
BMI Code
v070831 Working cerebellum code with virtual arm; c & matlab
v070902 Same as ver 1 with additional code for driving the servos in open loop
v070904 Same as ver 2 with a small bugfix (write 6 bytes, not 5 in “moveservo”) – verified to work using fedora linux, serial cable, portnum 1 (/dev/ttyS0) on “Market”
v070905 Calibration code started
v070919 First fully functioning version – complete system
v070921 Includes data and video
v071010 This version includes an initial attempt to calibrate the camera/arm interaction.
v071018 Camera calibration code has been tested and added.
Computer Vision
v070905 Working vision tracking
v070917 Lightened version of vision tracking
How to Run the Code
Go to D:\Jesse\Computer_Vision
Double click on Computer_Vision.sln “solution” file
We are only considering the “Robot Arm” project
Build -> Build Robot Arm
Debug -> Start w/o Debugging
If it asks, “Never Automatically Apply RightLight Technology”



