您好, 访客   登录/注册

室内机器人自主导航的实现

来源:用户上传      作者:

  摘要:为使机器人完成对室内环境地图的建立,并对自身进行实时定位,实现自主导航、自主行走的目的,选用电源模块、驱动模块、主控模块等硬件设备搭建一个机器人运动平台,并采用激光雷达作为该平台距离传感器。在同时定位与地图构建数学模型的基础上,采用扩展卡尔曼滤波算法对该数学模型进行优化求解,得到模型最优解。在机器人操作系统ROS上对机器人进行编程控制,实现机器人实时定位和建图、自主导航功能。
  关键词:室内机器人;概率模型;EFK-SLAM;定位与建图;自主导航
  中图分类号:TP242      文献标识码:A
  文章编号:1009-3044(2020)24-0001-03
  Abstract: In order to make the robot complete the establishment of the indoor environment map, and to be positioned in real-time, realize autonomous navigation and autonomous walking, power module, drive module, main control module, and other hardware equipment is used to build a robot motion platform in this paper. Laser radar is selected as the distance sensor of the platform. The Slam (simultaneous localization and mapping) mathematical model and the EKF (Extended Kalman filter) algorithm are used to solve the mathematical model. The optimal solution of the model is obtained, and the robot is programmed and controlled on the ROS (robot operating system). Realize the robot real-time localization, mapping, and autonomous navigation functions.
  Key words: indoor robot; probability model; EFK-SLAM; localization and mapping; autonomous navigation
  1 背景
  隨着经济的发展和社会的进步,人们对高质量生活的需求也逐渐提高。室内机器人成为近几年发展迅速的一类机器人,在医疗、文娱、服务、安保行业的应用也日益广泛。作为当前代替人工的优秀解决方法,有着巨大的发展前景。为使室内机器人更加智能化,能够在更少人工干预的条件下,自主去完成设定的任务。本文设计一款室内机器人,使用激光雷达采集的距离数据,通过优化过后的SLAM模型进行运算,可以使机器人知道自身在室内环境的实时位置,在此基础上完成对标定位置点之间的自主导航。
  2系统设计
  2.1总体设计
  室内机器人的总体可以分为上位机和下位机两大部分,两个部分独立运行实现各自功能,并通过总线方式进行数据的交互,其原理框图如图1所示。
  上位机可以由微型计算机充当,也可以直接使用笔记本电脑,相当于系统的大脑,对大数据量的信息进行处理,即对来自下位机的数据进行处理,得到运动平台的位置信息,依靠处理过后的数据进行实时定位和建图,并对机器人的运动做出决策。将控制命令发送给下位机,下位机控制运动平台的动作,完成计划的任务。在运动平台中,下位机起到了两个作用:控制平台的运动和传感器信息的收集,将这些信息进行简单的处理过后发送给上位机,根据上位机发送的指令对平台的运动进行控制。激光雷达安装在运动平台的前端,根据运动平台的移动得到位置的距离信息。
  2.2上位机设计
  本设计将使用安装在上位机中的ROS(robot operating system)操作系统,该系统的特点是利用节点发布话题,通过订阅相同话题实现节点间通信和数据交换。本设计自定义5个ROS节点:抽象节点,激光节点,建图节点,遥控节点以及导航节点。其中,抽象节点负责上位机与主控板的数据的读写以及接收编码器数据。激光节点负责接收激光雷达测量数据。建图节点是根据激光雷达的数据,运用SLAM算法模型得到机器人实时位置信息,并绘制成为地图。遥控节点实现键盘控制运动平台移动。导航节点是根据已有地图,控制机器人完成自主导航任务。ROS控制系统主要的流程图如图2所示,其中虚线框位上位机的部分。
  2.3下位机设计
  下位机部分主要由主控模块,电源模块,电机驱动模块构成。主控模块是采用意法半导体stm32 f407vgt6芯片组成的最小系统,该芯片的最高工作频率可以达到168MHz,可以对一些小数据量的信息进行处理。电源模块有多路开关和多种电源转换功能,可以为整个运动平台的各种设备提供电力支持。电机驱动模块中使用两块BTS7970芯片,可以驱动一个电机,保证足够大的驱动能力。
  3 SLAM基本原理与程序设计
  3.1 SLAM的基本原理
  同时定位与建图(simultaneous localisation and mapping,SLAM)[1]是指:如果将可以移动的机器人放入一个未知而陌生的环境中,机器人如何通过对于环境的扫描在通过一定的处理得到与这个环境相一致的地图,并且能够知道自己在地图之中的位置。   如图3所示,一个机器人在室内环境中移动,它通过激光雷达得到一系列的标志点和自己的相对位置的距离信息。
  通过这些信息对移动轨迹与所有的标志点都是实时进行估计的,构成一个两步的递归预测矫正算法模型。模型中包含有预测和矫正两个过程,将预测得到的标志点进行矫正,不断地缩小估计标志点和真是标志点之间的误差。随着观测次数的增加,标志点之间相关程度不断增加,标志点相对位置信息也不断地变得准确。
  当机器人运动到了新的点上,重新观测先前的标志点时,机器人与标志点的位置都会被更新。同时也会出现这一个位置的标志点,这些新出现的标志点可以立即与已知的地图相关联。最终,所有的标志点形成了一个相互关联的网络,它们的精度随着观测次数的增加而增加,标志点数量随观测次数的增加而增加。
  图4以条带表示点与点之间的相关性。当机器人在环境当中来回运动的时候,这些条带会变得越来越粗并将会影响整个网络。
  3.2同时定位与建图的程序设计
  SLAM算法模型可以在一定程度上帮助减小估计标志点和真实标志点之间的误差,但是想要真正实现机器人的实时定位与建图,还需要使用扩展卡尔曼滤波(Extended Kalman filter,EKF)算法对该数学模型进行优化,去除不正确的标志点,使模型具有线性,这些都利于提高定位与建图的精度。
  将上述过程通过程序不停地迭代,得到EKF-SLAM定位与建图程序的框图如图5所示:
  3.3自主导航的程序设计
  在已经获得室内地图数据的基础之上,对机器人进行路径规划,在机器人行走过程中也不断对地图进行实时比对和重新规划,从而实现机器人的自主导航。得到机器人自主导航的程序框图如图6所示。
  4系统调试
  4.1同时定位与建图的调试
  首先,在新终端启动机器人抽象节点,通过该节点对机器人的状态进行初始化,并启动对机器人运动平台系统的控制程序。接下来,在另一个新终端中启动雷达激光节点,激光雷达能正常工作,这时的激光雷达能够输出距离的数据。之后,再新开一个终端,启动建图节点,这个节点是为了运行建图的程序,调取空白建图界面,读取激光雷达的距离数据和里程数据,使得机器人实时的定位信息能够被读取到。最后,利用RVIZ对建图过程进行可视化。如果正常的话,可以得到如图7所示的画面。
  利用无线键盘遥控机器人在准备导航的环境中缓慢移动,使RVIZ中显示的地图逐渐补全,直到将整个环境的地图建好为止。当地图建好之后就要对地图进行保存。最终,实验室外面走廊的地图如图8所示。
  4.2自主导航的调试
  按照之前的方法,在两个终端中启动抽象和激光节点,之后将先前建好的地图导入导航节点中,启动导航节点。若导航节点正常启动之后,就可知道当前机器人的状态,并对导航状态进行初始化,最后得到机器人的里程数据,此时机器人可以开始进行导航。利用RVIZ对机器人初始位置标定,之后为机器人指定导航的目标点。得到自主导航画面如图9所示。
  其中,机器人前方的红色细线为规划出来的全局路径,如果在行经过程中没有障碍物机器人将沿着这条路径行走,当遇到障碍物时,机器人将向右边移动绕开障碍物之后重新回到这条全局路径。
  5结束语
  通过硬件设备的搭建,获得本设计的运动平台,之后通过对SLAM模型的理解和优化得到机器人同时定位与建图以及自主导航的控制原理。根据原理利用ROS操作系统,对机器人运动平台进行编程控制,最终对程序进行调试,使得机器人实现同时定位与建图以及自主导航的功能。为后续机器人实现未知环境下的移动,为室外机器人、无人驾驶车及其他轮式移动机器人的工程应用提供理论基础和技术依据。
  参考文献:
  [1] 潘心冰.基于Kinect的移动机器人SLAM技术研究[D].哈尔滨:哈尔滨工业大学,2017.
  [2] 潘琪.自主移动机器人的路径规划算法研究[D].长沙:湖南大学,2016.
  [3] 张探.导盲机器人自主导航技术研究[D].镇江:江苏科技大学,2016.
  [4] 楊俊驹.动态环境下基于ROS的移动机器人路径规划技术研究[D].苏州:苏州大学,2016.
  [5] 徐亮.室内清扫机器人的路径规划研究[D].郑州:中原工学院, 2011.
  [6] 胡正伟.清扫机器人定位及路径规划研究[D].秦皇岛:燕山大学,2010.
  [7] 何炳蔚,张立伟,张建伟.基于ROS的机器人理论与应用[M].北京:科学出版社,2017: 101.
  [8] 余冬冬.移动机器人避障与轨迹规划[D].杭州:浙江大学,2017.
  [9] 唐烨.智能家居环境中基于移动机器人的目标搜索[D].杭州:浙江大学,2017.
  [10] 高志发,武建新.基于ROS的移动机器人的路径规划策略研究[J].机械研究与应用,2017, 30(3): 161-162.
  [11] Estévez P, Cappelletto J,?lvarez F,et al. Coordinated navigation Using Dynamically Varying Velocity Fields[C]. 9th International Conference on Artificial Intelligence and Soft Computing. Zakopane, Poland. June 2008.
  [12] Ogata K. Modern Control Engineering[M]. 5th ed. Prentice-Hall Pearson, 2010.
  [13] Medina-Meléndez W , FermínL,FernéndezG,et al. Optical Flow Based Velocity Field Control[C]. Modalidad: 9th International Conference on Artificial Intelligence and Soft Computing. Zakopane, Poland, 2008(6): 771-781.
  [14] Certad N,Acuna R,Terrones ?,et al.Study and improvements in landmarks extraction in 2D range images based on an adaptive curvature estimation[C]//2012 VI Andean Region International Conference. 7-9 Nov. 2012, Cuenca, Ecuador. IEEE, 2012:95-98.
  [15] Point Clouds.Official Web Site[EB/OL].[2019-12-26].http://www.pointclouds.org.
  【通联编辑:谢媛媛】
转载注明来源:https://www.xzbu.com/8/view-15318694.htm