Page 304 - 《软件学报》2021年第6期
P. 304
1878 Journal of Software 软件学报 Vol.32, No.6, June 2021
为两个广播节点设计了以下 3 种方式:
(1) 设置相同的平移参数,设置旋转参数为 0;
(2) 设置相同的平移参数、旋转参数;
(3) 设置相同的旋转参数,设置平移参数为 0.
Table 3 Data difference
表 3 数据差值统计
差值范围 结果数量(组) 综合占比(%)
−4
−6
10 ~10 1 526 48.92
−4
−2
10 ~10 616 19.75
−2
10 ~1 472 15.13
1~10 327 10.48
>10 178 5.72
(a) 差值范围统计 (b) 差异结果统计
Fig.12 Graph of difference range
图 12 差值范围统计图
在实验过程结束我们发现:平移参数的设定并不会产生差异数据,而旋转参数的设置会对其产生影响.也就
是说,无论我们为其设计相同的旋转和平移,还是只设计旋转不设计任何平移,都会有差异数据的产生.因此,我
们回顾旋转参数设置及坐标转化的源代码进一步分析原因.
在 TF 和 TF2 中,我们分别使用 tf.transformations.quaternion_from_euler(roll,pitch,yaw)以及 tf_conversions.
transformations.quaternion_from_euler(roll,pitch,yaw)这两个函数来实现旋转变换,其中,roll,pitch,yaw 为欧拉旋
转参数.数据的平移和旋转过程实际上是通过矩阵来完成的,在线性空间里,一个矩阵不但可以描述在同一个基
下把一个点运动到另一个点的线性变换,还可以描述一个基在另外一个基下的表示,也可以表示一个基到另一
个基的线性变换.平移需要涉及矩阵的加减,而旋转则与矩阵相乘息息相关.TF 为我们定义函数简化计算过程,
但实际上,通过函数计算得出的结果并不准确.对于实验过程中产生的 3 119 组不一致结果,我们对其中 977 组
−2
差值范围大于 10 的数据进行了分析,统计结果如表 4 所示.每组差值范围中计算结果与 TF 转换得出结果更接
近的约为 80%.
Table 4 Analysis of conversion results
表 4 转换结果分析统计
差值范围 结果数量(组) 与 TF 结果相近 与 TF2 结果相近 TF 综合占比(%)
−2
10 ~1 472 379 93 80.30
1~10 327 261 66 79.81
>10 178 145 33 81.46
接下来,我们以其中一组数据举例来说明我们是如何对其进行进一步计算及详细的分析对比的.
以图 13 的一组实验结果为例,经过相同变换规则转化后的数据出现了不一致情况,我们分析实现转化的过