[ODE] Modelling robotic arm grip

Antonio Tejada Lacaci wildfred at teleline.es
Tue May 6 10:45:02 2003


Hi ODErs,

I want to use ODE for Roburgger, my robotic arm IDE
(http://www.telefonica.net/web/atejadalacaci/pfc/pfc.html). 

Right now I use a "needle" approach to grab pieces from the world:
whenever the grip closes, I find the first object enclosing the TCP
(the tip of the grip) and I attach that object to the robot, as if the
TCP was a needle punching the object.
When the grip opens, if it has an object attached, I release that
object in its current position and coordinate frame (the attached
object coordinate frame is modified everytime the grip moves).
You can see a video of this behaviour at
http://www.telefonica.net/web/atejadalacaci/pfc/grabanddrop.avi

This simplistic method works, but I thought that if I'm going to add
ODE to handle collisions and world object dynamics, there should be a
way ODE could handle grabbing for me (otherwise I'd just stick to
needling the object and removing it from ODE list of bodies).

I do the kinematics myself, so I don't plan to model the robot at all
using ODE (no joints nor motors). So what I've been trying without any
luck is to model just the grip and the world objects using ODE and
hope that when I close the grip, the friction will make pieces to be
lifted.

>From my kinematics system, the only information I have from the grip
is the current and previous grip position. 

In my ODE tests I have two vertical geom-only pieces side by side with
a gap in the middle (the grip). 
When I "close" the grip, the two pieces come closer and collide
against whatever body is in the middle, so far so good. 

Then, I've tried several things to model the grip lifting behaviour
but none worked:
	- Apply a vertical mass*gravity "up" force to the colliding
object in order to cancel gravity. This normally makes the object
bounce high, which is not exactly what I meant (I apply the force for
every collision point and during all the time there's a collision with
the grip).
	- Disabling gravity on the object colliding with the grip.
This makes the object float, but on its own it doesn't lift the
object.
	- Using the difference of grip height from one iteration to
the next, I apply an impulse when the difference is not zero. This is
the only way I get something close to what I want: the object lifts a
bit, but the bit it lifts doesn't always match the bit the grip
lifted, and it requires a lot of tweaking to make it match. I think
that the fudge factor I use should be mass & gravity dependent as well
(none of which I currently factor).
	- Same as before, but I modify the friction in the contact
point to friction "up". This doesn't produce any visible results.

Has anybody tried to model a grip using ODE?

Am I trying to abuse my physics system?

Thanks for reading!


Cheers!

Antonio Tejada Lacaci