标定:rtk到雷达。
出现的问题是什么?
车移动时,靶标点跳变了。
怀疑是rtk出的问题。
标定矩阵有问题。
结果:都没问题,只是显示有问题。
实际轨迹和估计轨迹分别是从哪里获取数据的?
首先轨迹会保存为txt文件。
实际轨迹是rtk(rtk是后轴中心点)获取到的,用rtk坐标转到激光雷达原点坐标。
估计轨迹,也就是建图里程计位姿的连线,来自于imu和激光雷达。
imu 有加速度和角速度信息。预积分模块。耦合。帮助激光雷达配准。
主要的还是激光雷达的6个自由度的位姿信息。
建出来的轨迹准不准怎么确定?
实际上可以通过构建关于位姿误差的函数,通过李代数求导或扰动模型来计算。但是不如直接把轨迹打出来看来的快。
直线的时候,我们发现轨迹差异度不明显,两条轨迹吻合很好(实际轨迹和估计轨迹)
转弯的时候,我们发现轨迹会有偏移。
我们的思路是:既然转弯会发生偏移,我们干脆录一个路径收尾相接的数据包,像个回环路径。
请注意:这里的回环和“建图用的回环检测”是两回事。
我们来对比两条轨迹的差异度。如果轨迹是准的,应该轨迹收尾相接,但实际情况像是个曲别针,最后并没有首尾相接。
怎么解决的?哪里出的问题?为什么当时会想到可能是这个地方出的问题?
改了存关键帧,因为帧太密了。轨迹更新反应不过来,每次慢一点,积累到最后形成误差。(孙时)
是这个说法吗?我希望解释可以更详细清楚一些。
建出来的图准不准怎么确定的?(二维栅格图)
思路:讨论建出来的图准不准之前,首先必须保证估计轨迹是准的(估计轨迹和实际轨迹的误差在可接受的范围内)。那么在建图开始的一刻,我们现在车的初始位姿是准的(车位姿也就是雷达坐标系,现在把车的初始位姿转到大地坐标系下)。然后用开始用相邻间隔帧开始建图,那么此时建图的过程其实就是激光雷达坐标系转大地坐标系后的点云地图砸扁,转栅格地图的过程。我们出来的二维栅格地图上出现的障碍物的坐标,就是大地坐标系下的。
然后我们可以挑选明显的障碍物,比如一根一米的标杆顶(是一个点)。我们去拿打点仪,测出这个点的真实rtk坐标(大地坐标)。
我们用建图生成的二维栅格地图里的标杆(障碍物),这个标杆的坐标(建图估计出来的大地坐标)与打点仪打出来的点坐标(标杆真实的大地坐标)做对比。
如果对得上(误差在可接受范围),那么我们就说建图准确。
如果对不上,分两种情况。
第一种:图内物体的相对位置关系准确,图内物体的坐标都与其自身真实的大地坐标相差6个自由度的定值。那么我们可以去手动调整生成的二维栅格地图的坐标系,转到真实大地坐标系下。这样就实现了二维栅格地图里的障碍物的坐标就是障碍物真实的大地坐标,此时,我们就说建图准确。
第二种:图内物体的相对位置关系不准确,那直接宣告建图失败了。我们需要考虑问题出现在哪?
首先必须保证估计轨迹是准的吗?
在建图开始的一刻,车的初始位姿是准的吗
用开始用相邻间隔帧开始建图时,我们选择的帧间隔是否合适?
之前搞轨迹准不准时,激光雷达坐标系转大地坐标系的变换矩阵对不对?我们做的标定是否正确?
我们把点云地图砸扁,转栅格地图的过程中,有没有出现问题?
验证的实际操作:在观礼台贴了很多靶标点。
录个点云数据包,可以在cloudcompare里清楚地看到靶标点。我们可以得到靶标点在点云地图中的大地坐标。大地坐标?为啥不是车体坐标?这个大地坐标是怎么得到的?初始位姿和rtk做了对准?答:在建图开始的一刻,我们现在车的初始位姿是准的(车位姿也就是雷达坐标系,现在把车的初始位姿转到大地坐标系下)。
灰度栅格图(三维栅格图)
栅格图要得是灰度图。灰度代表相对地面高度。有三个档,压过去,跨过去,躲过去。
灰度栅格图对规划也是有影响的,要结合规划一起看,比如碰撞检测的逻辑。
铲斗那个位置下面的障碍物识别怎么办?
会不会受到铲斗高度的影响?因为在三维栅格图里铲斗高度比它下面的障碍物高,它会覆盖掉下面障碍物的高度信息。
答:在点云层面,把铲斗高度(大概在3米~4米)以上的点云都删去,这样就把铲斗扣掉了,再生成三维栅格图。这样生成的三维栅格图,在铲斗下面位置出现的栅格就是铲斗下面障碍物的栅格。