目录
1 1.什么是纹理导航?
2 2.纹理导航适用的场景
3 3.纹理导航不适用的场景
4 4.纹理导航相比较SLAM的优缺点
5 5.纹理相机设计安装要求
6 6.使用纹理导航前的准备工作
6.1 1.准备工作
7 7.地纹地图录制
7.1 1,建图方式
7.2 2,开始建图
8 8.注意点
1.什么是纹理导航?
一种基于地面图像纹理的视觉导航方法。硬件上由下视摄像头,补光灯(对光线有一定要求)等组成。纹理导航利用地面丰富的纹理信息,基于相位相关法和极坐标转换来计算出两图间的位移和旋转,对比地图已知的绝对坐标获取当前位置。
不需对地面进行额外处理,无需安装反射板、磁条等,确保灵活性及扩展性。该方案性价比高、无需改造现场环境、施工周期短、能适应复杂应用场景。
2.纹理导航适用的场景
纹理导航适用于一些特定的环境场景,其中地面或环境中存在明显的纹理特征,如金刚砂硬化地坪,普通水泥地坪,瓷砖地坪,车间铺设重复纹理的地板,且地板纹理重复度大于相机视野即可,且多灰尘,油污等,地面纹理极少,且经常变化,不适合使用纹理导航
1,金刚砂硬化地坪,有反光但纹理清晰。需要注意补光
某现场金刚砂地面环境
常规的金刚砂地面2,瓷砖地面,有反光,纹理清晰。亮色系,补光容易。要求瓷砖尺寸>视觉相机视野(15*15cm)
某酒店地面
常见的瓷砖地面
瓷砖地面纹理地图3,普通水泥,补光容易,纹理清晰
普通水泥
3.纹理导航不适用的场景
不适用地面:地面反光且无纹理或纹理特征不明显的场地,不适用。
A. 纹理没有或者极少,相机获取不到纹理特征,理论上无法实现。
B. 打光困难,地面反光获取特征不是地面的真实情况,算法无法消除。
C. 地面磨损,纹理极容易被损坏。
D. 灰尘油污大的场地,地面纹理特征不稳定,经常变化,如室外泥泞环境。需要增加外部可靠纹理,保证导航稳定性能。
E. 少纹理或者重复小纹理地面,例如载货电梯内部地面。需要增加外部标识,使纹理特征大于相机视野(15*15cm)
例如:
1,环氧地坪,补光困难,初期缺少视觉纹理导航必须的地面纹理。地面容易划伤,纹理不稳定。
环氧地坪图片2,重复小纹理地面,纹理特征不明显
扶梯地面
4.纹理导航相比较SLAM的优缺点
纹理导航和SLAM是两种不同的导航方法,各自具有优缺点,适用于不同的应用场景
优点
简单实时性:纹理导航实现简单,通常具有较好的实时性,适用于对实时性要求较高的应用。
成本较低:相对于SLAM需要的昂贵传感器,纹理导航通常可以通过普通的相机或传感器实现,降低了系统成本。
适用广泛:适用于各类有明显地面纹理的场所。
相比较SLAM精度更稳定,精度可稳定在正负5mm以内
缺点
局部信息:纹理导航一般只能提供相对局部的信息,不能构建全局一致的地图,因此适用于需要全局感知的场景有限。
对地面特征依赖性强:纹理导航依赖于地面的特征,如果地面特征变化或受到遮挡,可能会影响导航的准确性。
大场景建图耗时,需要地面弹线,修图,相比较slam实施较为耗时,麻烦。
5.纹理相机设计安装要求
1,相机安装务必设计在车体运动中心-(越偏心安装会降低稳定性,导致车体晃动时可能造成脱轨,纹理相机视野15cm*15cm较小)
2,有可高度的活动支架
3,有较好的补光机构
6.使用纹理导航前的准备工作
1.准备工作
1. 配置Medulla startup保证可以读取到相机图像数据,加载MVCamera.dll,如下方式
mv=io load plugins/MVCamera.dll
maincam=mv initMono MG010 //MG010为该相机型号
打开Medulla.exe后就可以看到图像此准备工作完成
Detour根目录下需要有regcore_cuda和cufft64库文件
2. 修改相机曝光参数,此处我们以海康相机为例,打开相机MVS软件,选择对应网卡的相机,双击,启动相机,就可以看到画面了,然后再右侧栏目中,调节相机的亮度和曝光即可,保证能够清晰的看到地面纹理即可,
海康MVS软件
在这个过程中我们需要保证补光均匀,需要设计一个合理的补光结构,如下图。调整补光机构,直至地面没有明显的反光点或暗部。然后可在平整的地面上贴一张白纸,可以清楚的看出反光情况,将用于纹理匹配的15*15cm区域截图,使用相机补光测试工具,可以计算出方差,一般方差在20以内可认为补光均匀,相机补光测试工具:https://e.gitee.com/Fairyland_1/projects/511612/repos/Fairyland_1/the-testofimageuniformity/sources。
1. 标定相机
(1). 准备15cm*15cm的标定纸(见下图),贴在平整的地面上,相机必须能够完全看到标定纸中的方格,为消除畸变对相机的影响,在使用前需要相对相机进行标定,由于相机的透镜影响,以及相机在机械组装过程中的误差会使得光线穿过透镜投影到成像面时位置会发生变化。由透镜引起的畸变称之为“径向畸变”。在实际拍摄中径向畸变会使得一条直线在图片中变为曲线。通常分为桶形畸变和枕形畸变,目前标定摄像头主要为消除桶形畸变,如下图,左侧是标定后,右侧是未标定过的。
15*15标定纸
(2). 打开Detour.exe,打开车体编辑器,添加下视摄像头,选择该组件,名称改成”maincam”和medulla加载的名称一致即可,修改相机和雷达的位置,使其和机械设计的真实位置一致
(3). 点击动作-双击捕捉即可看到相机画面,再双击校准,我们进行标定工作,这块需要很有耐心。
(4)打开校准的界面后,我们可以看到相机画面以及标定线,点击修改校准点,然后,鼠标依次对着标定值黑色的方框点,从左到右把点标记,如下图
一定要耐心,5分钟内就可以标定好,标定完成后会提示准备就绪,可以观察右下角的提示,可以知道目前正在标定哪一个点。标定完成后,左下角会有“就绪”的提示。
(5)标定好后,我们选择摄像头,选择”保存校准数据”,然后再点击”校准数据另存为”保存到Detour目录下即可,然后保存下导航配置
注意:如果涉及到多个车,需要用同一个位置的地纹标定纸来进行标定
7.地纹地图录制
1,建图方式
纯地纹建图--------大场景施工繁琐,耗时耗力
激光+地纹建图----施工方便
(1)纯地纹建图,需要地面做标记,可以墨斗弹线/铺设标定线,目的是为了修图,因为纹理录的过程中会有误差,所以通过标定线来有目标性的进行图优化,可以看图6.1.1以及图6.1.2通过优化可以保证所有帧中的标定线处于同一水平,
地面5mm标定线
6.1.1 连续录制的地面纹理地图-未修图
6.1.2 连续录制的地面纹理地图-修图后
(2)激光+地纹,是指在提前录制好激光地图的基础上,录制地纹,这个情况可以不需要标定线,但是有标定线也可以更方便的辅助修图。
2,开始建图
1. 打开Detour.exe,选择里程计-添加里程计-地面纹理导航
2. 点击地面纹理导航,添加图层,默认ground名称即可,这步结束后,保存下导航配置
3. 保存导航配置后,关闭detour,若使用多个传感器,如“激光+地纹”,需打开detour.json,找到useTC,设置为true。重启下detour,这时候就可以看到小车下有地面的图像了
4. 点击自动更新图层即可开启建图模式,对于纯纹理导航,需要按照标线遥控小车,把对应位置纹理录进去,对于激光+地纹,可以直接下发激光路径,在走激光的时候录制地纹地图。
注意:激光+地纹录制的时候,我们需要注意按照以下步骤
(1)保证AGV行驶激光路径精度正常,比如一条10米直线,AGV行驶过程整体行驶姿态误差都较为稳定
(2)关闭图优化,取消勾选,会使得地纹关键帧停留在原始位置上不动
(3)Simple下发一段路径,同时开启地纹自动更新图层,即可开启纹理录制了
(4)每隔一段距离,锁一下最后一个关键帧,再开启图优化,就会把之前建的纹理图给优化好。然后再关闭,再走,走完后再锁一个关键帧.......以此类推。
(5)录好后锁定图层,然后另存图层,保存导航配置即可,这样下次打开detour会自动加载地纹图层
8.注意点
1,若使用激光+地纹方案,Detour中激光以及纹理相机的xyth需要按照实际物理位置填写,车体运动中心为坐标原点,前进方向为x正,前进方向左侧y正
2,由于地纹相机实时性比较高因此,不同雷达配合地纹使用需要修改time_bias_ms,镭神3d激光相比较相机大概延迟100ms左右,因此我们需要把相机的time_bias_ms改成-100
3,fitTCfactor参数可以配置多传感器耦合的权重,越低则代表该传感器越不重要
4,实际使用中,可能需要用到相机校准中的“反转和旋转功能”,在进行建图时,若出现车辆在地图中的移动情况与实际情况不一致,需使用“反转和旋转功能”使运动与建图情况一致。例如车往x正方向走,地纹图层应与车辆运动轨迹一致,若出现地纹图层以车为原点向x正方向延申,表示此时地纹里程计方向错误,需要点击“反转和旋转”中的横向翻转。
5,必须做好标定!在使用地纹建图时,需要设置地纹里程计中forceDangling为true,建图完成后改为false。此参数代表地纹图层是否只根据激光位置做“记录”功能。
6,使用纹理导航时,要求相机视野可以覆盖标定方格纸,特殊情况下,视野较小,需要使用小号标定纸,此时需要将地纹里程计及地纹图层中的viewField改为实际标定纸大小,单位为mm。