I have some questions about IMU sensor registration and calibration step in the 'OpenSense - Kinematics with IMU Data' example (https://simtk-confluence.stanford.edu:8 ... -stepthree) in the OpenSim website and hope someone here could help me out.
In the example, the author uses 7 Xsens IMU sensors (pelvis_imu, left/right thigh, left/right shank, left/right foot) to track a person's walking and turning. In processing, the author did the following:
First, place and calibrate the IMU sensors on the opened model
Code: Select all
<IMUPlacer>
...
<base_imu_label> pelvis_imu </base_imu_label>
<base_heading_axis> z </base_heading>
<sensor_to_opensim_rotations> -1.5707963267 0 0 </sensor_to_opensim_rotations>
...
</IMUPlacer>
Code: Select all
<IMUInverseKinematicsTool>
<time_range> 7.25 15 </ time_range>
<sensor_to_opensim_rotations> -1.5707963267 0 0 </sensor_to_opensim_rotations>
...
</IMUInverseKinematicsTool>
And I have no clue how the sensor-to-OpenSim-rotation should be performed. Should we a). place the base IMU sensor on the subject, and then rotate its current world frame to OpenSim world frame and compute the rotations angles, or b). we place the sensor flat on the ground/a level surface and then rotate? It seems like the example took the method b). In this case, the base IMU sensor world frame (when placed flat on a level surface) is (Z up, Y to the left, X forward) and the OpenSim world frame is (Z to the right, Y up, X forward). In this case, we need to rotation the IMU sensor world frame by +90 degrees (positive means following right-hand rule direction) around its +X axis to align with the OpenSim world frame. However, the example rotation setting is: (-90 deg/-1.57 radian, 0, 0). I am confused about why the rotation angle sign is negative?
In our experiment, we had a similar 7 IMU sensor setup (pelvis_imu, left/right thigh, left/right shank, left/right foot) to track human walking and turning. The experiment task is:
- Stand for ~3 seconds
- Walk forward, turn 180 degrees, walk straight, turn 180 degrees, walk, turn 180 degrees, etc.
- Walk back to the starting point, stop and stand for ~3 seconds
https://www.dropbox.com/s/gmv3cef18o25m ... p.png?dl=0
Could someone please help me out on how I should set up the OpenSim IMU placer/calibration in those two scenarios?
- <base_imu_label> ?
- <base_heading_axis> ?
- <sensor_to_opensim_rotations> ?