Let's Make Robots!


Grab object while tracking them using live video.
RoboBOB_-_Head_Servos.JPG1.33 MB
RoboBOB_-_Lower_Arm.JPG1.93 MB
RoboBOB_-_Upper_Arm.JPG1.67 MB
RoboBOB_-_Servo_Boards.JPG1.72 MB
RoboBOB_-_Flexibility.JPG1.87 MB


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


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

The design I came up with myself.

I purchased the individual parts from Lynxmotion, I've included the link below.


Hope this helps.


It is just cool and i am interested about arms of your prototype what are they or from where i can get such  piece of matrial???

Could u  send me other photos of this prorotype please!!!