论文部分内容阅读
人类可以通过视觉来判断外部环境事物的类别并粗略感知自身与物体之间的距离,从而达到跟随或者避让的目的。对于机器人而言,传统的磁线、磁钉、二维码和激光等AGV导航的方法,因其高昂的硬件成本以及较低的智能性,已经不能满足人们在生活生产中的部分需求。视觉系统近年来己被广泛应用于机器人的自主定位导航,其中单目视觉因其算法成熟度较高、成本较低以及实时性强等优点在短距离导航方面具有较强的实用性。本文提出一种基于深度学习和单目视觉测距相结合实现机器人跟踪的方法。通过标定过程获取单目摄像头的内外参数。利用深度学习中的SSD算法对于目标进行识别并获取目标框体的像素高度。再根据单目测距算法中的相似几何原理计算出摄像机与目标物体之间的距离。最后通过对机器人底座发送Twist消息完成机器人自主追踪,这是贯穿本文的主要思路。主要工作如下:(1)在单目测距的过程中,为了利用几何相似原理来求得相似距离,就必须获得相机本身的内外参数。精准地获取相机的焦距也成了实验中的重要一步。因此本文采用张氏标定法对相机进行标定,提高标定精度,为后续工作做好准备。(2)在机器人跟踪过程中,首先要识别获取本文需要跟踪的目标。文中采用基于深度学习的SSD目标检测算法进行目标识别。与传统的目标检测算法相比,该算法极大地提高了准确度和速度。这种算法对于尺度变化具有较高的鲁棒性。它利用多层不同尺寸和感受野的卷积特征来进行目标的识别。(3)通过SSD算法检测识别目标后,计算出该目标在图像中的像素高度,结合线性单目视觉测距模型和几何相似学,可以按照比例确定物体与成像物体之间的关系。这种模型实现测距更方便简单,只要获取必要的参数就可以快速测得距离,但是它只可以获取相对距离,不能获得测得各点的坐标值,存在一定误差。(4)在获取机器人与目标物体之间距离之后,为实现机器人的自主移动,本文在所测得距离值中添加临界值,当实测距离大于这个值时,通过move_base把控制命令Twist发布到cmd_vel主题上,给左右轮在目标方向一个正速度。同理,当实测距离小于临界值时,给左右轮一个负速度。通过这种发布Twist命令的方式可以使得机器人控制过程变得非常迅速简便。