Re: can"t get friction to lift an object with a robot arm
Patrick Enoch <[email protected]>
| Newsgroups | gmane.comp.lib.ode |
|---|---|
| Message-ID | <[email protected]> |
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 > > [email protected] > > ---------------------------- 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 > [email protected] > http://ode.org/mailman/listinfo/ode