基于can总线的移动机器人控制系统设计

  • 格式:pdf
  • 大小:388.98 KB
  • 文档页数:7

第29卷第3期VOL29No.32008青岛理工大学学报

JournalofQngclaoTechnologicalUniversity

基于CAN总线的移动机器人控制系统设计

刘进,刘大维,符朝兴,郑旭光,于士友

(青岛大学车辆T程系,青岛266071)

摘要:为满足自主式移动机器人各模块对信息交换的实时性、灵活性、可扩展性、可靠性的要求,设计了一种

基于CAN总线通讯为核心的多传感器导航的移动机器人控制系统.给出了控制系统的总体结构、通讯模块

硬件电路设计。根据需要制定了相应的通讯协议,并进行了系统上、下位机的软件设计.控制系统运行稳定可

靠、实时性好、扩展性强,可以满足移动机器人在各种环境中导航的需要.

关键词:移动机器人;CAN总线;控制系统

中图分类号:TP242文献标志码:A文章编号:1673—4602(2008)03—0074—05

ControlSystemDesignofMobileRobotBasedonCAN-Bus

LIUJin,LIUDa-wei,FUChao-xing,ZHENGXu-guang,YUShi-you

(AutomobileEngineeringDepartment,QingdaoUniversity,Qingdao266071,China)

Abstract:Amulti—sensornavigationautomaticmobiletolbotcontr01systembasedoncAN—

busisproposedtomeetdemandsforflexibility,expansibility,reliabilityandreal-timeprop—

ertyofinformationexchangeofmobilerobot.Robotcontrolsystemarchitecture,CAN-bus

communicationcircuits,CAN-buscommunicationprotocolaregiveninthepaper,andthe

softwareofmasterandslavecomputersisalsodesignedinthispaper.Theoperationshows

thattheeontrolsystemissteady,reliable,betterinreal-timeandhigherinexpansibility;it

couldmeetthedemandsofmobilerobotnavigationinmanykindsofenvironment.

Keywords:mobilerobot;CAN—bus;controlsystem

移动机器人被广泛应用于制造业,特别是汽车制造业、飞机制造业、家用电器及机械加工等行业,并向

非制造业扩展,如:现代化立体仓库、邮电部门、导游、导购等行业[1].自主式移动机器人具有高度的自规

划、自组织、自适应能力,适合于在复杂的非结构化环境中工作.目前,大多采用多视觉传感器和多个非视

觉传感器来提高机器人的智能性[2].传统上,各传感器数据由1个下位机采集,通过RS232、RS485等串行

总线传到主控计算机,其实时性、可靠性、功能的开放性及硬件模块的可扩展性已不能适应机器人动态环

境下导航的要求,而且系统连线复杂,不方便后期维护[3].采用CAN总线技术,通过1根总线可实现众多

的传感器模块和决策系统之间的双向通讯,可提高机器人控制系统的可靠性及实时性[4].

1控制系统组成

根据自主式移动机器人在复杂的非结构化环境中工作的功能要求进行总体设计,将各个功能进行模

块化设计,控制系统组成如图1所示.系统主要由环境信息感知模块、上位计算机主控制模块、运动控制模

收稿日期:2007—11—22基金项目:山东省教育厅资助项目(J00954)

作者简介:刘进(1983一),男,山东青岛人.硕士研究生,研究方向是移动机器人的应用与开发.E-mail:qdldw@163.eonk

 第3期刘进,等:基于CAN总线的移动机器人控制系统设计75

块等组成.环境感知模块由超声波测距和红外测距子模块组成;上位计算机主控制模块主要由工控机以及

各种外围器件等组成;运动控制模块主要由EPOS运动控制器、编码器、直流伺服电机等组成.机器人采

用4轮结构、2轮驱动差动转向的方式,每个驱动轮分别由1台直流伺服电机独立驱动.

笔记本电脑

无线网卡

工控机

信息处理

导航命令发送编码器

编码器

EPOS运动控制器左驱动电机

右驱动电机

CAN总线I(基于HiLonA协议)

超声波测距模挚ll红外测距模块ll电源管理模块

超声波传感器阵列lI红外传感器阵列

环境特征信息

图1自主式移动机器人控制系统组成

整个移动机器人控制系统的数据接收和命令发送由1根CAN总线和2根RS232总线实现.超声波

测距和红外测距模块通过基于HiLonA协议的CAN总线实现工控机指令的接收和测量结果的反馈,工

控机对超声波测距模块、红外线测距模块采集的信息进行融合,识别出当前环境,并通过RS232总线发出

相应的命令,EPOS运动控制器根据得到的指令对驱动电机进行控制以实现机器人避障导航.机器人还可

通过无线网卡与笔记本电脑通讯,进行远程控制.

2硬件系统设计

工控机选用AIMB-560工业控制微机,CPU主频为2.8GHz的IntelPentium4处理器,内存1G,配

有CAN总线适配卡,RS232串行通讯接口.

超声波测距模块选用12个声纳传感器,超声波频率为50kHz,测距范围为0.152"-一10.7m,测距误差

为±1%,波束角为30。.红外测距模块选用GP2D02型红外测距传感器8个,测距范围为0.1~o.8玑声

纳传感器和红外测距传感器获取的环境信息由单片机进行必要的处理后,通过CAN总线上传至工控机

进一步处理.

图2为CAN总线通讯接口硬件电路图,单片机(AT89S52)与CAN总线的接口采用SJAl000CAN

控制器和PCA82C250CAN驱动器.SJA1000CAN控制器支持CAN2.OA和CAN2.0B协议,可与多种

处理器接口,最高通讯速率可达1Mbps.PCA82C250CAN驱动器是SJAl000CAN控制器和物理传输线

之间的接口,对SJAl000CAN控制器提供差动接收能力.SJAl000控制器工作在Intel模式下,读写信号C

线适配卡帆

 76青岛理工大学学报第29卷

和地址锁存使能信号引脚直接接到单片机相应的引脚上.8位地址数据复用总线接到AT89S52的地址数

据复用总线P0口上.SJAl000的片选信号接到单片机P31:3的一个引脚上,这样可以使用以融为间接地

址的寄存器,以外部数据存储器指令访问SJAl000.单片机P3口的另一个引脚控制SJAl000的复位端,

从而可以灵活的控制SJAl000的硬件复位.中断输出端直接接到单片机的外部中断引脚上,单片机可以

以中断方式访问SJAl000.

图2CAN总线通讯接口硬件电路图线

运动控制模块的EPOS运动控制器是模块化结构的数字伺服控制器,它具有转矩、速度、位置等多种

运动控制方式,可以比较容易的实现各种复杂控制,目前已广泛的应用于各种机器人运动控制中.EPOS

可以采用RS232串行通讯总线与上位机(主机)进行通讯,也可采用CAN总线与上位计算机通讯,实现多

个EPOS运动控制器的实时同步控制.由于本机器人只有2个EPOS运动控制器,为降低成本,笔者采用

2个RS232与上位机(主机)进行通讯.

由于CAN总线具有较强的抗干扰性,同时每个模块的电源通过DC-DC模块进行了隔离,输入输出

接口用光耦进行了隔离,软件启用了单片机内部的看门狗,以防止程序跑飞,并加入了指令冗余等软件抗

干扰措施,在空闲时单片机进入待机模式,进一步增强了系统的抗干扰性.

3控制系统软件设计

3.1cAN总线通讯协议的制定

超声波测距模块和红外测距模块等CAN总线节点与工控机之间的通讯需要制定通讯协议.由于

CAN2.0A/B规范仅定义了0SI模型的数据链路层、物理层,没有定义OSI模型的上层.当要组建一个具

有实际意义的CAN总线网络时,必须定义应用层协议.考虑到上述通讯网络为主从式网络结构,在参考

HiLonA通用协议[5]的基础上制定了通讯网络的CAN总线通讯协议.该协议基于非对称型主从式网络

结构,支持点对点传送数据,数据包可长达256字节.协议以CAN2.0A数据帧结构为基础,1个

 第3期刘进,等:基于CAN总线的移动机器人控制系统设计77

CAN2.0A标准数据帧由11位标识符、1

位远程发送请求位、4位数据长度代码、数

据区(最多8字节)组成.表l为协议的报

文格式.

方向位用来标识帧发送的方向,它决

定了该帧一半的优先级.当该帧是从节点

模块发送到上位计算机时,方向位为“1”,

优先级低;当该帧是从上位计算机发送到

节点模块时,方向位为“0”,优先级高.剩余

的优先级由模块地址决定,地址越低,则优

先级越高.节点模块还可使用地址滤波技

术来减少需处理的网络信息量,从而可有

效地节省CPU资源,提高效率.

帧类型用来区分数据包是单帧数据还

是多帧数据,当模块返回的数据多于7字

节时,就需要使用多帧数据包向上位计算

机返回数据,多帧数据包的结束帧标识此

帧是该数据包的最后一个帧.表2为帧类

型的说明.

CAN2.0A标准数据帧数据部分的第

1个数据字节为功能号,每个功能号对应

节点模块的一项功能,即定义了数据的含

义.例如超声波测距模块的功能号及其相

应的功能如表3所示.

CAN2.0A标准数据帧数据部分的第

2个数据字节是索引字节,对于单帧数据,

该字节表示传输数据的第1个字节;对于

多帧数据,该字节表示索引字节,即该帧数

据在数据包中的位置.

3.2下位机软件设计

下位机软件设计主要包括超声波测距

模块和红外测距模块的软件设计,两个模

块的程序框架相同,采用汇编语言编写,程

序流程如图3所示.单片机每接收到一帧

数据,就根据功能号进行相应的操作,并返

回一帧数据.若产生其他中断,如错误中

断、数据溢出中断等,则进行其他相应操

作,操作完成后进人待机模式.再有中断发

生,会唤醒单片机,进入主循环.

3.3上位机软件设计

图4为移动机器人上位机软件系统工

作流程图.在该系统的软件设计中采用了

多线程技术[6|,整个系统由1个主线程、2裹1协议报文格式

功能号功能描述

00H

01H

02H

03H

04H打开超声波数据采集模块

关闭超声波数据采集模块

启动所有超声波传感器,采集连续进行

启动某一组超声波传感器.连续采集

启动某一个超声波传感器,连续采集

图3下位机程序流程图

个工作线程(环境信息处理线程、行走控制线程)组成.主线程负责整个程序的运行,同时负责人机界面的