PDA

View Full Version : Hierarchy problems


atamasan
08-26-2009, 03:17 AM
Hello.(At first, I'm sorry I'm not good at writing english)
As I posted before, I'm trying to move the hand model by using 16 sensors(patriot).
The hand model and my right hand do the same move, this is my purpose.
I've been thinking about hand bone's hierarchy.

I get 16 bones like this:
rh=viz.add(hand.cfg')
rbi_1_0 = rh.getBone('bone index 1-0' )
rbi_1_1 = rh.getBone('bone index 1-1' )
rbi_1_2 = rh.getBone('bone index 1-2' )
rbm_2_0 = rh.getBone('bone middle 2-0' )
rbm_2_1 = rh.getBone('bone middle 2-1' )
rbm_2_2 = rh.getBone('bone middle 2-2' )
rbr_3_0 = rh.getBone('bone ring 3-0' )
rbr_3_1 = rh.getBone('bone ring 3-1' )
rbr_3_2 = rh.getBone('bone ring 3-2' )
rbl_4_0 = rh.getBone('bone little 4-0' )
rbl_4_1 = rh.getBone('bone little 4-1')
rbl_4_2 = rh.getBone('bone little 4-2')
rbt_0_0 = rh.getBone('bone thumb 0-0')
rbt_0_1 = rh.getBone('bone thumb 0-1')
rbt_0_2 = rh.getBone('bone thumb HOLDER')
rbw=rh.getbone('bone ~ROOT')

And link each bones to patriot.

For example, when I want to move my index finger, I think rbi_1_0 is affected by rbw's rotation(euler) data, rbi_1_1 is affected by rbi_1_0's rotation data, and rbi_1_2 is affected by rbi_1_1's rotation data because of the hierarchy.

So, each bones rotate more than the real rotation.
I was just wondering if I could remove the influence of the hierarchy.
So I tried some transform matrix methods, but I could not solve it.

Please tell me if you know some methods or useful vizard commands for my problem.
Thank you for reading my message.

farshizzo
08-28-2009, 03:09 PM
Are you applying your rotations in world coordinates? Also, have you tried apply the rotations in order of hierarchy (i.e. apply first to bones at the top of the hierarchy)?

atamasan
08-29-2009, 07:44 AM
Thank you for your message.
I noticed that I used rotation matrix in each sensor's local coordinates.
So, I am going to rewrite my codes.
I have to study coordinate more.

Thank you again.

atamasan
09-06-2009, 08:38 PM
Sorry, another quastion.
I tried some hierarchy calculation for each bones.
When I bend my fingers, the influence of hierarchy wasn't seen.

But...I bent my fingers when I turned my palm inside out, the hand model's fingers were bent. But it was a inverse rotation compared to the real rotation. When I clench my fist, the hand model's fingers were bent backward.

I'm confused what is the reason for that.
Do you know any idea?

Thank you for reading.