[ODE] can"t get friction to lift an object with a robot arm

Patrick Enoch Hendrix_ at gmx.net
Fri Sep 14 10:41:34 MST 2007


a client did a similar simulation. I remember he had to set mu to  
very high, if not dInfinity. It was sufficient to place the two  
"grabbing boxes" right next to the "box to be picked up"  - e.g. the  
sides were touching and it was not necessary to have them overlap.

movie, see here: (middle one at the bottom of the movies)
http://www.ramjac.com/rodeo/rodeo/gallery_2.html

patrick

On 02.09.2007, at 20:31, pastor wrote:

>
> hey there,
>
> I am currently working on making a robot arm grasp an object and  
> place it
> somewhere. I calculate the arm configuration externally and in  
> order to get
> some interaction between the robot and the boxes (modeled as  
> bodies) I set
> some geoms (dCappedCylinder) around the fingers and update their  
> position
> and orientation according to the current robot configuration. During
> grasping everything seems to work.. the finger collide with the  
> object an
> pushes it into the right directions... after closing the gripper the
> collision remains but I cannot lift this stupid box. I played with  
> all the
> parameters... what am I doing wrong ? Waht needs to be done to the  
> amount of
> force which allows me to lift an objet... the pase some code (which  
> shows
> the current set of parameters... I had a lot of different  
> setttings...) so
> that you have some idea what I really do... I hope this helps. I also
> include a little movie which shows this behaviour...
>
> http://manet.usc.edu/~pastor/miss_placing.avi miss_placing.avi
>
> hope you understand my problem...
>
> I really need some advice ! so... thanks for any help
>
> peter.pastor at gmail.com
>
> ---------------------------- code
> --------------------------------------------------------------
> static void nearCallback (void *data, dGeomID o1, dGeomID o2) {
>   dBodyID b1 = dGeomGetBody(o1);
>   dBodyID b2 = dGeomGetBody(o2);
>
>   dContact contact[MAX_CONTACTS];
>
>   int i;
>   for(i=0; i<MAX_CONTACTS; i++)
>     {
>       /*       contact[i].fdir1[0] = 0.3; */
>       /*       contact[i].fdir1[1] = 0.3; */
>       /*       contact[i].fdir1[2] = 1.0; */
>       /*       normalize3DArray(contact[i].fdir1); */
>       /*       // contact[i].fdir1[3] = 0; */
>       contact[i].surface.mode = /* dContactMotion1 | *//*   
> dContactApprox1 |
> */ dContactSoftERP /*| dContactSlip1 | dContactSlip2 */ /* | 
> dContactFDir1 */
> |/* dContactBounce | */ dContactSoftCFM  | dContactMu2;
>       contact[i].surface.mu = dInfinity;
>       //contact[i].surface.mu = 1;
>       contact[i].surface.mu2 = dInfinity;
>       // contact[i].surface.bounce = 0.005;
>       // contact[i].surface.bounce = 0;
>       // contact[i].surface.bounce_vel = 0.8;
>       // contact[i].surface.soft_cfm = 1e-04;
>       contact[i].surface.soft_cfm = 1e-05;
>       contact[i].surface.soft_erp = 2;
>    }
>
>   int numc = dCollide(o1, o2, MAX_CONTACTS, &contact[0].geom,
> sizeof(dContact));
>   if(numc) {
>     for(i=0; i<numc; i++) {
>       dJointID c = dJointCreateContact(World, contactgroup, contact  
> + i);
>       dJointAttach(c, b1, b2);
>     }
>   }
> }
>
>
> -- 
> View this message in context: http://www.nabble.com/can%22t-get- 
> friction-to-lift-an-object-with-a-robot-arm-tf4363211.html#a12436406
> Sent from the ODE mailing list archive at Nabble.com.
>
> _______________________________________________
> ODE mailing list
> ODE at ode.org
> http://ode.org/mailman/listinfo/ode



More information about the ODE mailing list