一种机器人的自主行进控制方法及自主行进机器人系统与流程

文档序号:14346556阅读:294来源:国知局
一种机器人的自主行进控制方法及自主行进机器人系统与流程
本发明涉及一种机器人的自主行进控制方法及自主行进机器人系统,属于机器人自主导航行进
技术领域

背景技术
:大型疗养院、医院需要频繁进行的药物或手术器具传送工作,随着人口老龄化此项任务的人力成本也将日益增高。现有人力配送措施有如下问题:人力配送无法全天候长时段执行、人力成本高,出错率高。现有自动配送技术如下:2017年10月全球首个医院运输机器人“诺亚”在广州市妇女儿童医疗中心投入使用,用于药品、标本、手术器械的配送。但是目前此类已经投入市场的医疗配送机器人是比较初步的,而且产品种类数量少,所用技术不成型不成熟,同时存在运行路径复杂、算法复杂,成本高的问题。本发明人的申请号为201710331412.7的专利申请公开了一种自主行进机器人系统,其可以实现机器人在室外进行自主行进。但是该技术仅仅可以在室外应用,并不能适用于室内;另外,该方案中使用的是直流电机和20a大功率直流电机驱动模块,在室内使用时不仅有噪音,而且车体在行驶过程中不够平稳;此外,该方案中使用单点测距模块,只能测量得到测距模块正前方的障碍物的距离,而且返回数据的速率较低,并不能实现灵活有效的避障;最后,该方案中,由于左右两个电机的转速有轻微差异,车体会在行进过程中有方向的偏移,并且行进的距离越长,偏离预定直线越严重。因此需要继续进行改进。技术实现要素:本发明的目的在于,提供一种机器人的自主行进控制方法及自主行进机器人系统,它可以有效解决现有技术中存在的问题,尤其是现有的机器人系统运行路径复杂、算法复杂,成本高以及不能适用于室内的问题。为解决上述技术问题,本发明采用如下的技术方案:一种机器人的自主行进控制方法,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进。优选的,步骤s1包括以下步骤:s11,在机器人行进范围内的地面上粘贴无源rfid卡片(如s50卡片),并且使得任意两张卡片的中心线(水平的中心线或垂直的中心线)在同一条直线上,相邻两张卡片的距离相等并且小于等于10米;s12,将所铺设的卡片抽象为结点间距离相等的有向网图;对所述的无源rfid卡片进行编号,并使得每个编号对应于每张rfid卡片的唯一id码,存储该对应关系并形成id库;同时利用网图的有向边的二维数组存储相邻rfid卡片的相对方向。发明人经研究发现,机器人在向前行进的过程中,由于左右电机的转速并不能严格相等,因此如果有微小的转速偏差,机器人就会偏离行走路径,不能够遇到需要到达的目标点。因此,本发明通过设定相邻两张卡片的距离相等并且小于等于10米,从而使得机器人能否准确到达每个目标点,最后准确的到达最终的目标点。另外,本发明中设定两张卡片的中心线(水平的中心线或垂直的中心线)在同一条直线上,从而便于准确的粘贴磨砂黑胶带对车体进行矫正来解决由于左右两个电机的转速有轻微差异,导致车体在行进过程中有方向的偏移,及由于地面反光而导致检测准确率下降的问题。优选的,步骤s2中所述的根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列包括以下步骤:当机器人收到行进目标点的rfid卡片编号后,根据floyd最短路径算法算出当前位置(需要将采集到的rfid卡片的id码转换为rfid卡片编号)到目标点的最短行进路径,并将所经过的rfid卡片对应的id码依次存储起来。优选的,步骤s3包括以下步骤:s31,机器人将当前检测到的rfid卡片的id号作为当前位置,将离散路径序列中第一个rfid卡片的id号作为目标位置;s32,(可通过数据库查找算法)查找并获取机器人当前位置和目标位置在网图中的位置及二者之间的方向角;s33,机器人根据所述的方向角向目标位置运动;优选为,采用片内定时器通过输出占空比可调的250hz的pwm控制信号,实现对电机的调速控制;s34,当检测到目标位置的rfid卡片的id号时,则以该rfid卡片的id号作为当前位置,将离散路径序列中第二个rfid卡片的id号作为目标位置,并重复上述步骤,直至到达最终的目标点,机器人停止行进。通过以上方法,从而可以最终准确的到达目标位置。优选的,机器人的rfid读写模块安装于机器人的底部,并且rfid读写模块读取数据时与rfid卡片的垂直距离为1~4cm(更优选为3cm);从而可以更准确的读取获得rfid卡片的id码。前述的机器人的自主行进控制方法中,还包括:s41,机器人在行进过程中,采集地面上的路标图形;s42,提取路标图形中的边沿线;s43,根据所述的边沿线判断路标图形的种类并执行相应的动作:启动、停止、拐弯。通过以上方法,从而在不便粘贴rfid卡片、rfid卡片损坏、机器人系统行走的速度较快从而无法检测到rfid卡片的id码时以及遇到台阶或坡道而误判为障碍时,可以利用路标图形很好的辅助机器人行进,最终到达准确的目标位置。优选的,步骤s42包括:首先利用多项式地址修正法消除路标图形的桶型失真,然后利用逆透视算法消除路标图形的梯形失真,再利用中值滤波法对路标图形进行一次滤波,消除之前的两次变换所带来的空洞效应,最后利用canny边缘检测算法,提取出路标图形中的(如红色色块、黑色色块的)边沿线。通过以上方法,从而可以大大提高图形路标提取的精度,提取得到更准确的路标。优选的,步骤s43中所述的根据所述的边沿线判断路标图形的种类,包括以下步骤:判断是否存在两个相邻的不同颜色的色块(如红黑色块),若存在,则计算某一色块的中心相对于另一色块的中心的角度,即为箭头的角度;若不存在两个相邻的不同颜色的色块,则判断是否存在单一色块的长方体,若存在则视为检测到启动信号,机器人进行启动,或视为检测到终止信号,机器人停止行进(具体根据提前设定好的含义进行动作)。其中,本发明的路标图形采用红色和黑色,从而受外界光线干扰相对较少,使得路标图形识别的准确率更高;另外,开始和停止路标采用矩形,从而可以进一步提高路标提取的效率和识别效率。优选的,本发明还包括:在机器人行进过程中,对车体进行矫正;具体包括以下步骤:a.沿rfid卡片的中心线方向水平或垂直布设磨砂黑胶带,使得rfid卡片设于磨砂黑胶带的正下方;其中,任意两张卡片的中心线(水平的中心线或垂直的中心线)在同一条直线上;b.安装于机器人车体正前方的摄像头采集前方的图像;c.分析所述图像对应的二维像素数组,并识别磨砂黑胶带对应的黑线在所述二维像素数组中的位置;d.若黑线处于此二维像素数组的中间列,则磨砂黑胶带处于车体的正前方;否则用该黑线所处的二维像素数组中对应的列减去二维像素数组的中间列号,得偏差值;e.若所述偏差值为正,则磨砂黑胶带处于车体的右方,表明此时车体需向右转,故控制左路电机加速,右路电机减速;若所述偏差值为负,则磨砂黑胶带处于车体的左方,表明此时车体需向左转,故控制左路电机减速,右路电机加速;f.重复步骤b~e,即实现了车体的自动矫正,使得车体沿着磨砂黑胶带走直线。通过以上方法,从而可以对机器人车体进行矫正,使车体一直沿着预定直线行进,最终准确的到达目标rfid卡片;此外,本发明中使用磨砂黑胶带来覆盖rfid卡片,不仅不会影响对rfid卡片的识别,而且还可以避免因阳光或灯光太过强烈,导致地面反光进而导致摄像头在识别地面上的黑胶带时发生错误的问题。一种自主行进机器人系统,包括机器人本体,还包括:设于机器人本体上的rfid读写模块、主控芯片、陀螺仪和存储模块,所述的主控芯片分别与rfid读写模块、陀螺仪和存储模块连接。优选的,还包括:激光雷达,所述的激光雷达与主控芯片连接;优选为所述的激光雷达采用激光雷达模块rplidara1。优选的,还包括:摄像头,所述的摄像头与主控芯片连接,用于采集地面上的路标图形。优选的,还包括:缓存模块,所述的缓存模块分别与摄像头和主控芯片连接。更优选的,所述的缓存模块采用fifo芯片al422b;所述的摄像头采用ov7725摄像头及其标准外设电路。所述的主控芯片采用stm32f103芯片。前述的自主行进机器人系统中,还包括:上位机、无线数传模块和无线图传模块,所述的上位机分别与无线数传模块和无线图传模块连接,无线数传模块与主控芯片连接,无线图传模块与摄像头连接。更优选的,还包括:监控摄像头,所述的监控摄像头与主控芯片连接。优选的,还包括:从控芯片,所述的从控芯片分别与激光雷达、摄像头和主控芯片连接。本发明所述的自主行进机器人系统中,还包括:报警电路,所述的报警电路与主控芯片连接。优选的,本发明中所述的机器人为履带机器人,且机器人本体左右两侧各安装有多个震轮组。优选的,还包括:无刷直流电机智能控制器和2个无刷直流电机,所述的无刷直流电机智能控制器分别与2个无刷直流电机及主控芯片连接。优选的,所述的无刷直流电机智能控制器采用无刷直流电机智能控制器kydbl2430-2e。优选的,所述的无刷直流电机与陀螺仪的距离大于等于60cm,从而可以避免无刷直流电机的磁场对陀螺仪所造成的干扰,使得陀螺仪测量的数据更准确。与现有技术相比,本发明具有以下优点:1、本发明通过铺设rfid卡片,形成rfid网图并存储;然后利用机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;最后将所述离散路径序列作为目标位置进行逐个点到点行进。本发明的行进路径和涉及算法都非常简单,而且成本较低(尤其是本发明采用无源rfid卡片,大大降低了控制成本),适用于室内;2、本发明是对室内医疗自主配送机器人控制的较低成本实现,将面向医疗自动配送市场。该机器人基于履带车的设计可克服诸如阶梯、斜坡等较复杂地形,能有效应对医院的自动配送任务;3、本发明对机器人进行自主行进控制时,无需实时交互定位导航信息,而仅需一次传递目标点,即可实现导航;因此在较为复杂的环境中,即便丢失连接,本发明的自主行进机器人系统也能利用存储的离散路径序列继续运动,避免了机器人停机、脱离控制的情况发生;4、通过采用本发明的方法布设rfid卡片,从而提高了rfid的定位精度及机器人的自主行进的准确率;5、本发明通过将rfid定位技术和图像处理技术相结合,从而可以辅助机器人自主行进,进一步提高了自主行进的准确率,使得机器人系统能够在室内执行自动配送任务;6、本发明采用无刷直流电机智能控制器和2个无刷直流电机作为驱动,从而可以增强机器人车体对地形的适应能力,使得车体在行驶过程中更加平稳,有利于摄像机对路标图形进行准确的采集,进而进行准确的识别,并控制车体自主行进;另外,本发明中无刷直流电机用电子元器件代替了传统的碳刷换向,从而在工作过程中非常静音,可适用于医院、学校、银行等安静的场所及易燃易爆的场所;此外,采用无刷直流电机智能控制器和2个无刷直流电机作为驱动,寿命更长;7、本发明采用激光雷达,从而可以测量到四周障碍物与激光雷达之间的距离,而且返回数据的速率更快,能够实现更灵活的避障;8、本发明中通过利用floyd最短路径算法,(相对于其他算法,比如迪杰斯特拉算法)从而可以实现离线计算出网图中所有点到所有点的最短路径;而且在实际使用过程中,rfid卡片组成的网图一般是固定的,所以使用floyd最短路径算法只要计算一次,把计算结果存在数组里,机器人车体从任意一点出发到任意一点的最短路径通过查询数组里的计算结果即可获得,无需重复计算,从而节约了大量cpu资源和时间;9、本发明中的rfid读写模块采用lmrf3060模块,所述的lmrf3060模块支持uart、ttl接口,开发和使用起来方便,而且和车体数据接口相同,具有开发优势;另外,(相对于现有的frc-522rc522rfid、cv520rfid射频模块等)这款模块的读卡距离更远,可以达到8cm到10cm。因为本发明中需要把rfid读写模块装在车体下,来读取地面上的卡片,而室内定位又基于rfid,所以读卡率就显得十分重要,车体在经过一张地面上的卡片时必须要读出卡片信息。发明人经大量研究发现,这款lmrf3060模块读卡距离更远,读卡率也较高,运行更稳定,因而可以较好的适用于本发明;此外,所述的lmrf3060模块,还具有以下优点:1.支持多种卡片协议(iso14443typea,iso14443typeb,iso15693等),应用范围广泛;2.通过非常简单的串口通讯接口和指令,就可以操作非接触卡完成复杂的卡片流操作;3.模块具有主动读卡模式,可主动读取卡片id号;4.模块天线可拆卸,可满足不同环境的读写需求。本发明中的陀螺仪采用陀螺仪gy953,从而可以字节通过串口进行通信,稳定而易于实现,而且此模块可以工作于连续输出模式,从而省去了向此模块发送数据请求信号的麻烦。本发明中的激光雷达采用激光雷达模块rplidara1,从而可以大大提高采样频率,同时提高使用寿命。本发明中的摄像头采用摄像头ov7725,从而具有更高的帧率(达120帧每秒),而且低照度更好(高速动态性更好),没有模拟输出。10、本发明对机器人车体进行矫正,使车体一直沿着预定直线行进,最终准确的到达目标rfid卡片;此外,本发明中使用磨砂黑胶带来覆盖rfid卡片,不仅不会影响对rfid卡片的识别,而且还可以避免因阳光或灯光太过强烈,导致地面反光进而导致摄像头在识别地面上的黑胶带时发生错误的问题;此外,为了减小反光的影响,还可给摄像头加装滤光片。附图说明图1是本发明的一种实施例的方法流程图;图2是本发明利用路标图形辅助机器人行进的方法流程图;图3是本发明的自主行进机器人的结构连接示意图;图4是rfid卡片形成的有向网图示意图;图5是摄像头采集的包含黑胶带的图片的示意图。附图标记:1-rfid读写模块,2-主控芯片,3-陀螺仪,4-存储模块,5-激光雷达,6-摄像头,7-无线图传模块,8-缓存模块,9-上位机,10-监控摄像头,11-报警电路,12-无线数传模块,13-从控芯片,14-无刷直流电机智能控制器,15-无刷直流电机。为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。具体实施方式本发明的实施例1:一种机器人的自主行进控制方法,如图1所示,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;具体包括以下步骤:s11,在机器人行进范围内的地面上粘贴无源rfid卡片(如s50卡片),并且使得任意两张卡片的中心线(水平的中心线或垂直的中心线)在同一条直线上,相邻两张卡片的距离相等并且小于等于10米;s12,将所铺设的卡片抽象为结点间距离相等的有向网图;对所述的无源rfid卡片进行编号,并使得每个编号对应于每张rfid卡片的唯一id码,存储该对应关系并形成id库;同时利用网图的有向边的二维数组存储相邻rfid卡片的相对方向(比如可分为五种,分别为up(上),down(下),left(左),right(右)和max(无限大),并将up方向作为基准方向,可通过陀螺仪测量后存储于网图中,down=up+(-)180°;left=up-90°;right=up+90°);s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;所述的根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列包括以下步骤:当机器人收到行进目标点的rfid卡片编号后,根据floyd最短路径算法算出当前位置到目标点的最短行进路径,并将所经过的rfid卡片对应的id码依次存储起来;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进;具体包括以下步骤:s31,机器人将当前检测到的rfid卡片的id号作为当前位置,将离散路径序列中第一个rfid卡片的id号作为目标位置;其中,机器人的rfid读写模块可安装于机器人的底部,并且rfid读写模块读取数据时与rfid卡片的垂直距离为1~4cm(更优选为3cm);从而可以更准确的读取获得rfid卡片的id码;s32,(可通过数据库查找算法)查找并获取机器人当前位置和目标位置在网图中的位置及二者之间的方向角;s33,机器人根据所述的方向角向目标位置运动;优选为,采用片内定时器通过输出占空比可调的250hz的pwm控制信号,实现对电机的调速控制;s34,当检测到目标位置的rfid卡片的id号时,则以该rfid卡片的id号作为当前位置,将离散路径序列中第二个rfid卡片的id号作为目标位置,并重复上述步骤,直至到达最终的目标点,机器人停止行进;如图2所示,还包括:s41,机器人在行进过程中,采集地面上的路标图形;s42,提取路标图形中的边沿线;具体包括:首先利用多项式地址修正法消除路标图形的桶型失真,然后利用逆透视算法消除路标图形的梯形失真,再利用中值滤波法对路标图形进行一次滤波,消除之前的两次变换所带来的空洞效应,最后利用canny边缘检测算法,提取出路标图形中的(如红色色块、黑色色块的)边沿线;s43,根据所述的边沿线判断路标图形的种类并执行相应的动作:启动、停止、拐弯;所述的根据所述的边沿线判断路标图形的种类,包括以下步骤:判断是否存在两个相邻的不同颜色的色块(如红黑色块),若存在,则计算某一色块的中心相对于另一色块的中心的角度,即为箭头的角度;若不存在两个相邻的不同颜色的色块,则判断是否存在单一色块的长方体,若存在则视为检测到启动信号,机器人进行启动,或视为检测到终止信号,机器人停止行进(具体根据提前设定好的含义进行动作)。在机器人行进过程中,还包括:对车体进行矫正;具体包括以下步骤:a.沿rfid卡片的中心线方向水平或垂直布设磨砂黑胶带,使得rfid卡片设于磨砂黑胶带的正下方;其中,任意两张卡片的中心线(水平的中心线或垂直的中心线)在同一条直线上;b.安装于机器人车体正前方的摄像头采集前方的图像;c.分析所述图像对应的二维像素数组,并识别磨砂黑胶带对应的黑线在所述二维像素数组中的位置;d.若黑线处于此二维像素数组的中间列,则磨砂黑胶带处于车体的正前方;否则用该黑线所处的二维像素数组中对应的列减去二维像素数组的中间列号,得偏差值;e.若所述偏差值为正,则磨砂黑胶带处于车体的右方,表明此时车体需向右转,故控制左路电机加速,右路电机减速;若所述偏差值为负,则磨砂黑胶带处于车体的左方,表明此时车体需向左转,故控制左路电机减速,右路电机加速;f.重复步骤b~e,即实现了车体的自动矫正,使得车体沿着磨砂黑胶带走直线。实施例2:一种机器人的自主行进控制方法,如图1所示,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进。实施例3:一种机器人的自主行进控制方法,如图1所示,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;具体包括以下步骤:s11,在机器人行进范围内的地面上粘贴无源rfid卡片(如s50卡片),并且使得任意两张卡片的中心线(水平的中心线或垂直的中心线)在同一条直线上,相邻两张卡片的距离相等并且小于等于10米;s12,将所铺设的卡片抽象为结点间距离相等的有向网图;对所述的无源rfid卡片进行编号,并使得每个编号对应于每张rfid卡片的唯一id码,存储该对应关系并形成id库;同时利用网图的有向边的二维数组存储相邻rfid卡片的相对方向。(比如可分为五种,分别为up(上),down(下),left(左),right(右)和max(无限大),并将up方向作为基准方向,可通过陀螺仪测量后存储于网图中,down=up+(-)180°;left=up-90°;right=up+90°)s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进。实施例4:一种机器人的自主行进控制方法,如图1所示,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;所述的根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列包括以下步骤:当机器人收到行进目标点的rfid卡片编号后,根据floyd最短路径算法算出当前位置到目标点的最短行进路径,并将所经过的rfid卡片对应的id码依次存储起来;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进。实施例5:一种机器人的自主行进控制方法,如图1所示,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进;具体包括以下步骤:s31,机器人将当前检测到的rfid卡片的id号作为当前位置,将离散路径序列中第一个rfid卡片的id号作为目标位置;s32,(可通过数据库查找算法)查找并获取机器人当前位置和目标位置在网图中的位置及二者之间的方向角;s33,机器人根据所述的方向角向目标位置运动;优选为,采用片内定时器通过输出占空比可调的250hz的pwm控制信号,实现对电机的调速控制;s34,当检测到目标位置的rfid卡片的id号时,则以该rfid卡片的id号作为当前位置,将离散路径序列中第二个rfid卡片的id号作为目标位置,并重复上述步骤,直至到达最终的目标点,机器人停止行进。实施例6:一种机器人的自主行进控制方法,如图1所示,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进;s41,机器人在行进过程中,采集地面上的路标图形;s42,提取路标图形中的边沿线;s43,根据所述的边沿线判断路标图形的种类并执行相应的动作:启动、停止、拐弯。实施例7:一种机器人的自主行进控制方法,如图1所示,包括以下步骤:s1,铺设rfid卡片,形成rfid网图并存储;s2,机器人将采集到的rfid卡片的id码作为当前位置,并根据行进目标点生成以rfid卡片id码为基本单位的离散路径序列;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进;s41,机器人在行进过程中,采集地面上的路标图形;s42,提取路标图形中的边沿线;具体包括:首先利用多项式地址修正法消除路标图形的桶型失真,然后利用逆透视算法消除路标图形的梯形失真,再利用中值滤波法对路标图形进行一次滤波,消除之前的两次变换所带来的空洞效应,最后利用canny边缘检测算法,提取出路标图形中的(如红色色块、黑色色块的)边沿线s43,根据所述的边沿线判断路标图形的种类并执行相应的动作:启动、停止、拐弯;所述的根据所述的边沿线判断路标图形的种类,包括以下步骤:判断是否存在两个相邻的不同颜色的色块(如红黑色块),若存在,则计算某一色块的中心相对于另一色块的中心的角度,即为箭头的角度;若不存在两个相邻的不同颜色的色块,则判断是否存在单一色块的长方体,若存在则视为检测到启动信号,机器人进行启动,或视为检测到终止信号,机器人停止行进(具体根据提前设定好的含义进行动作)。实施例8:一种自主行进机器人系统,如图3所示,包括机器人本体,还包括:设于机器人本体上的rfid读写模块1、主控芯片2、陀螺仪3和存储模块4,所述的主控芯片2分别与rfid读写模块1、陀螺仪3和存储模块4连接。为了在行进过程中实现自动避障,还可包括:激光雷达5,所述的激光雷达5与主控芯片2连接。优选为所述的激光雷达5采用激光雷达模块rplidara1。为了利用图形路标辅助机器人自主行进,提高自主行进的准确率,还可包括:摄像头6,所述的摄像头6与主控芯片2连接,用于采集地面上的路标图形。为了使得摄像头图像的读取更加稳定,还可包括:缓存模块8,所述的缓存模块8分别与摄像头6和主控芯片2连接。为了提高图片读取速率,所述的缓存模块8可采用fifo芯片al422b;为了提高拍照的稳定性与可靠性,摄像头6可采用ov7725摄像头及其标准外设电路。为了对机器人的行进情况进行显示,还可还包括:上位机9、无线数传模块12和无线图传模块7,所述的上位机9分别与无线数传模块12和无线图传模块7连接,无线数传模块12与主控芯片2连接,无线图传模块7与摄像头6连接。为了实现对机器人现场进行监控,还可包括:监控摄像头10,所述的监控摄像头10与主控芯片2连接。还包括:从控芯片13,所述的从控芯片13分别与激光雷达5、摄像头6和主控芯片2连接。为了在紧急情况下报警提醒路人,还可包括:报警电路11,所述的报警电路11与主控芯片2连接。所述的主控芯片2可采用stm32f103芯片,从而可以采用stm32f103芯片内定时器pwm输出模式,硬件产生频率为250hz、占空比可调的pwm波信号对机器人的电机进行控制;通过控制两路pwm信号的占空比实现两路电机的差速,从而实现机器人的前进、后退、加减速、左右转、在行进中调整方向等效果使其灵活运动。为了将机器人运用到各种地面环境,提高地形适应能力,更加符合实际场景,本发明中所述的机器人可采用履带机器人;为了进一步保证机器人本体上的元器件的连接安全,在机器人本体的左右两侧可各安装有多个震轮组。为了增强机器人车体对不同地形的适应能力,并且减小电机运行时的噪音,同时为了实现摄像头更平稳的采集路标图形,从而提高路标识别的准确率,还包括:无刷直流电机智能控制器14和2个无刷直流电机15,所述的无刷直流电机智能控制器14分别与2个无刷直流电机15及主控芯片2连接。优选的,所述的无刷直流电机智能控制器14采用无刷直流电机智能控制器kydbl2430-2e;2个无刷直流电机15与陀螺仪3的距离大于等于60cm。本发明的一种实施例的工作原理:s1,铺设rfid卡片,形成rfid网图并存储;s2,机器人利用rfid读写模块1采集地面上的rfid卡片,并将采集到的rfid卡片的id码作为当前位置;同时主控芯片2根据行进目标点(可以是在上位机9上设置好的,然后上位机9发送给主控芯片2)生成以rfid卡片id码为基本单位的离散路径序列并存储与存储模块4中;s3,机器人将所述离散路径序列作为目标位置进行逐个点到点行进;具体包括:s31,机器人将当前检测到的rfid卡片的id号作为当前位置,将离散路径序列中第一个rfid卡片的id号作为目标位置;利用所述机器人上搭载的激光雷达5判断前方是否有障碍物的存在,如果有,则认为此次规划出的路径不可行,将此边从地图中删除后重新规划路径;s32,(可通过数据库查找算法)查找并获取机器人当前位置和目标位置在网图中的位置及二者之间的方向角;s33,机器人根据所述的方向角(利用陀螺仪3确定实际移动的角度)向目标位置运动;优选为,采用片内定时器通过输出占空比可调的250hz的pwm控制信号,实现对电机的调速控制;s34,当检测到目标位置的rfid卡片的id号时,则以该rfid卡片的id号作为当前位置,将离散路径序列中第二个rfid卡片的id号作为目标位置,并重复上述步骤,直至到达最终的目标点,机器人停止行进。还包括:s41,机器人在行进过程中,利用摄像头6采集地面上的路标图形并发送至缓存模块8进缓存;s42,主控芯片2通过无线图传模块7获取缓存模块8中的路标图形并提取路标图形中的边沿线;s43,根据所述的边沿线判断路标图形的种类并执行相应的动作:启动、停止、拐弯。也可以在紧急的时候通过报警电路11报警提示路人。也可以利用监控摄像头10监控行进过程中的周围环境,并发送给主控芯片2和上位机9。所述上位机9中显示有电子地图,机器人还回传当前rfid卡片id号给所述上位机9,所述上位机9根据所述rfid卡片id号信息切换所述电子地图的中心或者电子地图上与所述rfid卡片id号信息对应的位置显示标记。所述机器人还将电机转速信息、当前rfid卡片id号信息、目标rfid卡片id号信息、当前指向角度、目标方向角中的一个或多个信息传给所述上位机9进行显示。车体矫正原理:摄像头安装于车体的前方正中央处。摄像头所采集的包含黑胶带的图片如图5所示。对图5所对应的二维像素数组进行分析:数组1若所述的二维像素数组如数组1所示,则表明黑胶带所对应的黑线处于数组的中间列,即黑胶带处于车体的正下方。此时车体的两路电机速度无需改变。数组2若所述的二维像素数组如数组2所示,用黑胶带所对应的黑线所在列号减去中间列号得偏差e=3-4=-1。表明黑胶带处于车体的左边,此时车体需向左转,故需控制左路电机减速,右路电机加速。数组3若所述的二维像素数组如数组2所示,用黑胶带所对应的黑线所在列号减去中间列号得偏差e=5-4=1。表明黑胶带处于车体的右边,此时车体需向右转,故需控制右路电机减速,左路电机加速。rfid网图的构成原理:采用一维数组来存储有向网图的顶点,采用二维像素数组来存储有向网图的边;其中顶点存放的是rfid卡片的序号,边用来存储两张rfid卡片的相对位置。例如图4所述的有向网图(其中min表示无穷小,max表示无穷大):则顶点数组为1234边的二维数组为顶点12341minrightdownmax2leftminmaxdown3upmaxminright4maxupleftmin(1)机器人移动平台的设计与实现原理:本发明的机器人采用金属履带车机器人移动平台,左右可各安装8组震轮组,密布的震轮组可以驾驭复杂地面的颠簸感,使其背负的仪器更加平稳。履带车机器人移动平台具有移动平台体积小、内部开发空间大的优点。机器人主控芯片2可采用stm32f103,从控芯片可采用mk60dn512z,其丰富的片内外设,可以方便机器人进行各种功能的扩展。机器人系统的移动平台上还设有lmrf3060(rfid读写模块)模块、陀螺仪gy953、激光雷达模块rplidara1、无刷直流电机智能控制器kydbl2430-2e。在室内区域,该机器人可执行无需人为控制的自主避障行进。(2)机器人电机驱动硬件实现:电机驱动模块无刷直流电机智能控制器kydbl2430-2e,输入电压范围为10~55v(dc),最大输出电流30a(ac),在混合模式下,可实现两台无刷电机的同步控制,控制量输入端in1控制两台电机的前后转动,控制量输入端in2控制两台电机的左右旋转。使用pwm信号输入时,频率不超过1khz,推荐使用250hz,占空比输入范围为20%~80%。本系统采用片内定时器通过输出占空比可调的250hz的pwm控制信号,实现对电机的调速控制。使用此种pwm调速方式,便于用单片机直接实现,调速范围宽,要想改变电机的速度只需要改变单片机定时器的定时值从而改变输出pwm波的占空比即可,很方便。(3)机器人移动控制原理:对电机的控制,采用stm32f103片内定时器pwm输出模式,硬件产生频率为250hz、占空比可调的pwm波信号。通过控制两路pwm信号的占空比实现两路电机的差速,从而实现机器人的前进、后退、加减速、左右转、在行进中调整方向等效果使其灵活运动。具体的,可通过voidmotorpwm(intleftspeed,intrightspeed)函数,每当需要改变电机转速时,就传输两个pwm波的占空比给该函数,主控芯片利用定时器自动产生对应占空比的pwm波,这样机器人便会产生不同的速度。通过引擎急停、引擎减速、引擎向前加速、引擎向后加速、左右电机相对反向旋转、左电机减速、右电机减速对应的函数便可以方便的实现机器人的控制(所述的引擎急停、引擎减速函数对两个电机的速度同时减小,若此时电机的速度为正值(代表向前),则把存储电机速度的变量减去一个正数(这个数作为此函数的参数,由调用者指定)后调用voidmpwm(void),将此变量重新赋值给单片机定时器的计数值;若此时电机的速度为负值(代表向后),则把存储电机速度的变量加上一个正数后调用voidmpwm(void),将此变量重新赋值给单片机定时器的计数值。引擎向前加速、引擎向后加速、左右电机相对反向旋转、左电机减速、右电机减速函数同理,都是改变电机速度对应的变量,然后调用voidmpwm(void)函数去改变单片机定时器的计数值)。例如:当想实现左转动作时,只需要调用左电机减速的函数,小车减速只需要同时改变两侧电机的pwm波占空比,最后调用电机总控制函数,向其传入模式对应的数值,就可以完成电机速度的改变。(4)机器人的自主行进实现:陀螺仪使用gy-953陀螺仪模块,陀螺仪模块可以将履带车此时的欧拉角、四元素、加速度等多种信息全部发送给控制芯片,但控制芯片所需要的只是陀螺仪此时的方向角,因此这里涉及到字符串提取算法,控制芯片提取出其中计算出方向角所需要的数据(即欧拉角,所述的欧拉角包含俯仰角、航线角和翻滚角,本发明使用航向角作为方向角),并计算出此时的方向角。所述的字符串提取算法为:检测以0x5a作为帧头的帧,然后开始接收数据并将之后接收到的每个字节都存储起来并计数,直到已经接收到了10个字节的数据,则认为已经接收到了一帧完整的欧拉角数据;使计数值归零并等待下一个帧头的到来;将得到的10个字节的数据都存储在数组中,然后识别出相应的航向角数据进行使用。lmrf3060可以检测到rfid卡片id号数据,所发来的数据为一串字符串,其中包含rfid卡片id号,因此同样涉及到对lmrf3060(rfid读取模块)模块发来的字符串进行提取,只提取出rfid卡片id号。激光雷达模块则是通过相应的请求指令获知前方指定角度的障碍距离。通过以下方法进行字符串提取:rfid读取模块检测到rfid卡片后返回的信息格式如下:id:xxxxxxxxxxx,其中,x为任意十六进制数,所以只需以冒号作为起始字符,连续接收冒号后11个字符,则这11个字符即为rfid卡片的id码。(5)已知结点网图的路径规划与行进实现首先,开始时需将机器人车体放置于任意一张rfid识别卡片的上方,位于车盘底部的rfid读写模块读出卡片的id码,通过数据库查找算法,得到卡片的编号,从而知道车体在网图中的位置,操作人员可通过上位机输入目标点的rfid卡片编号,主控芯片接收到目标点卡片编号后根据floyd最短路径算法,算出最短行进路径,并将所经过的结点依次存储起来。车体每到达一个结点时,可通过查询所经过的结点可以获知下一个结点的编码,从而通过查询两个结点之间的边获取行进的方向,再通过陀螺仪配合电机控制,将车体转到目标行进方向。若目标方向前方有障碍物,则在修改网图中当前边为max(无穷大)的前提下再次进行路径规划,或得最短行进路径。在获得目标行进方向的基础上,车体只需沿目标方向直线行走即可到达,这里通过陀螺仪方向检测反馈实现了闭环电机控制,从而确保车体沿直线行进,并且可以到达目标点。(6)激光雷达测距和避障功能的实现在履带式机器人向目标点行进的过程中,未免会遇到障碍物,此时则由激光雷达模块判断是否遇到障碍物。在本机器人上装备的是rplidara1激光雷达模块,5v供电,此模块可以实现在二维平面的6米半径范围内进行360度全方位激光测距扫描,并产生所在空间的平面点云地图信息,并通过uart将测距信息返回给mk60dn512z单片机。尤为有利的是,此模块一秒钟最少可以完成2000次测距,最多甚至可以完成4000次测距。因此不必担心在机器人高速行驶的过程中会出现测距不及时的状况。在每次测距过程中,模块上的测距模块由扫描电机带动,电机转速由单片机输出的pwm波占空比决定,测距模块发射经过调制的红外激光信号,该激光信号在照射到目标物体后产生的反光将被rplidara1的视觉采集系统接收,经过嵌入在rplidara1内部的dsp处理器实时解算,被照射到的目标物体与rplidara1的距离值和当前夹角值将通过uart口返回给单片机。由于机器人只需完成避障工作,因此并不需要将0~360度的测距信息全部返回mk60dn512z单片机。假如以面前为0度,则只需要返回面前的-45度到+45度的测距信息。(7)图像处理原理:本发明的自主行进机器人的摄像头采用ov7725摄像头,ov7725摄像头是一款高速coms彩色摄像头,具有150hz的帧率,且采用了bga封装,拥有良好的电气特性。为了应对处理器主频不高的问题,本发明采用了一个型号为al422b的fifo模块,对摄像头数据进行缓存。为了保证图像处理的稳定性与可靠性,本发明采用四个步骤进行了相关的图像处理:先用多项式地址修正法消除了桶型失真,然后用逆透视算法,消除了图像的梯形失真,再用中值滤波法,对图像进行了一次滤波,消除了之前的两次变换所带来的空洞效应,最后用canny边缘检测算法,提取出图像中红色色块和黑色色块的边沿线,之后就可以根据实际情况进行相应的判别,并向主控芯片返回了结果。消除桶型失真桶型失真是由镜头引起的成像画面呈桶形膨状的失真现象。在使用广角或使用变焦镜头的最广角端时,最容易产生桶型失真现象。由于桶型失真可以将画面中的直线变成弯曲的曲线,所以有必要对其进行一定的处理。可以选用多项式地址修正法,记像点为[rxry1],物点为[xy1],则他们两者符合下面的公式1,通过调节a的大小可以得到较好的桶型失真矫正效果。(2)消除梯形失真因为rfid卡片贴在地面上,与摄像头的方向并不垂直,所以看到的图像会有梯形失真,导致看到的标志物的图像与实际不同,所以本发明选择对其进行逆透视变换,消除其梯形失真。记像点为x,y,物点为x,y,那么根据逆透视的理论,他们符合下面的公式2:如此可以推导出公式3:进一步可得下图中的矩阵方程:因为上式要有唯一解,需要保证增广矩阵为满秩,即rank(a|b)=8,那么就需要四组不相关的图像坐标系的点。由于世界坐标系的点在标定的时候,是可知道的,那么可以选择一个矩形的四个顶点,将之代入上式即可得到所需要的参数。之后就可以利用这些参数进行逆透视变换。(3)消除空洞效应因为在用以上方法校正失真图像时,物点与像点不可能会完全对应,所以得到的图像会存在空洞效应,空洞效应会严重影响图像校正的效果,应予以消除。为了减少计算量,本发明选择了3×3窗口的中值滤波法来消除。中值滤波法能在抑制随机噪声的同时不使边缘模糊。把以某点(x,y)为中心的小窗口内的所有象素的灰度按从大到小的序排列,将中间值作为(x,y)处的色度值(若窗口中有偶数个象素,取两个中间值的平均)。中值滤波的效果依赖于两个要素:邻域的空间范围和中值计算中涉及的像素点。(4)指定色块轮廓提取本发明采用canny算子来对路标图形中的边沿进行提取。(5)根据实际情况进行判断比如在实际中设定的路标图形分别是启动(如一个全黑的横杠),转向(如一个内置红色和黑色方块的箭头)和停止(如一个纯红的横杠)。所以根据步骤(4)中所得的红黑色块的边沿,只需先判断是否存在两个相邻是红黑色块,若存在,则计算红块的中心相对于黑块中心的角度,即为箭头的角度,而若不存在,则判断是否存在黑色长方体,若存在则视为看到启动信号,若不存在则再判断是否存在红色长方体,若存在则视为看到终止信号,若不存在则视为图像中没有有用信号。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1