我被困住了。我想使用ADDMetric将地面真实姿态与估算姿态进行比较。
“ T以及估计的旋转R̃和平移T̃,我们计算所有模型点x与其转换版本的平均距离:
m = avg ||(Rx + T) - ( R̃x + T̃)|| .
基本事实包含以下变量。
"location": [ 3.636699914932251, -7.1244997978210449, 61.205299377441406 ],
"quaternion_xyzw": [ 0.49849998950958252, -0.50099998712539673, -0.23849999904632568, 0.66600000858306885 ],
"pose_transform_permuted": [
[ -0.90520000457763672, -0.42500001192092896, 0.0010000000474974513, 0 ],
[ 0.38409999012947083, -0.81720000505447388, 0.42960000038146973, 0 ],
[ 0.1817999929189682, -0.38929998874664307, -0.90299999713897705, 0 ],
[ 3.636699914932251, -7.1244997978210449, 61.205299377441406, 1 ]
],
object_settings.json:
"cuboid_dimensions": [ 16.403600692749023, 21.343700408935547, 7.179999828338623 ]
所以我认为R̃x + T̃ = quaternion_xyzw cuboid_dimensions +位置是
但是如何使用python正确计算呢?
其他姿势估计变量:
[{'cuboid2d':
array([None, None, None, None, None, (393.12350866760227, 8.2176658678339827),
None, (328.01836364338948, 235.36015965875694),
(368.21523734750838, 112.01849561320836),
(334.27798525944007, 116.20128223083461)], dtype=object),
'name': 'cracker',
'quaternion': Quaternion([ 0.48902345, -0.48971287, -0.3328639 , 0.64049902]),
'location': [0.87687700075507136, -12.8709826562585, 69.360323550436604],
'projected_points': array([[ 324.85022498, -15.03408885],
[ 269.99226383, 130.28539506],
[ 273.83800017, 212.40307047],
[ 314.88919115, 98.09603198],
[ 396.21567149, 6.20608956],
[ 347.30944482, 154.16019378],
[ 330.73077727, 230.28894467],
[ 368.49273695, 114.47831118],
[ 328.11006303, 120.95881116]])}]