一家专注复合机器人、全向激光AGV研发制造国家高新技术企业
全国服务热线 400-007-3860
亚马逊将二维码导航AGV高效的应用到仓储领域,不仅效率高,视觉效果同样突出,给人们带来的冲击是十分震撼的。在国内,想利用AGV升级产线或仓库的经理们也总会问到二维码导航,可能是觉得比较高科技,比较潮流吧。其实AGV行业中的各种导航方式的难度都差不多,磁导航、激光导航、二维码导航、SLAM等方式对于应用来说,没有明显区别,因为都有成熟的传感器反馈所需的坐标(对于SLAM,此类直接反馈坐标的传感器套装现在还没到泛滥的程度,但成熟开源算法已经泛滥了)。废话不多说,下面介绍一下二维码导航AGV的基本导航逻辑。
下图是一个二维码示意,一堆神鬼莫测的图案(可以是多个二维码构成的组,也可以是自己定义的,只要能解析就行)隐藏着坐标信息。传感器(摄像头加处理器)读取到二维码时,输出传感器中心与二维码中心的距离和一个偏转角度,距离值有正负之分,可靠范围一般不超过±4cm,当然超过这个范围也会有数值返回(方便初次寻二维码),但如果AGV的导航误差控制超过了4cm,那就不用玩了。根据反馈的偏差值,就可以对AGV进行纠偏。
现在问题来了,问题一:在二维码之间的空白区域没有参考信息,根据什么纠偏?
首先能想到的是利用航迹推算的方法,根据控制给定指令或编码器数值推算AGV的位置,从而进行纠偏。
实际控制中,用编码器推算的精度一般会高于根据控制给定指令的推算结果,因为控制器和执行机构的响应和执行情况不容易准确补偿。在此,十分推荐使用《Probabilistic Robotics》(page 127)中描述的模型,该模型简单粗暴,不仅因为车体中心的速度与角速度等参数容易计算,并且模型中直接应用的是全局坐标,不用再进行坐标转换了,总之,简单粗暴。
利用航迹推算的方法总会有误差存在,并且因为没有参考,该误差理论上是无边界的,那么,问题二:如何减小推算误差?
一般通过两种手段,一是缩短二维码之间的距离,这样就减小了推算误差累加的时间,从而减小了推算误差。但这样做会增大二维码铺设的工作量,并且会使现场更加复杂。当然,该方法实施的前提是施工人员心情愉快的接受并且工厂方同意你这样做。
二是增加惯导,利用传感器融合的方法减小推算误差。实际上,现在市售的惯导价格都比较低,之所以便宜,因为低端的惯导已经被玩烂了,Github上可以下载到pixhawk、crazypony等实现惯导算法的代码(照做、照抄,就可以自己做出惯导了),选一款千元以下的产品一般可以满足使用要求。基本的惯导有9个输出,分别是沿三个轴向的加速度与绕三个轴的角速度,以上6个是芯片反馈的原始数据,还有3个欧拉角度是惯导融合计算后的输出数据。AGV主要是应用惯导的航向角输出值,所以优先选择带有磁极感应的惯导或者直接选择高精度的航向角传感器(有人叫它陀螺转角仪)。磁感应的响应较慢,并且有零点漂移情况,能否应用要看现场的情况,只利用绕z轴的角速度做积分也是可以得到很好的结果的(不要粗暴的直接累加,至少要用一下龙哥库塔法之类的有消除残差机制的数值积分方法)。得到参考角度值后,与基于编码器得到的航迹推算值做融合,简单点的,用互补滤波做融合就可以得到较好的结果,如果不嫌麻烦,可以折腾一下EKF(在stm32框架下折腾EKF要做好一定准备,迎接解矩阵带来的麻烦)。
现在有了二维码之间空白区域的推算数据,就可以做控制了。但推算的数据仍然会有误差的,而当AGV行驶到二维码区域上时,得到的是准确的航位误差。问题三:在空白区与在二维码上用同样的控制参数控制会产生抖动或跳变吗?通过以上的减小误差的方案,已经使推算误差减小了(用心调试),并且由于控制器运算与执行机构响应延时的问题,用同一组控制参数并不会造成AGV在不同区域衔接处的明显抖动,可以放心大胆的应用。如果想在原理上杜绝抖动,可以尝试利用插值或路径匹配的方法,产生平滑的路径,用控制方法跟踪这条平滑的路径。
上一条:AGV自动充电原理说明 下一条:AGV安全故障问题汇总