一种服务机器人及其控制方法与流程

文档序号:11426480阅读:433来源:国知局
一种服务机器人及其控制方法与流程

本发明涉及控制系统技术领域,尤其涉及一种能实现自动寻线行走和自主避障功能的服务机器人及其控制方法。



背景技术:

随着社会的发展和科技的进步,近些年,服务机器人越来越多的进入到迎宾、餐饮、救援、监护等人类的日常生活中,服务机器人展现出比工业机器人更为广阔的市场空间。因此,服务机器人成为机器人学领域研究的新热点。

服务机器人主要由机械结构和控制系统两部分组成,控制系统是服务机器人实现各种功能的基础,运动控制是机器人控制系统中的重要一环,运动控制的好坏对机器人实现其他复杂功能有重要的影响。

目前国内用于餐馆、科技馆、医院等场所的服务机器人常用寻线行走的运动控制方式。发明专利cn102087759a公开了一种可寻迹医疗通信服务机器人,该专利的寻线部分是通过安装在底部的反射型光电探测器内的砷化镓红外发光二极管发射红外光,通过光电三极管接收发射光,其受环境光强度影响较大,稳定性差,并且其不具有避障功能,在线路上有障碍物时不能越过障碍物。发明专利cn104090575a公开了一种自动巡线机器人控制系统及自动巡线机器人,将红外寻线和红外避障模块集成一块stm32主控板上,需要对应的控制板具有多通达adc功能,导致其采样时间长,响应速度慢。发明专利cn105867375a公开了一种服务机器人的行走控制系统及控制方法,利用安装在底盘前后两端的两个磁导航传感器寻线,该专利寻线部分所用的传感器数量少,且此类寻迹是通过检测地面磁条信号来判断车体偏移轨道距离,信息采集容易出现误差。

总的来说,服务机器人的运动控制已取得显著成果,但在运动控制的稳定性、可靠性和灵活性等方面仍有很大的提高空间。



技术实现要素:

本发明针对现有技术存在的问题提出一种自动寻线和自主避障服务机器人及其控制方法,以达到提高系统的可靠性和稳定性的目的。

本发明采用的技术方案是:包括本体和运动控制系统,所述运动控制系统设在本体上、包括stm32嵌入式主控板和arduino控制板,

stm32嵌入式主控板的第一接口通过rs232串口与用户机相连,

第二接口通过can总线外接本体中的行走机构内设有的各驱动器,所述驱动器控制直流电机,各直流电机通过带有的编码器反馈连接各对应驱动器,

第三接口通过模数转换电路外接红外光电开关传感器,

第四接口通过can总线外接arduino控制板的第一接口,arduino控制板的第二接口通过模数转换电路外接红外传感器和超声波传感器。

所述stm32嵌入式主控板,用于直流电机的运动控制、红外光电开关的信号激励与采集以及接收arduino控制板传来的避障信息;

用户机,用于操作人员对机器人进行直观的控制命令发送;

驱动器,用于解析数据指令,设定速度、加/减速度命令,驱动直流电机按指定要求启动、停机或加速,对直流电机进行过载、短路或欠压保护;

编码器,用于将直流电机的各项转动参数进行编制、转换为可用的电信号,检测反馈直流电机速度、位置和角位移信息;

减速器,用于降速,提高直流电机的输出扭矩,同时降低负载的惯量;

直流电机,用于实现本体中的行走机构驱动轮的旋转,使机器人按规划路径运动;

can总线,用于连接stm32嵌入式主控板、驱动器和编码器,实现数据的传输;

红外光电开关,用于将红外线信号发送到所要检测的地面上,并接收采集回来的信号;

超声波传感器,用于采集机器人在应急避障区的环境信息,将采集的信息传输至arduino控制板;

红外线传感器,用于补充机器人在应急避障区的环境信息,与超声波测距传感器组合使用,将采集的信息反馈至arduino控制板;

arduino控制板,用于根据多个超声波测距传感器和红外测距传感器采集到环境信息,完成信息的处理,并且作出避障决策,并将避障信息发送给stm32嵌入式主控板。

一种服务机器人的控制方法,包括以下步骤:

步骤1,用户机控制软件读入一组运动控制数据,并将该数据及相关指令通过rs232串口发送出去;

步骤2,红外光电开关传感器将寻线的数据信息传输给stm32嵌入式主控板;

步骤3,arduino控制板将避障决策信息发送给stm32嵌入式主控板;

步骤4,搭载在机器人上的stm32嵌入式主控板接收用户机发送来的运动控制数据和指令、红外光电开关传输来的寻线信息以及arduino控制传来的避障决策信息,在stm32嵌入式主控板内进行信息融合处理,将运动控制命令通过can总线发送到驱动器中;

步骤5,上述驱动器接收到运动控制命令,然后解析数据,并且根据数据中的要求设定指定的转速、位置或启动、停机,并将解析后的信息传输给相应的直流电机;

步骤6,上述直流电机接收到上述解析信息,并做出指定的运动,并将运动传递给减速器;

步骤7,上述减速器将上述直流电机传递的运动进行降速,并提升扭矩,然后输出给负载;

步骤8,编码器将上述直流电机的运动参数进行编制、转换为可用的电信号,然后将此转换后的信号反馈给相应的驱动器;

步骤9,上述转换后的电信号输入给相应驱动器,该驱动器对上述直流电机的运动与原始指令数据进行对比评估,如有差别,则进行修改补偿;

步骤10,上述修改补偿过程重复步骤5~9,直至直流电机的运动与原始指令数据无差别为止;

步骤11,在寻线行走过程中重复步骤2~10,保证机器人一直在寻线行走并在行走过程中遇到障碍物后绕过障碍物回到线路上。

步骤2包括以下子步骤:

步骤1),红外光电开传感器接收stm32嵌入式主控板指令发出红外线;

步骤2),发出的红外线经地面吸收和反射后传回到红外光电开传感器;

步骤3),红外光电开传感器根据接收反射回来的红外线强弱确定红外接收头是否导通,输出电压信号;

步骤4),电压信号经模数转换电路后传递给stm32嵌入式主控板判断机器人是否在线路上。

步骤3包括以下子步骤:

步骤1),超声波测距传感器分布在机器人的左方、前方和右方共三个方向,arduino控制板接收stm32嵌入式主控板指令发出数字高电平脉冲,将超声波信号向前述三个方向发送,通过接收采集回波信号,测量该三个方向上障碍物的距离值;

步骤2),红外测距传感器分布在机器人的左方、前方和右方共三个方向,根据arduino控制板发出模拟信号,红外发射器发射红外线,检测反射的红外线,基于三角测距原理,测量该三个方向上障碍物的距离值;

步骤3),上述arduino控制板根据上述传感器采集的环境信息,完成信息的处理,即多传感器信息的一级融合,将同一个方向上的超声波测距传感器和红外测距传感器的测量值,通过bp神经网络算法的处理,融合为该方向唯一确定的期待距离值;

步骤4),上述arduino控制板根据三个方向的信息处理后结果,完成信息的决策,即多传感器信息的二级融合;根据三个方向处理后的距离值,通过模糊推理算法的决策,融合为一个转向角度,将转向角度信息发送给stm32嵌入式主控板。

步骤4包括以下子步骤:

步骤1)、stm32嵌入式主控板接收红外光电开关传感器信息判断机器人是否在线路上,如果在,按用户机运动控制指令继续行走,如果不在,改变两驱动轮转速,调整运动方向,使机器人回到路线上;

步骤2),stm32嵌入式主控板接收arduino控制板信息判断机器人行走线路上是否有障碍物;如果没有,机器人在线路上继续行走,如果有,根据避障信息采集得到的转向角度,改变两驱动轮转速,调整运动方向,使机器人绕过障碍物后回到路线上。

本发明提供了一种自动寻线和自主避障的服务机器人及其控制方法,采用低功耗、低成本、高集成度的微控制器作为自动寻线和自主避障机器人控制系统的基础,实现自动寻线和自主避障的功能。本发明采用多个回路的pid控制算法来控制直流电机,同时结合各种传感器信息进行对比评估,以提高机器人寻线行走和避障的可靠性和稳定性,同时,应用自主避障功能能提高机器人在行走时的安全性。本发明采用can总线进行数据传输,可以使多个模块使用同一信息传输路径,简化了系统接口设计。本发明将控制系统分为各个子模块,维护简单,使系统具有良好的可维护性、可扩展性和较好的经济性,通过设置可拓展模块,增加应用功能,从而使本发明的系统应用更方便,应用成本更低。

附图说明

图1是本发明的机器人机械结构图,

图2是本发明的机器人控制系统硬件组成图,

图3是本发明的机器人控制系统软件总体结构图,

图4是本发明的机器人自动行走和自主避障的工作流程图,

图5是本发明机器人红外关电开关传感器布局示意图,

图6是本发明服务机器人超声波和红外线传感器布局示意图,

图7是三角测距的原理图,

图8是bp神经网络算法原理图,

图9是模糊推理算法图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

本发明中的的机器人本体如图1所示,机器人行走机构采用四轮轮式结构,两驱动轮分布在机器人行走机构左右两侧,采用差分驱动模式,前后轮为两万向轮,机器人可以实现绕自身中心零半径回转,提高运动的灵活性。躯干支撑机构作为避障信息采集的传感器载体,搭载在行走机构上部。

本发明如图1-9所示,包括本体和运动控制系统,所述控制系统设在本体上,包括一stm32嵌入式主控板,arduino控制板,stm32嵌入式主控板的第一接口通过rs232串口与用户机相连,

第二接口通过can总线外接机器人行走机构内设有的各驱动器,所述的驱动器控制直流电机,各直流电机通过带有的编码器反馈连接各对应驱动器,

第三接口通过模数转换电路外接红外光电开关传感器,

第四接口通过can总线外接arduino控制板的第一接口,arduino控制板的第二接口通过模数转换电路外接红外传感器和超声波传感器。

本发明采用寻线模块和避障模块信息分开采集的方法,加快数据采集速度和处理速度,提高机器人运动控制的实时性。机器人控制系统硬件组成和控制系统软件总体结构分别如图2、3所示。

各直流电机通过减速器减速増扭。

stm32嵌入式主控板,用于直流电机的运动控制,红外光电开关的信号激励与采集,接收arduino控制板传来的避障信息。

用户机,为内嵌控制软件的电脑,用于操作人员对机器人进行直观的控制命令发送;

驱动器,解析数据指令,设定速度、加/减速度等命令,驱动直流电机按指定要求启动、停机或加速,对直流电机进行过载、短路或欠压保护;

编码器,将直流电机的各项转动参数进行编制、转换为可用的电信号,检测反馈直流电机速度、位置和角位移信息;

减速器,用来降速,提高直流电机的输出扭矩,同时降低负载的惯量;

直流电机,用来实现机器人行走机构驱动轮的旋转,使机器人按规划路径运动;

can总线,用来连接控制主板、驱动器和编码器,实现数据的传输;

红外光电开关:用来将红外线信号发送到所要检测的地面上,并接收采集回来的信号;

超声波传感器:采集机器人在应急避障区的环境信息,将采集的信息传输至控制板;

红外线传感器:补充机器人在应急避障区的环境信息,与超声波测距传感器组合使用,将采集的信息反馈至控制板;

arduino控制板:应急避障模块的处理器,根据多个超声波测距传感器和红外测距传感器采集到环境信息,完成信息的处理,并且作出避障决策,并将避障信息发送给stm32主控板。

一种服务机器人的控制方法,包括以下几个步骤:

步骤1,用户机控制软件读入某一组运动控制数据,并将该数据及相关指令通过rs232串口发送出去;

步骤2,红外光电开关传感器将寻线的数据信息传输给stm32嵌入式主控板;

步骤3,arduino控制板将避障决策信息发送给stm32嵌入式主控板;

步骤4,搭载在机器人上的stm32嵌入式主控板接收用户机发送来的运动控制数据和指令、红外光电开关传输来的寻线信息以及arduino控制传来的避障决策信息,在stm32嵌入式主控板内进行信息融合处理,将运动控制命令通过can总线发送到驱动器中;

步骤5,上述驱动器接收到运动控制命令,然后解析数据,并且根据数据中的要求设定指定的转速、位置或启动、停机,并将解析后的信息传输给相应的直流电机;

步骤6,上述直流电机接收到上述解析信息,并做出指定的运动,并将运动传递给减速器;

步骤7,上述减速器将上述直流电机传递的运动进行降速,并提升扭矩,然后输出给负载;

步骤8,编码器将上述直流电机的运动参数进行编制、转换为可用的电信号,然后将此转换后的信号反馈给相应的驱动器;

步骤9,上述转换后的电信号输入给相应驱动器,该驱动器对上述直流电机的运动与原始指令数据进行对比评估,如有差别,则进行修改补偿;

步骤10,上述修改补偿过程重复步骤5~9,直至直流电机的运动与原始指令数据无差别为止;

步骤11,在寻线行走过程中重复步骤2~10,保证机器人一直在寻线行走并在行走过程中遇到障碍物后绕过障碍物回到线路上。

步骤2包括以下子步骤:

步骤1),红外光电开传感器接收stm32嵌入式主控板指令发出红外线;

步骤2),发出的红外线经地面吸收和反射后传回到红外光电开传感器;

步骤3),红外光电开传感器根据接收反射回来的红外线强弱确定红外接收头是否导通,输出电压信号;

步骤4),电压信号经模数转换电路后传递给stm32嵌入式主控板判断机器人是否在线路上。

步骤3包括以下子步骤:

步骤1),超声波测距传感器分布在机器人的左方、前方和右方共三个方向,arduino控制板接收stm32嵌入式主控板指令发出数字高电平脉冲,将超声波信号向前述三个方向发送,通过接收采集回波信号,测量该三个方向上障碍物的距离值;

步骤2),红外测距传感器分布在机器人的左方、前方和右方共三个方向,根据arduino控制板发出模拟信号,红外发射器发射红外线,检测反射的红外线,基于三角测距原理,测量该三个方向上障碍物的距离值;

步骤3),上述arduino控制板根据上述传感器采集的环境信息,完成信息的处理,即多传感器信息的一级融合,将同一个方向上的超声波测距传感器和红外测距传感器的测量值,通过bp神经网络算法的处理,融合为该方向唯一确定的期待距离值;

步骤4),上述arduino控制板根据三个方向的信息处理后结果,完成信息的决策,即多传感器信息的二级融合;根据三个方向处理后的距离值,通过模糊推理算法的决策,融合为一个转向角度,将转向角度信息发送给stm32嵌入式主控板。

步骤4包括以下子步骤:

步骤1)、stm32嵌入式主控板接收红外光电开关传感器信息判断机器人是否在线路上,如果在,按用户机运动控制指令继续行走,如果不在,改变两驱动轮转速,调整运动方向,使机器人回到路线上;

步骤2),stm32嵌入式主控板接收arduino控制板信息判断机器人行走线路上是否有障碍物;如果没有,机器人在线路上继续行走,如果有,根据避障信息采集得到的转向角度,改变两驱动轮转速,调整运动方向,使机器人绕过障碍物后回到路线上。

以下为机器人在寻线行走过程中寻线信息采集以及寻线行走控制的方法:

红外光电开关传感器布局如图5所示,红外光电开关传感器采用一字形排布,一排安装了8个红外光电开关传感器,a1到a8是红外光电开关传感器的位置,a4、a5号传感器的中心均处于机器人的中心线上。定义数组a【1,2,..8】的取值为8个红外光电开关传感器的输出值是0或1(0是代表有黑色线路、1是代表白色地面)。

机器人在寻线行走的时,通过主控板stm32通过周期性发出采样的控制指令,a1到a8号传感器发出并接收地面反射回来的红外线,根据接收反射回来的红外线强弱确定红外接收头是否导通,输出电压信号,电压信号经模数转换电路后传递给stm32嵌入式主控板,得到各个传感器的状态信息,进而得到机器人偏离黑线的程度,给定不同的控制参数,进而给定左右两驱动轮不同的速度,从而实现机器人的寻线行走。

当a1、a2、a3号传感器中有一个或多个踩线,说明机器人往右偏离黑线,通过给定速度控制左轮减速右轮加速,可使得机器人往左修正方向;当a6、a7、a8号传感器中有一个或多个踩线,说明机器人往左偏离黑线,此时通过给定速度控制左轮加速右轮减速,可使得机器人往右修正方向。通过采集传感器信息得到各种不同的数组状态,对应各个不同的数组状态给定不同的控制信息,使机器人保持寻线行走。

以下步骤为机器人在寻线行走过程中避障信息采集和发送的方法:

超声波测距传感器和红外线测距传感器分布在躯干支撑机构的外围,具体分布位置如图6所示。其中前方测距传感器组包括超声波测距传感器1和红外线测距传感器1、2、3,左方测距传感器组包括超声波测距传感器2和红外线测距传感器4,右方测距传感器组包括超声波测距传感器3和红外测距传感器3。

arduino控制板接收stm32嵌入式主控板指令,依次循环向前方、左方和右方的超声波测距传感器发送数字高电平脉冲,传感器将超声波信号向前述三个方向每隔60ms依次发送,通过接受采集回波信号,测量该三个方向上障碍物的距离值。

arduino控制板与此同时依次循环向前方、左方和右方的红外线测距传感器发送模拟高电平信号,红外发射器向前述三个方向每隔60ms依次发射红外线,在规定时间内检测反射的红外线,基于三角测距原理,测量上述三个方向障碍物的距离值。

三角测距原理:红外发射器按照一定的角度发射红外光束,当遇到物体以后,光束会反射回来。反射回来的红外光线被ccd检测器检测到以后,会获得一个偏移值l,利用三角关系,在知道了发射角度a,偏移距l,中心矩x,以及滤镜的焦距f以后,传感器到物体的距离d就可以通过几何关系计算出来了,三角测距原理如图7所示。

上述控制板根据上述传感器采集的环境信息,完成信息的特征级处理,即多传感器信息的一级融合,将同一个方向上的超声波测距传感器和红外测距传感器的测量值,通过bp神经网络算法的处理,融合为该方向唯一确定的期待距离值。按照此类方法依次处理三个方向的距离值。

bp神经网络算法:将超声波传感器的测量值和红外线传感器的测量值作为训练样本的输入变量,实际的距离值作为训练样本的输出变量。在正向传播中,各层的连接权值和阈值暂时任意取值。训练样本用于bp神经网络的学习,在输出层得到bp神经网络的学习结果,与输出变量进行比较,通过反向传播,调整各层的连接权值和阈值,直至输出的学习结果输出变量的误差在给定范围内。bp神经网络学习完毕后,可作为避障程序中的一级信息融合,bp神经网络算法如图8所示。

上述控制板根据三个方向处理后的特征级信息,完成避障信息的决策级融合,即多传感器信息的二级融合。根据上述的三个距离值,通过模糊推理算法的决策,融合为一个转向角度,将转向角度信息发送给stm32嵌入式主控板。

模糊推理算法:将左方、前方和右方的障碍物距离值作为模糊控制器的输入变量,将机器人的转动角度作为模糊控制器的输出变量。各变量的数字量通过隶属度函数,转化为模糊语言变量。通过专家经验建立的模糊规则表,运用mamdani法则,求出模糊输入变量所对应的模糊输出变量。再根据加权平均法和隶属度函数,将模糊输出变量转化为精确的数字量,模糊推算算法流程图如图9所示。

以下为机器人在寻线行走过程中在stm32嵌入式主控板内进行信息融合处理的方法:

为使机器人在运动过程中能顺利实现自动寻线和自主避障的功能,需将寻线信息、避障信息以及运动控制命令等在主控板内进行处理,最终得到机器人的运动控制指令。首先,stm32嵌入式主控板接收红外光电开关传感器信息判断机器人是否在线路上,如果在,按用户机运动控制指令继续行走,如果不在,改变两驱动轮转速,调整运动方向,按上文所述的寻线行走方法使机器人回到路线上。同时,stm32嵌入式主控板接收arduino控制板信息判断机器人行走线路上是否有障碍物;如果没有,机器人在线路上继续行走,如果有,根据避障信息采集得到的转向角度,改变两驱动轮转速,调整运动方向,运动1s后,判断机器人前方是否还有障碍物,如果有,继续执行避障指令,如果没有,按上述寻线方法使机器人重新回到线路上继续寻线行走。机器人自动行走和自主避障的工作流程图如图4所示。

本发明包括:寻线模块、避障模块以及运动控制模块,其中寻线模块采用两排红外光电开关传感器用于获得机器人的寻迹信息,并将寻迹信息发送给stm32嵌入式主控板,避障模块采用红外线传感器和超声波传感器获得机器人所处环境的障碍物信息,并在arduino控制板内将传感器信息融合,输出避障角度信息到stm32嵌入式主控板,运动控制模块在stm32嵌入式主控板内融合用户机的控制指令、寻迹信息以及避障信息,得到机器人的下一步运动控制规划,并发送运动控制命令给相应的驱动器。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1