Closed XnetLoL closed 4 months ago
Hi @XnetLoL and apologies for the late reply.
// quaternion that rotates the sensor axes so that they align with the SMPL frame
// this assumes that the sensor is placed correctly on the head
Quaternion R = new Quaternion(0.5f, 0.5f, 0.5f, 0.5f);
// the quaternion that maps from inertial to SMPL frame
Quaternion calib = Quaternion.Inverse(_connectedMtwData[_headId].quat * R);
/// <summary>
/// The calibrated orientation.
/// </summary>
public Quaternion quat {
get { return calibrationQuat * _quat * boneQuat; }
}
/// <summary>
/// The acceleration without any gravity.
/// </summary>
public Vector3 freeAcc {
get {
Vector3 noG = _quat * _acc - _gravityZ;
return calibrationQuat * noG;
}
}
Hope this helps!
Hi @kaufManu, thanks for your response! You have clarified a few points. The code will be handy too as a reference.
Hello,
I am currently working on replicating the sensor calibration procedure described in your paper, but I had no luck so far applying the methods to my own sensors. I have two main points I would like clarification on:
The paper mentions placing the head sensor onto the head such that the sensor axes align with the SMPL body frame. However, from the images provided, it appears that the head sensor is oriented with the Z-axis pointing up or down, whereas the SMPL body frame uses Y-up. Here is the image from the repository showing sensor placement and pose: And the image I found depicting the Xsens axes: . My guess is that the image might be a generic visual aid or possibly there's a difference in sensor models.
While not explicitly detailed in the paper, I assume that the steps used for orientation calibration might be applicable to acceleration data as well. My approach involves:
Could you confirm if this approach is valid for calibrating accelerations?
Thank you for your assistance and for the insights provided in your paper.