一种智能电网巡线机器人的控制方法与流程

文档序号:18462483发布日期:2019-08-17 02:09阅读:505来源:国知局
一种智能电网巡线机器人的控制方法与流程

本发明专利涉及一种机器人的控制方法,尤其是一种集合多类传感器、多信息处理系统的智能电网巡线机器人的控制方法。



背景技术:

随着社会的不断发展,科学技术水平的不断提高,人们希望创造出一种来代替人来做一些非常危险,或者要求精度高等事情的工具,于是就诞生了机器人这门学科。世界上诞生第一台机器人诞生于1959年,至今已有50多年的历史,机器人技术也取得了飞速的发展和进步,现已发展成一门包含:机械、电子、计算机、自动控制、信号处理,传感器等多学科为一体的性尖端技术。巡线机器人共历了三代技术创新变革:

第一代巡线机器人是可编程的示教再现型,没有装载任何传感器,只是采用简单的开关控制,通过编程来设置巡线机器人的路径与运动参数,在工作过程中,不能根据环境的变化而改变自身的运动轨迹。

第二代巡线机器人支持离线编程,具有一定感知和适应环境的能力,这类巡线机器人装有简单的传感器,可以感觉到自身的运动位置,速度等其他物理量,电路是一个闭环反馈的控制系统,能适应一定的外部环境变化。

第三代巡线机器人是智能的,目前在研究和发展阶段,以多种外部传感器构成感官系统,通过采集外部的环境信息,精确地描述外部环境的变化。智能巡线机器人,能独立完成任务,有其自身的知识基础,多信息处理系统,在结构化或半结构化的工作环境中,根据环境变化做出决策,有一定的适应能力,自我学习能力和自我组织的能力。为了让巡线机器人能独立工作,一方面应具有较高的智慧和更广泛的应用,研究各种新机传感器,另一方面,也掌握多个、多类传感器信息融合的技术,这样巡线机器人可以更准确,更全面的获得所处环境的信息。

随着我国科学技术的不断发展,以物理电网为基础,以特高压电网为骨干网架、各电压等级电网协调发展的坚强电网为基础现将先进的传感测量技术、通讯技术、信息技术、计算机技术和控制技术与物理电网高度集成形成的新型电网。它以充分满足用户对电力的需求和优化资源配置、确保电力供应的安全性、可靠性和经济性、满足环保约束、保证电能质量、适应电力市场化发展等为目的,实现对用户可靠、经济、清洁、互动的电力供应和增值服务。因此,在智能电网中,将电网中的故障设备,以最快的速度从电网系统中隔离出来,并且在几乎自动化的状态下实现系统自我恢复到正常运行状态,从而做到几乎不中断对用户的供电服务显得尤为重要。智能巡线机器人在电网技术中得到了广泛的应用。



技术实现要素:

本发明的目的在于提供一种程序简单、易操作的多传感器智能电网巡线机器人的控制方法。

一种智能电网巡线机器人的控制方法,包括:

步骤一,开启控制系统,主程序进行初始化运行;

步骤二,从左右探头分别接收检测线状标识的信号,检测函数对检测数据进行判断;

步骤三,如果没有检测到线状标识,则暂不启动电机驱动模块,并重新接收检测信号、进行判断;

步骤四,如果检测到线状标识,判断检测数据是否为第一信号,所述第一信号为左右探头同时检测到线状标识,如果是第一信号,则启动电机驱动程序,发出第一驱动信号,驱动机器人前进;

步骤五,如果不是第一信号,则立即判断检测数据是否为第二信号,所述第二信号为左侧探头检测到线状标识但右侧探头未检测到线状标识,如果是第二信号,则向电机驱动程序发出第二驱动信号,驱动机器人左转向继续前进;

步骤六,如果不是第二信号,则必定为第三信号,所述第三信号为右侧探头检测到线状标识但左侧探头未检测到线状标识,向电机驱动程序发出第三驱动信号,驱使机器人右转向继续前进;

步骤七,如果检测到停止线,则停止前进;如果没有检测到停止线,则启动障碍物检测子程序,从红外线传感器接收障碍物反射信号,如果没有接收到反射信号,则继续前进;

步骤八,如果接收到障碍物反射信号,则启动判断处理程序,判断是否为第四信号,所述第四信号为左侧红外线传感器接收到障碍物信号,如果是第四信号,则发出第四驱动信号,驱动机器人右转调整位置,继续前进;

步骤九,如果不是第四信号,则立即判断是否为第五信号,所述第五信号为右侧红外线传感器接收到障碍物信号,如果是第五信号,则发出第五驱动信号,驱动机器人左转调整位置,继续前进;

步骤十,如果不是第五信号,则立即判断是否为第六信号,所述第六信号为中间红外线传感器接收到障碍物信号,如果是第六信号,则发出第六驱动信号,驱动机器人直线后退,继续前进;

步骤十一,如果不是第六信号,则继续前进,重复执行步骤二至步骤十一。

进一步,所述左右探头为光电传感器,分别安装在巡线机器人前方的左、右处,所述光电传感器全部放在同一条直线上。

进一步,所述红外线传感器发射管和接收管为3~5对。

本发明专利提供的巡线机器人的控制方法采用了采用单片机作为整个系统的核心,具有控制简单、方便、快捷、资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。一片电机驱动芯片可分别控制两个直流电机,它的使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。采用反射型光电传感器,红外对管制作巡线电路,当检测到线状标识时,红外接收管导通否则红外对管截止,通过比较器进行电压比较,把电平状态传给单片机然后由其处理,单片机通过接收到的高低电平为依据来确定线状标识的位置和巡线机器人前进的路线这种方式更加的可靠稳定。采用优良的计算机算法,软件系统稳定、高效。

附图说明

图1是本发明智能电网巡线机器人的控制方法之主控制模块电路示意图。

图2是本发明智能电网巡线机器人的控制方法之主程序流程示意图。

图3是本发明智能电网巡线机器人的控制方法之详细算法流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明中的智能电网巡线机器人,如图1所示,包括主控制模块、电机驱动模块、巡线模块、避障模块、电源模块、手机遥控模块和显示模块,所述电源模块为整个系统提供电压,所述避障模块采集信号,回传给所述主控制模块,当巡线机器人碰到障碍物时,使巡线机器人进行及时避障;所述巡线模块收集线状标识信号,并传给所述主控制模块,所述主控制模块发送控制信号给所述电机驱动模块带动车轮转动,以控制所述避障巡线机器人,使智能巡线机器人自动巡线状标识;所述显示模块接收主控制模块发送的巡线机器人行进信号,并显示;所述手机遥控模块发射遥控信号于所述的主控制模块。

所述巡线机器人选用单片机作为巡线机器人的主控制模块。所述单片机作为主控制系统,当各个模块传输过来的信号,所述单片机接收各模块的信号,从而对各模块下达指令,使各模块完成他们相应的功能,从而使有机的整体系统稳定工作,达到巡线机器人的巡线避障的效果。所述单片机的功率消耗低,运算速度快控制功能强,抗干扰能力强,可靠性高,性能价值比高;具有32个i/o口,扩展了多种串行口,2个16位可编程定时计数器,系统扩展容易。单片机的指令系统功能兼容,大大降低了软件部分的设计,也降低了电路设计的难度。

所述主控制模块电路还设有复位时钟电路。所述复位电路包含了门电路以及电容电阻,可选用以上三个构成复位电路,简单而且价格低。所述单片机内部有一个高增益反响放大器,用于构成振荡器,通过在xtal1和xtal2两端跨接晶振,再利用芯片的内部振荡电路,构成稳定的自激振荡电器,其发出的脉冲直接送入内部时钟电路。

所述智能巡线机器人通过车体前部的光电传感器检测线状标识,发送信号到主控制模块,然后主控制模块对检测信号进行处理,并控制电机校正正偏移量,从而实现巡线功能。如果前部的两个传感器都检测到线状标识,传感器将发出信号,那么后轮的两个电机继续接通运转,驱动巡线机器人前进。但是如果只有一个传感器检测到信号,那么检测到信号的传感器将发出信号,并且该侧的电机继续前进,另一侧停止运转,以便达到转向的目的。

所述智能巡线机器人选用了两个光电传感器,分别安装在巡线机器人前方的左、右处,所述巡线传感器全部放在同一条直线上,来控制巡线机器人的方向。巡线原理是当巡线机器人上的光电传感器循到线状标识,输出电平为低电平,把信号传给单片机,使单片机控制电机驱动模块输入口的高低电平,从而来控制巡线机器人的车轮来完成巡线机器人的巡线功能。本发明还采用了双电压比较器,所述双电压比较器的输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受vcc端电压值的限制.此输出能作为一个简单的对地sps开路(当不用负载电阻没被运用),输出部分的陷电流被可能得到的驱动和器件的β值所限制.当达到极限电流(16ma)时,输出晶体管将退出而且输出电压将很快上升。所述双电压比较器内部采用双列直插8脚塑料封装(dip8)和微形的双列8脚塑料封装。

所述智能巡线机器人选用红外发射和接收二极管用于巡线机器人的避障模块。所述避障模块为若干成对设置的红外发射和接收管,安装于巡线机器人外廓,所述红外发射管发射出一定量频率的红外线,若巡线机器人任意所述红外发射二极管检测到有障碍物,红外线就会被障碍物发射回来,被所述红外接收管接收,经过电压比较器处理将信号传给主控制模块。

红外接收管能很好地接收红外发射管发射的波长为940nm的红外光信号,而对其他波长的光线则不能接收,从而保证了接收的准确性和灵敏度。将五个红外传感器分别置于巡线机器人的左端、中端和右端。当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的ttl输出端为高电平,相应的指示发光二极管一直为熄灭状态;当被测物体出现在检测范围内时,红外线被反射回来,且强度足够大,红外接收管导通,此时模块的ttl输出端为低电平,相应的指示发光二极管被点亮。将信号传送给红外接收二极管,经过电压比较器将信号传送给单片机。单片机接收到信号之后进行判断执行相应动作,进而控制智能巡线机器人,使巡线机器人能够自动的躲开障碍物。

由此,利用红外传感器检测道路前方的障碍物,单片机通过检测各传感器的工作状态,并将采集到的数据进行综合分析处理后,产生高低电平控制电机驱动模块工作,实现对巡线机器人方向和速度的控制,从而实现电动巡线机器人自动避障的功能。

所述智能巡线机器人的电机驱动模块采用15脚封装的驱动芯片,内部有4通道逻辑驱动电路。利用驱动芯片及其外部辅助电路和电机构成驱动电路。单片机i\o口接驱动芯片的六个输入控制端in1,in2,in3,in4以及pwm2和pwm2,驱动芯片的两个输出端moto1,moto2分别接两个电机。d3-d9主要是保护电路,保护驱动芯片烧坏,因为当系统断电时,驱动芯片停止工作,但是电机由于惯性还会继续运动,此时电机相当于一个发电机,向外部电源发电。这个电压如果直接加到输出端就可能引起驱动芯片烧坏。因此,在驱动芯片上设置8个快恢复二极管,把电机断电时所发的电能吸收掉,这样就可以保护驱动芯片不被烧坏。

电机驱动芯片的输入端直接接在单片机上,电机驱动芯片的输出端outa1和outa2接巡线机器人左轮,outb1和outb2接巡线机器人右轮,车轮转动状态的逻辑如表1所示,单片机控制驱动电路输入端的高低电平,使巡线机器人能够行驶,暂停,左转、右转。

表1为电机驱动芯片的逻辑功能表。

表1电机驱动芯片的逻辑功能

显示模块为四位数码管,用来显示实时的巡线状态。通过数码管上的显示,我们可以清楚的判断巡线机器人是否正常工作,以及工作的状态。当巡线机器人某一路检测到黑底线状标识时,在数码管上对应的位上输出1,当巡线机器人某一路检测到白底线状标识时,在数码管对应的位上输出0。例如当巡线机器人第2、3路传感器检测到黑底线状标识,其他两路检测到白底线状标识时,数码管上显示0110。

在实际的单片机系统中,往往需要多位显示。动态显示应用非常广泛是一种最常见的多位显示方法,用数码管显示测得的数据,数码管有8段而每段必需占用一个单片机的io口,所以一位数码管必须占个单片机io口,本次设计采用4位数码管,则需要1932个i/o口,而所述单片机的i/o口只有32个。动态显示能够很好的解决数码管占用单片机io口过多的问题。

在编程时,要用单片机控制段选和位选,所谓的位选是选中其中一个数码管,然后利用单片机输出段码,需要显示的数字就能显示在这位数码管上了,延时一段时间后,再选中另一个数码管,再输出对应的段码,高速交替。在动态显示程序中,各个位的延时时间长短是非常重要的,如果延时时间长,则会出现闪烁现象;如果延时时间太短,则会出现显示发暗且有重影。

静态驱动就是给单独每一个led供电。这样每个led都有足够的电流,亮度也相应的比较高。动态扫描驱动就是把本来供给一个led灯的电流,同时分给了n个灯,所以它的亮度会有所降低。当然在同时供给两个led灯电流时不是平均的分配电流,而是led间扫描期间电流不断地交替,扫描的频率依据单片机的速度决定,也就是说各位的数码管上的电流在扫描频率内是供个其中一个led,在下一个扫描频率内是供给了另一个led。

由上面的分析可以得到限流电阻r的值:

若我们想让这个4位数码管的每段工作时的电流为8ma.uled为正常工作时的电压取1.7v。则我们可以得出限流电阻的取值为

所以选取100欧的限流电阻。这样每个led工作时的电流约为8ma.在保证led能亮的同时不会被烧坏。

根据上面的计算可得每位数码的电流为64ma,8550的集电极电流最大可达1.5a,完全满足设计要求。由于单片机最大的拉电流一般约为2-5ma,所以必须串一个1k的限流电阻,此处的三极管相当于开关作用,控制各位数码管的开关。

图2是本发明智能电网巡线机器人的主程序流程示意图。结合附图2,启动智能巡线机器人后,巡线机器人开始进行巡线(巡线状标识),当巡线机器人检测到停止线状标识,即停止行驶。若没有检测到停止线状标识时,则开启避障子程序。在智能巡线机器人巡线的过程中,若智能巡线机器人有检测到周围存在避障物时,巡线机器人就能进行灵活的避障动作,即能够绕过它检测到的障碍物。躲开障碍物之后,继续进行巡线状标识动作。

具体来说,结合附图3的控制方法之详细算法流程示意图,该控制方法包括:第一步,开启控制系统,主程序进行初始化运行;

第二步,从左右探头分别接收检测线状标识的信号,检测函数对检测数据进行判断;

第三步,如果没有检测到线状标识,则暂不启动电机驱动模块,并重新接收检测信号、进行判断;

第四步,如果检测到线状标识,判断检测数据是否为第一信号,所述第一信号为左右探头同时检测到线状标识,如果是第一信号,则启动电机驱动程序,发出第一驱动信号,驱动机器人前进;

第五步,如果不是第一信号,则立即判断检测数据是否为第二信号,所述第二信号为左侧探头检测到线状标识但右侧探头未检测到线状标识,如果是第二信号,则向电机驱动程序发出第二驱动信号,驱动机器人左转向继续前进;

步骤六,如果不是第二信号,则必定为第三信号,所述第三信号为右侧探头检测到线状标识但左侧探头未检测到线状标识,向电机驱动程序发出第三驱动信号,驱使机器人右转向继续前进;

步骤七,如果检测到停止线,则停止前进;如果没有检测到停止线,则启动障碍物检测子程序,从红外线传感器接收障碍物反射信号,如果没有接收到反射信号,则继续前进;

步骤八,如果接收到障碍物反射信号,则启动判断处理程序,判断是否为第四信号,所述第四信号为左侧红外线传感器接收到障碍物信号,如果是第四信号,则发出第四驱动信号,驱动机器人右转调整位置,继续前进;

步骤九,如果不是第四信号,则立即判断是否为第五信号,所述第五信号为右侧红外线传感器接收到障碍物信号,如果是第五信号,则发出第五驱动信号,驱动机器人左转调整位置,继续前进;

步骤十,如果不是第五信号,则立即判断是否为第六信号,所述第六信号为中间红外线传感器接收到障碍物信号,如果是第六信号,则发出第六驱动信号,驱动机器人直线后退,继续前进;

步骤十一,如果不是第六信号,则继续前进,重复执行步骤二至步骤十一。

红外光电对管传输的实际是一个模拟量,并非是一个数字量,一般我们可以通过ad转换器将其变为数字量再进行处理,通过ad转换器可以知道场地的灰度,可以适应不同的场地要求。本发明中由于采用了差动电压比较器,将模拟量通过电压比较器转化为了开关数字量0、1,再传送给单片机。单片机通过判断这些开关数字量就可以得知巡线的状态。启动智能巡线机器人,巡线机器人将自动循着线状标识前进,若当处于巡线机器人正中间的红外传感器检测到有线状标识时,巡线机器人则直行;如果处于巡线机器人的正左边的红外传感器检测到有线状标识时,巡线机器人左转弯;当处于巡线机器人右边的红外传感器检测到有线状标识时,巡线机器人右拐;若此时处于智能巡线机器人左边和中间的红外传感器同时检测到有线状标识时,巡线机器人向左转弯;若处于智能巡线机器人的右边与智正中间的红外传感器都检测到有线状标识时,巡线机器人开始右转。

基于红外传感器系统,将五个红外传感器置于巡线机器人的左端、中端、右端,巡线机器人自动检测前方障碍物,并将信号传给单片机,单片机控制舵机,实现左转弯或右转弯,达到避开障碍物的效果。当启动智能巡线机器人时,巡线机器人会直线向前行驶,当五个传感器中的某个或某几个传感器检测到周围有障碍物时,智能巡线机器人会进行相应的避障。

在实际的检测过程中,由于地面不干净或者其他一些因素的干扰,还有可能p1口低四位出现的电平状态不在上述范围之列,例如:0101,1010,111,0111等种情况,我们对其不作处理,让巡线机器人继续保持原来的状态。

在书写程序时我们还要考虑抖动问题,因为可能由于地面的污点,造成程序在瞬间有一个不确定的状态,而这个状态有可能触发单片机执行相应的动作,从而造成巡线机器人在巡线的过程中运行不够稳定。所以当我们检测到某一状态时,应该适当的延时,等待状态稳定再执行相应的函数。

voidxunji()

{

unsignedcharxj;

p1=0xff;

xj=p1&0x0f;

if((xj==0x09)||(xj==0x0b))back();

if((xj==0x0d)||(xj==0x08)||(xj==0x01))straight();

if((xj==0x03)||(xj==0x07))right();

if((xj==0x0c)||(xj==0x0e))left();

if(xj==0x0f)stop();

{

stop();

beep=1;

delay(500);

beep=0;

delay(500);

straight();

28

delay(500);

}

}

电机驱动程序主要包括左转、右转,前进,后退,停止这5个大部分。而左转与右转以根据所偏移轨道的程度再进行细分。

voidgo()//直行函数

{

m1=0;

m2=1;

m3=0;

m4=0;

pwm1=1;

pwm2=0;

}

//后退

voidback()//后退函数

{

m1=1;

m2=0;

m3=0;

m4=0;

}

//停止

voidstop()//停止

{

m1=0;

m2=0;

m3=0;

m4=0;

}

29

//右转

voidrunright()

{

m1=0;

m2=1;

m3=0;

m4=1;

}

//左转

voidrunleft()

{

m1=0;

m2=1;

m3=1;

m4=0;

}

手机遥控采用的是双音多频解码芯片,可以将手机发出的dtmf(双音多频信号)转化为d0-d3四个信号输出。用d0-d3表示不同的高低电平值,从而解码相应的dtmf信号。然后用解码出来的dtmf信号与单片机进行通信。其程序如下:

go()//手机控制巡线机器人部分

{

switch(dtmf)

{

case0x08:

straight();//前进2

p0=0x05;

break;

case0x04:

left();//左转4

30

p0=0x09;

break;

case0x0c:

right();//右转6

p0=0x0d;

break;

case0x14:

stop();//停车5

p0=0x0b;

break;

case0x02:

back();//后退8

p0=0x11;

break;

case0x06:p0=0x19;

xunji();

break;

case0x10:p0=0xf9;break;//1

case0x18:p0=0xb0;break;//3

case0x1c:p0=0xf8;break;//7

case0x12:p0=0x90;break;//9

case0x0a:p0=0xc0;break;//0

}

if(sensor==0)p2=0x00;

}

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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