引用

David 的 移动机器人运动控制器的设计

移动机器人运动控制器的设计
http://www.ee365.cn 2005-04-26 23:39 eaw

摘    要:本文研究了以TMS320LF2407 DSP为核心的移动机器人运动控制器的设计方案,介绍了主要的系统组成。本系统采用模块化设计,硬件电路简洁,控制可靠。通过步进电机的细分控制,改善了低速性能,以较低的成本满足了移动机器人运动控制的性能要求。

关键词:移动机器人;TMS320LF2407;运动控制;模块设计

引言

运动控制器是移动机器人的执行机构,对系统平稳运行起着重要作用。在机器人运动控制器中,处理器件接受高层控制级的指令,计算和输出多路控制信号,协调各驱动轮,并对系统状态进行监控。因此要求处理器要有高速的运算能力和高度的可靠性。DSP芯片集实时处理和控制器外设于一身,精度高、体积小、运算速度快,同时具有多级流水线操作,容易实现复杂算法,为运动控制器的开发提供了理想的解决方案。

本文提出的移动机器人运动控制器的实现方案,以TI公司的定点DSP芯片TMS320LF2407为核心。利用步进电机作为驱动机构,DSP从上位机接收指令,控制步进电机实现要求的动作。系统以较低的成本满足了控制要求。

运动控制器的设计

机器人移动平台是一个六轮小车,两侧的前轮和中轮采用摇臂式结构,前轮与中轮间距小于车体宽度,易于转向。机器人主控计算机是一台PC机,作用融合各种信息,发出控制指令,进行远程监控;下位机是一台工控机,固定在移动车体上,负责接收主控计算机指令并分配给各子系统,同时把各种检测信息反馈到PC机,两者通过无线网桥进行通信。运动控制器接收下位机传送的指令,计算各个电机的控制量、输出控制脉冲、检测各反馈信号并发送至下位机。六个车轮均为驱动轮,控制时可简化为二轮情形。运动控制器以LF2407为核心,主要模块包括:控制脉冲输出、检测处理、通信接口、复位电路、I/O扩展和必要的外围电路,基本结构如图1所示。

控制脉冲输出

本系统步进电机为两相混合式,步进角为1.8涮浊魑猄H-2H057M。驱动器输入信号有步进脉冲信号CP、方向电平信号DIR、以及脱机信号FREE。OPTO是三路信号的公共阳极。驱动器拨位开关的前3位用于设定细分数。

LF2407利用事件管理器(EVA、EVB)中的定时器中断形成步进脉冲。EVA通过定时器1,EVB通过定时器3分别输出两路步进脉冲信号CP和方向信号DIR到各电机驱动器。控制时,LF2407根据上位机指令计算各驱动电机转速和方向,选择回路内部分频值,确定对应定时器的周期寄存器初值,然后计数器循环计数。当计数器的值与周期寄存器匹配时,即发生定时中断,向对应I/O口输出控制信号。如:车轮直径为30cm,减速箱减速比为1:15,如设定电机驱动器细分数为5,即步进角为0.36绻笮〕抵毕咴硕俣任?5cm/s,则每秒钟各电机所需的步进脉冲数为15×(0.25/(0.3×p)×360/0.36≈3978。LF2407内部时钟为24MHz,如选择时钟分频值为64,则周期寄存器的值为24M/(64×3978)≈94,计数器每次计数到94时,即发生中断,输出一次步进脉冲和方向标志。

为防止给定速度突变使步进电机失步,LF2407在接受到速度指令后首先进行积分平滑,平滑后的结果作为控制要求转换成步进电机的脉冲数值,平滑公式为:

(1)

其中,t为控制的时间周期,与系统积电时间常数有关,需通过实验确定合适的数值。如果平滑后的速度与现有速度相差较大,则由系统取两者平均值作为过渡速度,运行若干周期后再转换到实际给定速度。

此时应注意:(1)设定脉冲频率时要保证CP信号的脉冲宽度不能小于5ms,且为低电平有效;(2)电机换向时,方向信号DIR要在前一个方向的最后一个CP脉冲结束且下一个方向的第一个CP脉冲前发出;(3)OPTO端须外接+5V的VCC,保证给驱动器内部光耦提供8~15mA的驱动电流,如果VCC不是+5V则须加限流电阻。

检测处理模块

检测模块监控系统当前状态,由光电编码器、ADC和其他检测电路组成,把驱动电机的转速、转向和电流及蓄电池电压反馈至LF2407。蓄电池电压通过ADC转换成数字信号,当电池电压低于警戒值时,向上位机发出电池能量不足的警告信息。电机电流利用分流电阻检测,经A/D转换后输入到LF2407中。分流电阻的阻值应能在功放电路达到最大电流时激活过流保护功能。此模块中,ADC的参考电压由外部电压源提供,其模拟供电电压(3.3V)VCCA和模拟地VSSA需与数字供电电压和数字地分开,以提高精度。

本系统在两个后轮安装了光电编码器用于检测电机转速和方向。检测信息反馈到DSP的正交编码脉冲电路(QEP),通过把检测到的脉冲信息与给定的脉冲数进行比较,分析电机是否出现堵转、失步等故障。当LF2407的QEP被使能(禁止捕获功能),定时器2对引脚CAP1/QEP1和CAP2/QEP2、定时器4对引脚CAP4/QEP3和CAP5/QEP4上的脉冲数目和频率分别计数,可得到两个电机的角位移和转速,方向检测逻辑通过检测哪个序列领先可确定电机转向。此时正交编码器脉冲作为时钟源,定时器设置为外部时钟、定向增/减计数方式。

通信模块

通信模块涉及到DSP和下位机(工控机)之间的双向通信。主要任务是接收控制指令,向工控机传送运动控制器的当前状态和里程计信息。本模块由串行通信接口(SCI)负责通信转换,利用中断进行控制,其接收器和发送器可以单独或同时工作,并具有独立的中断请求信号和中断矢量。工控机和LF2407之间采用符合RS-232标准的驱动芯片MAX232进行串行通信。由于LF2407采用+3.3V供电,故在MAX232与LF2407之间加入TI公司提供的典型电平匹配电路,整个接口电路简单、可靠,其电路图见图2所示。

LF2407要实现双向通信,必须在初始化时正确设置一系列通信接口控制寄存器,包括操作模式、协议、波特率、字符长度、奇/偶校验位、停止位的位数、中断优先级和使能控制位。通信时,上位机给出控制要求(平移速度和角速度)和数据校验和,等待反馈信号。LF2407以中断方式接收数据、计算校验和,并与接收到的校验和比较。若一致,则回发“0DDH”,表示接收成功;否则,回发“0BBH”,表示数据错误,要求重发。同时,LF2407以中断方式向上位机发送计算结果、电机转速和里程计信息。

复位电路

要使控制系统上电后正常工作,必须对DSP寄存器和I/O端口进行复位。LF2407的复位引脚RS为低电平时DSP终止执行,并使PC=0;当RS为高电平时,从程序0位置开始执行。当看门狗定时器溢出时,在该引脚产生一个系统复位脉冲。图3为复位电路。刚上电时,LF2407处于复位状态,复位时间由R和C确定。为使芯片初始化正确,低电平应保持至少3个时钟周期,同时需满足DSP晶体振荡器的稳定时间。

图3中A点电压 ,其中t为时间常数,且t=RC。假设低电平与高电平分界点为V0=1.5V,则当V=V0时所经过的时间t0为:

(2)

选择R=200KW,C=4.7mF,VCC=5.0V,由上式得t0=334ms,采用16.0000MHz晶振可满足系统复位要求。

航迹推算

本系统结合光纤陀螺仪和倾角传感器的角度变换进行航迹推算,上位机建立三维环境坐标系和车体坐标系,包括机器人的位置(x,y,z)和姿态(a,b),根据LF2407提供的里程计信息进行推算。

在控制中,每个固定时间段(50ms)内,LF2407计算左右前轮角位移平均值(芼)作为车体位移,即:

(3)

车体平面移动时,里程计信息的计算公式为:

(4)

其中,芼为该时段车体的位移;芶、芺分别为左右前轮在一个检测周期内转过的弧度;r为车轮半径;q为光纤陀螺提供的航向角度;f为倾角传感器提供的俯仰角度。

程序设计

本系统控制程序主要有初始化子程序、通信中断子程序、主程序以及脉冲输出中断子程序。主程序调用系统初始化子程序,进行通信接口、I/O、QEP、定时器等部分及必要中间寄存器的初始化,设置中断标志,读取定时器4的计数值。当发生中断时,调用相应中断程序,并修改或重置标志位。

通信中断子程序包括接收中断和发送中断,完成数据的接收和发送。由SCI的中断向量寄存器PIVR的值判断是接收中断还是发送中断,并调用相应服务子程序。接收数据时,要进行奇偶校验,保证数据准确并回发信号,同时对给定值进行积分平滑,然后分别确定三路输出电路的分频值和转向标志,计算各定时器周期寄存器的值,结果放入中间寄存器,并把计数器清零。发送中断时,系统读取蓄电池电压、电机电流、转速和方向等寄存器的值,同时相应寄存器清零,并计算里程计信息和后轮转速和方向,将各结果发送到上位机。

当某定时器中计数器与周期寄存器匹配时,即发生输出中断,相应标志位置位。脉冲输出中断子程序根据标志位读取相应中间寄存器的脉冲值和方向标志,并输出到I/O口,随即计数器清零,重新开始计数,同时标志位清零。为增强程序容错性能,系统使能看门狗定时器。另外,为防止干扰影响控制性能,需增加返回中断服务子程序,此程序只有一条“return”指令,当发生干扰中断时,系统直接返回主程序。

结语

本文简要介绍了移动机器人运动控制器主要部分的实现方案,针对移动机器人的特点和应用背景,以TMS320LF2407作为核心,对六轮摇臂式移动机器人进行运动控制。经过初步实验,机器人运行平稳,能够以较低的成本满足移动机器人运动控制要求。■

参考文献

1 王文学,孙萍,徐心和. 足球机器人系统结构与关键技术研究[J].控制与决策. 2001,16(2)

2 TMS320F/C24x DSP Controllers Reference Guide [M]. Texas Instruments. 1999.

3 TMS320LF2407 TMS320LF2406 TMS320LF2402 DSP Controllers [M], Revised. Texas Instruments. 2001

4 刘和平 等. TMS320LF24x DSP结构、原理及应用[M]. 北京:北京航空航天大学出版社,2003

引用 移动机器人运动控制器的设计相关推荐

  1. 【转】移动机器人控制软件的设计与实现

    移动机器人的应用现在非常多,做一个移动机器人似乎也很容易,车体自己可以加工,也可以去买现成的:避障可以用超声阵列:导航可以用激光测距LMS:定位可以用电子地图加LMS加陀螺仪:驱动可以用各种电机及配套 ...

  2. stm32f103振镜_激光打标机运动控制器的设计与实现

    激光打标机运动控制器的设计与实现 激光打标技术是在激光热处理技术.激光焊接技术.激光切割技术等之后发展起来的一门新型加工技术,其原理是利用高能量密度的激光束使待加工物体表面迅速发生汽化形成凹槽,从而获 ...

  3. 【机器视觉】移动机器人控制软件的设计与实现

    移动机器人控制软件的设计与实现

  4. 基于 STM32+FPGA 的多轴运动控制器的设计

    运动控制器是数控机床.高端机器人等自动化设备控制系统的核心.为保证控制器的实用性.实时性和稳定 性,提出一种以 STM32 为主控制器.FPGA 为辅助控制器的多轴运动控制器设计方案.给出了运动控制器 ...

  5. 基于STM32 ARM+ FPGA 的软体机器人的 CAN总线运动控制器的设计

    针对在软体机器人控制时 , 多电机协同控制过程中难度大 . 通用性差 . 协同性差等缺点 , 设计了基于 ARM 和 FPGA 的软体机器人的控制器局域网络 ( controller area net ...

  6. JDK源码系列:ThreadLocal弱引用真的是过度设计吗?

    在<码处高效:Java开发手册>这本书上详细描述了ThreadLocal的原理,也有过度设计的说法, 难道弱引用设计真的没必要吗?对此老吕要仔细分析分析,ThreadLocal到底该不该使 ...

  7. 移动机器人控制软件的设计与实现

    http://www.sodocs.net/doc/8a891ee9856a561252d36faa-4.html 转载于:https://www.cnblogs.com/taily-laoduan/ ...

  8. 【移动机器人|课程设计】Turtlebot3科大讯飞语音导航实现

    文章目录 基础工作 1. 安装turtlebot3 2. 安装TurtleBot3 Simulation 3. 启动Gazebo仿真器 4. 启动地图 5. 控制机器人 5.1 键盘控制 5.2 程序 ...

  9. 基于变胞机构的移动机器人构型设计研究综述

    摘要: 基于传统机构设计的移动机器人,由于机构运动关系相对固定.配置形式单一,难以在复杂地形中快速通行.变胞机构是一种全新的机构组合形式,在瞬时能使某些构件发生合并和分离,使机构有效构件数或自由度数发 ...

最新文章

  1. 彻底炸锅了!华为新天才少年出炉:武大94年博士生入选!任正非最新发声:江山代有才人出,不拘一格降人才!...
  2. 十张图解释机器学习的基本概念
  3. Python中sort与sorted函数
  4. ubuntu apt-get指令和apt指令的区别?
  5. 论文被拒稿后怎么办?这些事情你要知道
  6. leetcode 494. 目标和
  7. 【转载】(Git)用动图展示10大Git命令
  8. 涉嫌内幕交易?美国SEC对马斯克展开调查
  9. matlab y轴旋转面,Mayavi:绕y轴旋转
  10. 《软件工程导论》期末复习知识点总结(全)
  11. IP地址分类(五类)、保留地址
  12. 什么是DNS缓存投毒?有哪些危害?
  13. java+字节码工具64位_javassist:字节码编辑器工具
  14. python-函数参数和文档
  15. 计算机主机风扇声音大的原因,台式电脑风扇声音大怎么办?五个方法简单完美解决...
  16. 计算机水冷原理,水冷电脑流动的是什么“水”
  17. 【20220318】执行脚本提示killed
  18. 未来十年的暴富机会--屌丝离财务自由到底有多远?(三)
  19. STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)
  20. 图片压缩的正确打开方式

热门文章

  1. matlab体电荷电场线,利用Matlab模拟点电荷系的电场线和等势面.docx
  2. ElasticSearch 7.6 多子文档过滤查询
  3. 新站交换友情链接这些网站绝对不能交换
  4. 阿克曼(Ackermann)函数—递归
  5. 春节过完了,我终于知道为什么百度不发红包了?
  6. mybatis-plus代码生成器 localdatetime 指定时间类型
  7. linux virt-manager vncserver 安装
  8. for循环2(python)
  9. 快速用Discuz搭建论坛网站教程
  10. 系统调优---emqx百万连接测试系统、网络、erlang虚拟机参数调优