RoboBOB
UPDATED!!!!!
RoboBOB is designed to track objects using it's vision and when signeled, grab it with it's closest hand. The initial vision portion has been completed. Using Roborealm software interfaced to a Parallax PSC servo controller, RoboBOB will now track an orange ball when placed in his field of vision. Next step will be to finish wiring the arm servos, impliment the API interface to the Roborealm software & create the arm control software.
For all those interested;
The arms were made with parts from http://www.lynxmotion.com
The servo controllers came from http://www.parallax.com
The vision software came from http://www.roborealm.com/
*** Update 28 Apr 2010 ***
I've updated some additional photos showing the various parts of RoboBOB.
I have also included the Roborealm VBScript that I used.
---------------------------------
' If this is the first time the script has been ran,
' set the real World (Servo) Coordinates to Midpoint.
If Script_Count=0 then
SetVariable "SERVO_Rotate", 150
SetVariable "SERVO_Tilt", 150
end if
' Set Constants for vision center, Vision/RW Aspects.
SetVariable "Vision_Width_Center", 176
SetVariable "Vision_Height_Center", 144
SetVariable "Width_Aspect", 91
SetVariable "Height_Aspect", 104
'Translate Offset of Object in Vision
SetVariable "Obj_Vis_Off_X", GetVariable("COG_X") - GetVariable("Vision_Width_Center")
SetVariable "Obj_Vis_Off_Y", GetVariable("COG_Y") - GetVariable ("Vision_Height_Center")
'Translate Object's Real World Offset
SetVariable "Obj_RW_Off_X", (GetVariable("Width_Aspect") * GetVariable("Obj_Vis_Off_X"))/1000
SetVariable "Obj_RW_Off_Y", (GetVariable("Height_Aspect") * GetVariable("Obj_Vis_Off_Y"))/1000
'Calculate Object's Real World Center
SetVariable "Servo_X", GetVariable("Servo_Rotate") + GetVariable("Obj_RW_Off_X")
SetVariable "Servo_Y", GetVariable("Servo_Tilt") + GetVariable("Obj_RW_Off_Y")
'If Object is "Close Enough", Move head to look at object
If GetVariable("COG_BOX_SIZE")>50 then
SetVariable "SERVO_Rotate", Cint(GetVariable("Servo_X"))
SetVariable "SERVO_Tilt", Cint(GetVariable("Servo_Y"))
End If
------------------------------------
Grab object while tracking them using live video.
- Actuators / output devices: 16x Hitec servos
- Control method: Usb interface for camera & servo controller.
- CPU: DELL PC
- Operating system: Win XP
- Power source: Wall adaptor
- Programming language: Roborealm
- Sensors / input devices: USB webcam
- Target environment: anywhere