Is Inverse Kinematics a part of Bullet physics Engine?

oldpotato
Posts: 2
Joined: Fri Aug 17, 2007 9:50 pm

Is Inverse Kinematics a part of Bullet physics Engine?

Post by oldpotato »

I am a newbie for this area and could anyone tell me whether IK is part of bullet? I google it but did not find any good examples for IK in bullet.

Thanks,
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Post by Erwin Coumans »

Right now, Bullet doesn't provide an inverse kinematics (IK) system.

However, further down the line, a reduced coordinate system based on Featherstone, and IK for dynamic controlled characters is planned.

Hope this helps,
Erwin
Antonio Martini
Posts: 126
Joined: Wed Jul 27, 2005 10:28 am
Location: SCEE London

Re:

Post by Antonio Martini »

Erwin Coumans wrote:Right now, Bullet doesn't provide an inverse kinematics (IK) system.

However, further down the line, a reduced coordinate system based on Featherstone, and IK for dynamic controlled characters is planned.

Hope this helps,
Erwin
regarding Featherstone, wouldn't it cause problems for a possible integration of continuous collision detection? the estimated TOI would in fact be dependent on the motion generated during numerical integration(position update). In a constraints based stiff solver, constraint forces are computed, applied and the rigid bodies making up the system are advanced as independent entities, in other words a single rigid body motion would depend only on its state variables during the Euler integration process, so when there is a TOI we have more flexibility.When a TOI is computed we can decide whether to step back the entire system, subsystem, single body and all the combinations we can think of depending on the desidered accuracy and available cpu time. Worst case we will end up with some constraint violations that we will be fixed by error correction. Some collisions/self-collisions maybe missed too because of the fact that we are not considering the entire system.

When we numerically integrate in Featherstone we dont seem to have many choices as the swept motion is much more complicated as it is function of a link's ancestor joints. Further when we step back in time, we would need to step back the entire hierarchy. Not quite sure what kind of approximations could be made here but the constraint based approach seems more flexible and easy to deal with in such cases.

here im specifically referring to the CCD/constraint-solver interaction in an interactive environment where we may want to loose some accuracy in favour of performances.

any thoughts? probably this is more a topic for a separate thread.

cheers,
Antonio
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Re:

Post by Erwin Coumans »

AntonioMartini wrote: When we numerically integrate in Featherstone we dont seem to have many choices as the swept motion is much more complicated as it is function of a link's ancestor joints. Further when we step back in time, we would need to step back the entire hierarchy. Not quite sure what kind of approximations could be made here but the constraint based approach seems more flexible and easy to deal with in such cases.
This topic should be separated indeed.

There are ways to accurately calculate the time of impact (TOI) for hierarchies, by extending the current Conservative Advancement schema that Bullet uses. See this years' SIGGRAPH talk by Young Kim on Catch.

We can use the smallest TOI to advance, so we don't need to rollback: we only advance/integrate in smaller steps based on smallest TOI for an simulation island. To avoid getting stuck in contact situations, we can use a hybrid approach based on TOI _and_ penetration, which would make the solution more robust.

Hope this helps,
Erwin
Antonio Martini
Posts: 126
Joined: Wed Jul 27, 2005 10:28 am
Location: SCEE London

Re: Re:

Post by Antonio Martini »

Erwin Coumans wrote:
AntonioMartini wrote: When we numerically integrate in Featherstone we dont seem to have many choices as the swept motion is much more complicated as it is function of a link's ancestor joints. Further when we step back in time, we would need to step back the entire hierarchy. Not quite sure what kind of approximations could be made here but the constraint based approach seems more flexible and easy to deal with in such cases.
There are ways to accurately calculate the time of impact (TOI) for hierarchies, by extending the current Conservative Advancement schema that Bullet uses. See this years' SIGGRAPH talk by Young Kim on Catch.
i suppose you mean this paper and related talks?:

http://cs.unc.edu/~redon/papers/sm2004.pdf

"nearly interactive rates", that seems a but too slow?:)

my main concern was more on which method is more convenient when we evaluate the advantages/disadvantages of the various possibilities in terms of performances, simplicity, scalability, robusteness etc...

cheers,
Antonio
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Is Inverse Kinematics a part of Bullet physics Engine?

Post by Erwin Coumans »

No, I meant Young Kim's http://graphics.ewha.ac.kr/catch from SIGGRAPH 2007 (and to a lesser extend the older http://graphics.ewha.ac.kr/fast)

Conservative advancement should work fine in real-time, and the concept is quite simple, robust etc, especially when combined with the usual penetration depth recovery. Let's see once we have a Featherstone implementation integrated into Bullet.

Thanks,
Erwin