OpenSense - Kinematics with IMU Data Example

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Peter Murphy
Posts: 1
Joined: Mon Aug 09, 2021 10:36 am

OpenSense - Kinematics with IMU Data Example

Post by Peter Murphy » Mon Aug 30, 2021 4:18 pm

Dear OpenSim,

I recently installed OpenSim 4.2 on my Windows laptop. I have been looking closely at the "OpenSense - Kinematics with IMU Data" example which processes Xsens IMU data to animate a skeleton via inverse kinematics. The example is very helpful.

To better understand how the IMU Placer Tool converts the IMU data from the Xsens coordinate system to the OpenSim coordinate system, I've set the "Space fixed Euler Angles from (XYZ) from IMU space to Open" to [0,0,0] and also disabled heading correction. When I do this the output printed to the Messages window inside the OpenSim GUI is the following:

Loaded model Rajagopal_2015 from file
C:/Users/peter/Documents/OpenSim/4.2/Code/Matlab/OpenSenseExample/Rajagopal_2015.osim
No heading correction is applied.
Processing pelvis\_imu
Computed offset for pelvis_imu
Offset is
[-0.0515822,-0.91695,-0.395654]
[-0.283693,0.393314,-0.874541]
[0.957527,0.0671338,-0.280421]

Typically, matrices are indexed by their i, j-th element where i represents the row index and j represents the column index.

Question #1: Can you confirm the above output format corresponds to a rotation matrix with the following (i, j) indexing?

R = [r(1,1) , r(1,2), r(1,3)]
[r(2,1) , r(2,2), r(2,3)]
[r(3,1) , r(3,2), r(3,3)]

Question #2: Can you confirm that the intent of the above rotation matrix is to rotate a vector from the xsens sensor coordinate system to the OpenSim coordinate system?

After running the IMU Placer Tool I used the Navigator window to open up the pelvis_imu object. The pelvis IMU Rotation is shown to be (1.88109 -0.40678 1.62699) radians.

Question #3: Can you confirm the output format of the IMU Rotation information corresponds to the (x y z) axes and that the rotations are frame rotations (as opposed to point rotations) in the order x, y, z? That is, rotate around x, then rotate around y' and then rotate around z''.

Thank you.

Peter

Tags:

POST REPLY