I have evidence that suggests the K4ABT_JOINT_ANKLE_LEFT and K4ABT_JOINT_ANKLE_RIGHT joints output incorrect rotations. They appear to actually be rotations pointing towards a missing heel joint.
Reproduced using both the k4abt_simple_3d_viewer.exe tool in k4abt sdk, and in my own code,
Perhaps when the models were trained on (synthetic) data or later processing, the team used, or dropped, a heel joint.
Setup
Microsoft Windows [Version 10.0.19043.1055]
k4a sdk v1.4.1
k4abt sdk v1.1.0
RGB camera firmware: 1.6.110
Depth camera firmware: 1.6.79
Repro
Wear tight clothing on waist, legs, and no shoes. This is to maximize the detection of joints.
Position the Kinect sensor ~30cm above the floor.
Position a chair ~150cm in front of the sensor.
Rotate the sensor slightly up and towards you in a sitting position.
Sit in the chair
Run from the k4abt sdk install location tools\k4abt_simple_3d_viewer.exe
Maximize the main window and press b on your keyboard to display axes
Lift your right foot as depicted in the above screenshot.
Slowly pivot your ankle by lifting and lowering your right forefoot
Watch closely the rotation axes on the right ankle and the bone connecting the right ankle -> toes
Result
None of the 3 rotation axes on the right ankle align with any bone. Kinect Azure typically aligns local X axis with bones.
Instead, the ankle rotation appears to form a right angle with the foot rotation with both their X axis meeting at a "heel". This missing "heel" then aligns the X (red) axis on this missing ankle->heel bone.
Expected
Ankle rotation to align its X (red) axis on the bone from ankle -> foot.
I am not expecting a new joint "heel" to be created.
Notes
This issue is also on the left side. It also reproduces on my own code. In the following picture you can see a rendering of the left foot raised and you can see the bone from foot -> ankle is instead rotated from foot -> missing heal.
In the attached picture, angle (1) will always be 90°, despite you moving your foot to (2)nd or (3)rd direction. Which means that there is "imaginary" joint, where the 90° angle is created.
I have evidence that suggests the
K4ABT_JOINT_ANKLE_LEFT
andK4ABT_JOINT_ANKLE_RIGHT
joints output incorrect rotations. They appear to actually be rotations pointing towards a missingheel
joint.Reproduced using both the
k4abt_simple_3d_viewer.exe
tool in k4abt sdk, and in my own code, Perhaps when the models were trained on (synthetic) data or later processing, the team used, or dropped, a heel joint.Setup
Repro
tools\k4abt_simple_3d_viewer.exe
b
on your keyboard to display axesResult
None of the 3 rotation axes on the right ankle align with any bone. Kinect Azure typically aligns local X axis with bones. Instead, the ankle rotation appears to form a right angle with the foot rotation with both their X axis meeting at a "heel". This missing "heel" then aligns the X (red) axis on this missing ankle->heel bone.
Expected
Ankle rotation to align its X (red) axis on the bone from ankle -> foot. I am not expecting a new joint "heel" to be created.
Notes
This issue is also on the left side. It also reproduces on my own code. In the following picture you can see a rendering of the left foot raised and you can see the bone from foot -> ankle is instead rotated from foot -> missing heal.