基于ROS 的循迹识别与控制方法的研究

2019-04-08 11:01王爱辉徐腾飞王敏王尚静陈胜希王选择
传感器世界 2019年11期
关键词:掩码车道标定

王爱辉 徐腾飞 王敏 王尚静 陈胜希 王选择

1.湖北工业大学机械工程学院,湖北武汉 430070;2. 湖北工业大学材料与化学工程学院,湖北武汉 430070

一、引言

自从20 世纪世界上第一台机器人诞生以来,在过去的几十年里,随着机械、电子以及计算机技术的迅猛发展,机器人技术逐步渗入工业、航天、搜救等领域。移动机器人是机器人中一个重要分支,它脱离了传统固定位置机器人的线缆约束,具有自由移动的能力,极大地提高了机器人的灵活性。但是,对于移动机器人在具有更大工作范围的同时,也面临更加复杂的运行环境。因此,对机器人的运动和环境感知能力提出了更高的要求。机器人操作系统(Robot Operate System,ROS)的出现意义重大。在产品开发与应用方面,为机器人及其相关厂商提供了一套标准化的通信框架,使其可以在一套标准化的模型中编写和制定相应的软件及硬件;在科研领域,ROS 提供的通信框架和机器人控制算法方便研究人员进行二次开发,不必重复底层的工作,完整的可视化工具为开发提高了效率,使开发者可以专注于某一问题在ROS 平台上进行实验而不必担心机器人其他方面的问题。正因为如此,随着人工智能时代的到来,未来机器人设计必将越来越多地使用ROS 进行开发,从而实现更为复杂的功能[1]。

本文以ROS 为平台,针对特定的图像采集系统,对机器人的相机进行参数标定和图像矫正,应用单应性矩阵变换得到车道俯视图,并在HSV 颜色空间中提取黄线与白线,拟合出适合寻迹的车道线信息。基于两轮差速式移动原理,对机器人进行运动学分析的基础上,使用PD 控制器完成对机器人运动轨迹的闭环控制。

二、相机参数标定与图像校正

1、图像调整

为了保证视野的开阔,囊括路径规划所必需的部分车道线,采用具有500 万像素的OV5647 相机并且使用145°鱼眼镜头,以采集必要的车道线信息。为了保证图像传输速率和计算机处理效率,将图像分辨率设置为320×240,并且根据环境状况相应调整相机的焦距、曝光模式、ISO、白平衡等参数,以获得清晰、特征分明的图像。

2、相机参数标定

对相机的图像调整之后,需要对图像进行内参数标定。ROS 中的camera_calibration 功能包已经集成OpenCV 中的张正友平面标定法,可以对相机进行标定矫正畸变[2]。在使用棋盘格标定板进行标定时,为了得到一个好的标定结果,应该使得标定板尽量出现在摄像头视野的各个位置里,例如,移动标定板使其出现在相机视野的左边、右边、上边和下边,并且标定板不但有平行于视野平面的情况,还应该有倾斜放置的情况,最后还需要有棋盘格占据绝大多数视野的情况。按照上述情况缓慢调整和移动标定板即可完成相机标定。如图1 所示,相机标定后图像中的桶形畸变。

3、单应性变换

车道线在图像中是两条倾斜的直线,使用单应性矩阵进行透视校正可以得到两条平行直线,这种视角变换方法可以去除图像中车道线识别不需要的冗余信息,并且还原真实的车道信息,便于准确识别车道线和进行下一步的路径提取。

首先,在机器人视野前方的车道线区域手动选定梯形车道线包围区域,如图2 所示,提取该梯形区域四个顶点的坐标值做为单应性变量,并计算与预先设定的俯视图中的四个点的对应关系得到单应性矩阵,使用透视变换将原图像按照单应性矩阵变换为俯视视角的图像。最后,使用黑色像素点填充至变换后的图像在底部左侧和右侧留下的三角形空白区域,如图3所示。

三、车道线提取

1、基于HSV 色域空间的颜色识别与自适应

经过单应性变换的图像被转换为1000×600 的高分辨率图像后,再转换为HSV 图像空间的图像,根据预先设定的色调(H)、饱和度(S)、明度(V)的参数范围对HSV 图像进行颜色阈值分割,提取出所需要的颜色。例如:我们需要提取出20mm 宽的黄色车道线,在HSV 颜色模型中,锥形边界表示色相,水平轴表示饱和度,明度沿垂直轴测量,如图4所示,根据该色域模型确定参数范围,再根据光照强度以及畸变程度来适当调节参数,最后得到一条完整的车道提取线,如图5 所示。在实际运行过程中,由于光线并不是完全均匀的,我们根据图像中车道提取线像素点的数目来自动调整明度范围,当像素点数过大时缩小提取明度范围,当像素点数偏小时提高明度提取范围。

2、划窗曲线拟合与提取中线

将进行阈值分割后的图像按位与原始图像进行掩码比较并掩膜覆盖,再将车道线掩码分为若干窗口,分别寻找直方图左右部分的峰值,峰值点即代表左右车道线的起点。从峰值点出发,计算出每个窗口的掩码中心,使用各个窗口的中心坐标拟合二阶多项式,得出当前车道线的完整轨迹,并进行迭代更新计算—舍弃容易产生变形(光照、畸变影响)的位于图像边缘窗口内的掩码,依据掩码主体来拟合车道线。同时,逐行叠加掩码中提取的车道像素点,统计其数量,若数量较少说明提取到的该车道可信度较低,并设置可信度阈值与之比较。如图6(a)和(b)所示,左边红色线为提取的左车道线,右边蓝色线为提取的右车道线。计算路径中线时,把进行两条边线的可信度比较,当两边线可信度都高于可信度阈值时,说明提取到的车道线信息完整可靠,使用左右拟合边线坐标来确定车道中线,当其中一边高于可信度阈值而另一边低于阈值时,说明提取到一条车道线可能大部分位于视野之外,则取可信度较高的车道边线通过路宽来进行补偿拟合车道中线。为消除摄像头视野死区的影响,选择位于图像中下部点的横坐标计算与视野中心横坐标偏差,从而计算出当前的中线值,如图6(a)和(b)中的黄色线。

四、机器人运动学分析

对于一个空间中刚性移动机器人,在笛卡尔坐标系下,具有6 个自由度,即沿x、y、z 三个直角坐标轴方向的移动自由度和绕这三个坐标轴转动的自由度,因此需要6 个独立的参数才能完整的描述该机器人的位姿。对于二维平面内移动的机器人,其中3 个自由度被限制,所以只需要三个参数即可完整描述机器人的位姿,即二维平面内的坐标(x, y)和沿z 轴的旋转角,如图7 所示机器人,C 点为几何中心,因此机器人的位姿P 可以表示为:

本文中的机器人采用的是差速驱动轮式机器人,它不能进行全向移动,即只有径向速度和切向速度(v, ω),通过控制左右两个电机的速度差控制机器人实现前进、后退、转向等运动。该机器人的运动模式符合非完整性约束条件,即机器人的可控制自由度小于机器人的全部自由度[3]。

根据运动学方程可知,机器人左右轮速度与机器人的径向速度和切向速度的关系为:

根据运动学方程可知,机器人的速度与位姿之间的关系为:

式中,v —机器人中心C 点的径向速度;

ω —机器人中心C 点的切向速度;

vr—机器人右轮速度;

vl—机器人左轮速度;

θ —机器人中心C 点的旋转角度;

l —机器人的轮距;

Ts—机器人的控制时间间隔。

通过式(2)~(4)可以描述机器人的位姿、速度与两个驱动轮速度的关系。

五、机器人运动控制

在ROS 中,可以使用geometry_msgs 中的Twist发布机器人运动速度[4],其坐标系满足笛卡尔坐标系,由空间中6 个自由度参数组成。根据两轮差速驱动机器人的运动原理,其在平面内移动时,机器人只具有径向速度linear.x 和切向速度angular.z,而在其他的分量linear.y、linear.z、angular.x 和angular.y 均为0。

当机器人偏离中线较大或者机器人进入弯道时,我们希望机器人能够跟随偏差适当的减小径向速度,以能够顺滑地过弯而不至于出现转向不足或转向过度的情况。因此,如公式(5),对偏差的比例进行幂次运算使得偏差值与速度的关系呈近似平滑的曲线。如图8 所示,在偏差值处于±30 之间时,不对速度进行衰减。机器人角速度控制采用PD 控制器,其控制方框图如图9 所示,根据式(6)计算出切向速度angular.z,控制机器人的行进方向。

由于光照不均匀和网络延迟等因素,会不可避免地出现车道线识别失败的情况。因此,预先设定trigger,当发生异常情况时,让机器人重复上一次的运动控制命令。例如,当转弯不及时导致车道线偏出相机视野,则继续保持上一次的运动方向,使车道线重新进入视野。

在人员较为集中,存在较多移动设备或复杂网络环境的情况下,机器人板载计算机与远程计算机的wifi 通信受到极大的干扰,会出现严重的网络延迟现象,ping 命令测试网络其延迟在100ms~10000ms,并且出现数据包丢失的状况造成无法实时传输图像及数据。为了提高抗干扰能力,增强稳定性,采用5GHz频段的wifi 网络能够极大地提高网络的稳定性,并且保证较低的延迟以及数据传输的稳定,同时,选取设备数最少,质量最高的信道作为通信信道,以此最大程度上地减少因为无线网络问题造成的不稳定。

六、结论

本文提出了一种利用TurtleBot 机器人平台使用ROS 进行开发,结合OpenCV 中的相关视觉算法对图像进行处理,并提取出所需要的车道线中值,基于两轮差速式移动原理,使用PD 控制器完成对机器人运动轨迹的闭环控制。实验表明,该方法能够有效地识别并提取车道线,计算出中线值,精准地控制机器人完成循迹任务。

猜你喜欢
掩码车道标定
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
浅谈MTC车道改造
使用朗仁H6 Pro标定北汽绅宝转向角传感器
低面积复杂度AES低熵掩码方案的研究
CT系统参数标定及成像—2
CT系统参数标定及成像—2
基于布尔异或掩码转算术加法掩码的安全设计*
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
基于MATLAB 的CT 系统参数标定及成像研究