From: Sander v. D. <sgv...@gm...> - 2008-05-26 08:20:35
|
Hey, On Mon, May 26, 2008 at 5:13 AM, Feng Xue <hen...@ma...> wrote: > Considering the two points, here is a draft solution: > 1. Not add collider to the body that is in another body. > This idea is from Joschka and has finished. > I think is is a good idea, perhaps this also solves the problem when two agents get beamed into each other? Though have to take care when bodies penetrate each other due to sponginess of one of the bodies. > 3. Add the pairs that should not collide. In the current > nao model, we need to add these pairs: > (1) torso and left thigh > (2) torso and right thigh > (3) left shank and left foot > (4) right shank and right foot > > (5) torso and left shoulder > (6) torso and right shoulder > > If I understand Space::HandleCollide correctly (lib/oxygen/physicsserver/space.cpp, lines 97-103) it is already default in a Space that two bodies that are directly linked to each other do not collide. This can make 3 and 4 work if a universal joint is used, 5 and 6 are already directly connected. For 1 and 2 this won't help I guess, since there are 3 DOFs in them and only 2 fit in a universal joint. For now explicitly setting which things can't touch each other will work, however I'm still for using better collider shapes in the end. Beside this, but related to the joints: I have noticed a lot of drift in joint positions with the Nao model. If a limb is pushed against another part of the body, it's joint moves significantly. For instance if the right leg is pushed to the left, the hip joint moves to the right. There is an ODE parameter to control this, I tried to find it quickly now but haven't found it. I hope you know what I mean :) Sander |