ILIKEBOT
Investigation in LabView with Inverse Kinematics Exhibiting Behavioral Object Tracking
This project will involve getting the robot arm working with some kind of vision system to reach out for objects and try to grab them. Collaborators welcome. Watch this space for progress details.
Project Instigator: NathanRackliffe
Build program in Labview
This is working on the EZ kit board, but not with the handy board. Since most of the widgets are the same, this process can begin now.
Goal: April 5
Handy Board Wigets can be found here: C:\Program Files\National Instruments\LabVIEW 7.1 Embedded\vi.lib\Add-Ons\BF Motor Control\HandyBoard
Operate Arm from Labview
Once the basic LabView program is running on the handy board, we can begin to control the robot arm. The arm consists of 6 servo joints arranged to allow a wide variety of motion. The manipulator can grip objects, but does not have any way to detect the amount of force applied. Since these are servo mechanisms there is no way to detect the actual position of the arm because the servos are all one-way. Care must be taken to avoid damaging the arm or the environment around it.
Goal: April 8
Build functionality to command the arm to servo into a specific position
Once we can control the basic movement of the arm, additional logic must be developed to connect the separate joints into a full arm. This is where the inverse kinematics comes in. This math gets a little bit hairy, but appears doable. Inverse Kinematics is where we give the robot a destination position and orientation and it figures out how to get there. This process is complicated by the fact that there may be multiple solutions to the problem (two ways the arm can reach the same destination.) or none at all.
Goal: April 19
Obtain vision processing program that can detect blobs and return position.
Phission is supposedly close to completion and would be ideally suited to this project. The vision system needs to detect the object of interest, and report it’s position. Ping-pong balls could be considered as one such target. They are a uniform color and can fit within the manipulator’s grips. The position reported by the vision system can either be in a plane (x,y) or in the whole space available to the arm (x,y,z) based on the success in detecting objects.
Goal: April 26
Connect the arm to the vision output and tell the arm to position itself by the blob
With the vision system in place and the inverse kinematics telling the arm how to get where it needs to, we are ready to merge the two systems together. This process should be relatively straightforward as it only involves passing the returned position from the vision system to the destination position of the arm and handling any needed transformations to the new coordinate system.
Goal: May 4
Tell the arm to grab the object – Crush into oblivion
When all of the above is completed, the robot will be able to see objects in its field of view and reach out to them. It will then attempt to grab the object that it sees. The grips might need to be “stickyfied” in order to hold smooth objects like the ping pong ball mentioned.
It should behave much like an infant but with less accuracy in obtaining the object. The object grasped will also be exposed to far less drool that with a human infant.
Goal: May 10
Here's a picture from http://www.hobbytron.net of the robot arm we're using; the Robix Rascal.