基于状态机的巡线机器人控制系统设计
 
2008-11-24 作者:唐健隆 梁自泽 蔡丽 侯增广 左岐 叶文波 来源:chuandong.com
 

摘  要:通过对巡线机器人运动控制系统的分析,提出采用有限状态机实现运动控制系统中的运动保护及机构定位系统的方法。结合巡线机器人运动控制的特殊需求,通过对运动控制系统的时序分析,设计了运动保护及定位系统的状态机。并在可编程器件上实现了巡线机器人运动控制器,从而给出了基于可编程器件设计控制系统的一种方法。

关键词:巡线机器人 运动控制 状态机 时序 可编程器件

1. 引言

1.1 巡线机器人

高压输电线路作为电力输送的主要方式,是国民经济的大动脉,其安全可靠的运行是社会生产和人民生活的重要保障。由于高压输电线路特殊的工作环境,输电线路上的各种设施容易损坏,因而定期进行高压输电线路的巡检是保证可靠的电力输送的重要基础。当前,输电线路的巡检方式以人工为主。但是由于输电线路多架设在崇山峻岭之间,加之野外环境比较恶劣,采用人工巡检的方式受到诸多的限制,这在很大程度上影响了对输电线路的及时维护,给电能的可靠输送埋下了安全隐患。机器人技术的发展为输电线路的自动巡检带来了可能。巡线机器人就是一类专门应用于输电线路巡检的机器人。输电线路巡检的主要任务是检查杆塔、导线、避雷线、绝缘子和金具的状态。这要求机器人能够在输电线路上自主的运行,能够自主的识别并跨越障碍物。为了满足越障行为对机器人机械结构的要求,同时为了最大程度上适应输电线路这种柔性的环境,巡线机器人被设计成两臂悬挂式机器人采用两个具有夹持功能的机械手臂作为行走机构。正常巡检时,依靠安装在两个手臂上的行走电机驱动机器人,当需要越障时,其中一只手臂上的卡爪夹住输电线路,由机械臂的回转机构驱动机器人转身绕过障碍物。当一臂绕过障碍物后,根据视觉传感器提供的机械手和输电线的相对位置,通过安装在手臂上的摆臂机构实现夹手和输电线路的精确对准。不难发现,两臂悬挂式机器人在越障过程中主要需要解决的问题是稳定性和抓线的定位问题。为了实现可靠的越障,巡线机器人机械手臂被设计成双关节形式:机械臂底部有一个旋转关节,可带动机器人做180度旋转,机械手中间位置有一个摆动关节,可带动机械手做向左向右的摆动。之所以设计成上述结构,主要是方便机械手脱线和抓线时的姿态调整。

1.2 巡线机器人运动控制系统

从上面的叙述可以看出,两臂悬挂式巡线机器人越障行为过程比较复杂,这给运动控制系统的设计带来了极大的困难。巡线机器人的运动控制系统主要完成两大任务:第一,控制电机完成相应的运动过程,达到需要的动态特性和稳定性要求。第二,运动过程中的保护及定位。本文主要讨论运动控制系统的保护及定位功能的设计与实现。通常而言,运动控制系统的上面两个功能主要有两种实现方法:基于软件的实现和基于硬件的实现。基于软件的实现方法灵活性高,可以实现较为复杂的算法,因而,运动控制系统的第一个功能一般由软件实现。但是基于软件的实现方法存在最大的缺点是可靠性不够高,响应速度较慢 。而巡线机器人运动控制系统的第二个功能即各种限位保护,意外处理,过流过载保护,零位调整等都需要较高的可靠性,用软件实现上述功能时,一旦软件出现诸如程序跑飞,死机等故障时,必然会对驱动电机和机器人机构造成很大的损坏。另一方面,机器人机构对运动控制系统的响应速度有较高的要求,当出现意外情况时,控制系统必须以最短的延时给出驱动电机相应的控制信号,以保护电机和机构。虽然基于实时操作系统的软件在实时性上有较大的提高,但是这在很大程度上取决于系统运行的任务数量,当任务数量较多时也存在响应速度慢的问题。与基于软件的实现方法相比较,基于硬件的实现方法可靠性高,响应速度快,但最大的缺点是灵活性不高,实现过程较为复杂。故不宜采用硬件去实现较为复杂的控制算法。

对运动控制系统中的第二个主要任务,比较适合采用硬件的方法实现。这主要是考虑到第二个功能要求较高的可靠性和响应速度,同时不需要复杂的运算,属于逻辑控制功能,比较适宜于采用硬件实现。

1.3 运动控制问题描述

就巡线机器人的运动控制系统中的保护及定位系统而言,其本质是根据传感器信号给出相应的电机控制信号。也就是说,电机保护及定位系统完成控制输入(传感器信号)到控制输出(电机控制信号)间的映射。电机保护及定位系统的特点决定了其非常适合于采用有限状态机进行设计。

前面的叙述已经大致描述了运动保护及定位系统需要完成的功能。具体的说就是,当运动机构运动至左侧和右侧限位位置时,传感器均给出相应的限位信号,运动控制系统据此停止电机,且限制机构在这两个位置的运动。即:若机构顺时针摆动至限位点,则限位后机构只可逆时针运动,顺时针方向的运动被限制,反之亦然。巡线机器人运动控制系统中的一个较为复杂的功能是对两个机械臂的定位,机械臂定位要求是,无论机械手从何方靠近中间的零位位置,总需要机械手自动停止在一个位置-此位置为机械手与机体垂直的位置。由于我们采用的位置传感器是霍尔效应传感器,传感器探头与磁钢的距离小于某一阈值时传感器便给出有效信号。因此,当磁钢从不同方向接近传感器探头时,传感器给出限位信号的位置不同。经过实验验证,当磁钢进入某一个区域时,传感器即刻给出有效的信号,此区域宽度大约为1厘米。因此,倘若均以进入该区域即认为机械手归零到位,显然,当机械手从不同方向归零时并不能保证机械手都垂直于机体。事实上,由于传感器安装的位置的影响,加之整个机械手较长,当从不同方向归零时,机械手姿态差别很大。为了保证无论从何方归零,机械手总能停止在同一位置,要求控制器只能采用传感器的同一边沿信号作为归零到位信号。比如:当机械手顺时针归零时,若检测到传感器信号的下降沿即停止电机,认为归零到位;当机械手逆时针归零时,需检测到传感器信号的上升沿(也就是顺时针时的下降沿,即同一边沿信号)时,方可认为归零到位。

在我们设计的运动控制系统中,对任一电机,控制系统仅给出三个控制信号:两个方向信号和速度信号(dira,dirb和pwm),其中的两个方向信号控制电机的转向和开停,dira和dirb不同时,电机方可运动,相同时电机停止。pwm信号也可控制电机的运行,pwm为高电机可运行,反之停止。机械手的定位调整系统需要设置三个传感器:左限位传感器(sensor_l),中间零位传感器(sensor_m),右限位传感器 (sensor_r)。对不需要归零的运动机构则不设置中间零位传感器。

2.有限状态机设计

2.1 运动控制系统的有限状态机设计

运动控制系统中的运动保护及定位系统的典型时序如下图示:


 
图1 运动保护及定位系统时序与框图

从上面的是时序图可以看出,运动控制系统的时序显著的分为四段:第一段L1:为运动机构的左限位阶段。即当运动至左限位点时,控制系统应该停止电机并限制此方向运动。第二段L2:仅有机械手臂具有此段时序特征。当机械手以顺时针方向摆向垂直位置时,若到达垂直位置(sensor_m由高变低)则控制系统停止电机。但与限位不同,此时控制系统不可限制机构任意方向的运动。为了使得机械手到达垂直位置后仍可向左或向右运动,在我们的设计中引入另一控制量:电机的速度信号pwm。第三段L3:与第二段相同,也为机械手特有。当机械手以逆时针向垂直位置运动时,与顺时针时不同,它需要在传感器信号由低变高时方可停止电机,当然也不能限制机构任意方向的运动。第四段L4:为运动机构的右限位阶段,与第一段相似,当机构运动至右限位点时,控制系统需要自动停止电机并限制此方向的运动。

根据运动控制系统的典型时序特征,可以制定出相应的状态和状态转换条件:首先,设置初始化状态s0,系统上电或者复位后都自动进入该状态。上电时,在此状态对内部信号和输出进初始化。此状态也是系统默认的电机停止状态。正常运动的情况下,机构顺时针和逆时针分别对应两个状态s1和s2。当机构顺时针归零后,与限位不同,由于此时不可限制机构任意方向的运动,因而当pwm信号拉低后状态机需要进入状态s3,s3其实为一个过渡状态,通过s3,状态机可根据此时微处理器给出的控制信号进入s1和s2运行。同样,当机构逆时针归零时,与顺时针归零不同,它需要检测到中间位置传感器拉高后才能停止电机。所以当逆时针运动时,一旦检测到sensor_m变低,状态机即进入过渡状态s5,在此状态,若sensor_m变高,即意味着机构已经离开传感器区域,到达垂直位置,此时状态机进入状态s6。从上面的分析可以看出:对于顺时针和逆时针两种不同的状态下机构归零,我们分别设置了两个特殊的过渡状态集{s3,s4}和{s5,s6}。这主要是由于归零操作不同于限位。归零后,控制系统不能限制机构任何方向的运动,因而需要一个额外的控制输入作为归零后状态机状态转换的触发信号。根据上面的分析,可以得到状态机的状态转换图如下:


 
图2有限状态机状态转换图

2.2设计仿真与实现

2.2.1设计仿真

本设计在ISE8.2i+Modelsim XE III 6.0d平台上综合,布局布线和仿真。其布局布线后仿真的时序图如下:


 
图3 时序仿真图

从上面的后仿真时序可以看出,当sensor_l变低时,dira和dirb同时变低,只有当方向信号dir改变时,dira和dirb才随之改变。sensor_r的变化同sensor_l相似。仿真时序中比较关键的一段是sensor_m两次变低的情况,分别代表顺时针和逆时针归零的两种情况。从上图可以看出,所设计的状态机很好的实现了对传感器同一边沿信号的识别,同时在加入了控制信号pwm后,使得机构归零后还可以进行任意方向的运动,满足了设计要求。

2.2.2设计实现

将设计的状态机采用VHDL语言编码并在xilinx公司的CPLD器件XC9572上实现,经过实验验证,所设计的状态机是安全可靠的。

3.结论

机器人控制系统的实现主要有两种方法。基于软件的实现方法在各种苛刻的实际应用中显示出了种种不足。可编程器件的发展为控制系统的实现提供了一种全新的模式。基于可编程器件的控制系统实现,可靠性好,实现简单,灵活性好,相对于传统的软件实现和由分离元件实现的控制系统,基于可编程器件的控制系统有着诸多无法替代的优点。本文根据控制对象对控制器时序要求,抽象出控制系统的行为级描述,并据此设计了有限状态机的状态。并采用EDA软件进行了综合,布局布线和仿真,最终在CPLD上实现了所设计的运动控制系统,为控制系统的数字化设计提供了一种行之有效的方法。

本文的创新点是将有限状态机应用于机器人控制系统的硬件设计,并在可编程器件上实现了所做设计。这是对常见的基于软件的控制系统实现方法和由分离元件构造的基于硬件的控制系统实现方法的极大改善,大大提高了控制系统的可靠性,抗干扰性和实时性。

参考文献

[1].James R. Armstrong F. Gail Gray: VHDL Design Representation and Synthesis. China Machine Press.

[2].赵世霞,杨丰,刘揭生.VHDL与微机接口设计。 北京,清华大学出版社,2004。

[3].周怀得,肖传,伟郝志航.基于DSP和CPLD的智能相机系统设计与研制.微计算机信息,2006,Vol.22,No.17

[4].王诚,薛小刚,钟信潮.Xilinx ISE 使用详解。北京:人民邮电出版社,2004。

[5].杨庆. 有限状态机的设计与优化.湖北民族学院学报(自然科学版),Vol.24,No.1,Mar 2006.

[6].邬杨波,王曙光,胡建平.有限状态机的VHDL设计与优化.信息技术.VOL.28,NO.1,Jan.2004.

[7].王剑,赵海燕. 基于CPLD的控制器冗余设计.微计算机信息.2005 Vol.12, No.23


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织