0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于S3C4480处理器和μC/OS-Ⅱ实现机器人控制系统的设计

电子设计 来源:现代电子技术 作者:黄永锋,康东,严海 2021-04-07 11:58 次阅读

移动机器人是一种能够感知外部环境,在有障碍物的环境中能够实现动态决策与规划,从而完成避障等多种功能的综合系统。机器人系统通常分为机构本体和控制系统两部分,控制系统的作用是根据用户的指令对机构本体进行操作和控制。随着机器人的智能化水平越来越高,控制器要有方便、灵活的操作方式,以及多种形式的控制方式和高度可靠性,还要有很高的实时性。

为了保证系统的实时性,简化控制系统软件的设计,有必要在控制系统引入嵌入式操作系统。本设计将嵌入式技术与机器人技术相结合,利用ARM作为硬件平台并移人μC/OS-Ⅱ嵌入式实时操作系统,开发了具有多线程、多任务管理的控制终端。嵌入式主控制器ARM是整个机器人控制系统的核心,主要完成环境感知、组织管理、总体任务分配。嵌入式主控器作为机器人的运算层,一方面作为控制上位机,可以通过串口与下位机伺服控制系统通信,从而完成机器人的运动控制;另一方面还提供了与遥控操作端或用户端的无线通信接口。本文设计的机器人控制系统可应用于日常生活、足球机器人以及其他科学探索领域。

1 系统组织架构与硬件设计

设计时考虑到机器人在体积、质量等方面的限制,以及要满足功耗低,实时性高,性能优越的特点,选择合适的软硬件结构及有效的控制模式是整个设计过程的关键。

1.1 系统总体架构

整个机器人控制系统由嵌入式主控制器、伺服控制模块、无线通信模块和传感检测模块组成。控制系统的总体架构如图1所示。

o4YBAGBtZYWAOhQ5AAEn1LagMhM945.png

按功能划分,该控制系统分为上下两层。由实现任务管理、运动轨迹生成、定位的上层控制系统,以及完成机器人伺服控制、传感器信息采集的下层控制系统组成。上层控制系统是整个控制系统的核心控制层,它有两种控制实现方式:一种是独立运行模式,另一种是遥控或远程实时控制模式。独立运行模式有自己的运行参数,即上层控制系统根据激光雷达的信息传递到环境建模模块,产生环境地图并产生避障算法所需信息,控制器根据避障模块信息产生机器人本体速度和方向信息,传递到运动控制器。在运动控制底层程序定义了一系列程序,运动控制器通过解释上层控制系统传递过来的信息并执行相应程序,从而达到机器人控制的目的,实现实时避障。遥控器或远程实时控制模式是通过无线通信单元接收用户端或遥控端发出的命令,实现对机器人的实时控制。系统的控制实现方式如图2所示。

1.2 主控制模块

主控制模块采用SAMSUNG公司16/32位RISC处理器S3C4480作为控制器。S3C4480功耗低,有多种电源供电方式,有多种外部存储器访问,新的总线体系结构(SAMBA),速度可达132 MHz。主控模块使用Hynix公司的HY57V281620(SDRAM)以及SAM-SUNG公司的Nand-Flash芯片K9F2808U作为存储器。为了增大数据吞吐能力,选取了2片SDRAM构成32位地址宽度。S3C4480使用ARM7TDMI核,它满足μC/OS-Ⅱ正常运行的所有条件,设计时S3C4480移入μC/OS-Ⅱ操作系统,将加快处理器的应用和开发,而且还能提高系统的实时性。通过将系统的功能划分成按不同优先级调度的任务,实现对机器人的多任务控制,主控制模块中的路径规划任务采用栅格法。

1.3 激光雷达测距模块

激光雷达是一种工作在从红外线到紫外光谱段的雷达系统,相对于超声波、红外、摄像头等其他传感测距方法,激光雷达具有探测距离远,测量精度高,价格相对适中等优点。在本设计中使用德国施克公司的LMS291激光测量系统,基于飞行时间测量原理,180°扫描角度,可以设置三个保护区域,具有滤波功能,以消除障碍检测过程中激光雷达的测距噪声干扰。

LMS291激光雷达通过旋转镜面向各个方向发射脉冲激光,并由LMS291接收器接收反射光线。该激光雷达响应时间可固定为13 ms,发射角为几mrad的激光脉冲,通过测量发射脉冲与反射脉冲之间的时间延迟,并乘以光速,就可以测得障碍物的距离。时间测量通过图3所示的脉冲填充法求出。

如果计数值为N,则t=N△T=N/f,从而可得L=ct/2=cN/(2f),其中,f为时钟脉冲。

LMS291激光测量系统提供RS 232数据接口,本设计主控制器采用的是S3C44B0,由于它的LVTTL电路所定义的高、低电平信号为正逻辑,而RS 232标准采用负逻辑方式,两者间通信要进行电平转换,在设计时系统采用RS 232电平转换芯片MAX232ACPE实现串口的通信。

1.4 无线通信模块

无线通信模块利用从前端RF接收到的遥控端或用户端的信息通过串口发送到机器人,也可将机器人的信息通过无线通信模块发送出去。前端RF使用Chip-con公司生产的CC2420芯片,无线通信模块采用的微控制器Microchip公司的PIC18LF4620。CC2420与PIC18LF4620都使用3.3 V作为工作电压,可以降低功耗,CC2420只需通过SI,SO,SCLK,CSn与PIC18LF4620的SPI接口进行连接。本设计中使用PIC18LF4620的RC6,RC7引脚作为RS 232的数据发送端与数据接收端。CC2420是一款较为通用的符合IEEE802.15.4的2.4 GHz ZigBee收发芯片,该芯片在集成了PHY层和部分MAC层的同时,还提供了许多硬件支持。

1.5 伺服控制模块

运动控制模块通过RS 232与主控制模块连接,主控制模块通过串行总线将期望速度、方向信息传送至运动控制器,运动控制器将信息处理后作为运动控制算法的输入量,运动控制算法得到以PWM形式表示的电机控制信息。为判断电机转速及运转方向,安装在电机上的光电编码器提供相位相差90°的两个通道的光码脉冲输出,光电编码器产生的两脉冲送入DSP的正交编码脉冲单元的QEP1,QEP2引脚,通过DSP的比较单元CAP1,CAP2捕捉,然后经译码单元产生内部4倍频后的脉冲信号CLK以及转向信号,将脉冲信号送入选定的计数器进行计数,计数方向由转向信号决定,通过读取选定通用定时器的计数值、脉冲数、计数方向可得到电机的转速、行程及方向为伺服控制提供反馈输入。没计使用TI公司的TMS320F2812作为控制驱动模块的控制器,该芯片产生的PWM信号并不能够直接驱动电机的执行,设计时使用TI公司的直流电机驱动芯片SN7S4410将PWM转换成可驱动电机的驱动信号。图4为移动机器人运动控制系统的原理图。

图4中电流传感器为霍尔元件电流传感器,将采集到的电机电流信息送入A/D转换接口,从而整个运动控制系统形成双闭环控制系统。运动控制器中运动控制算法采用PID算法,设定允许的误差为e0,设定如下关系:

当| e(k)|≤e0时,控制器不起作用;

当| e(k)|>e0时,可以得到控制器的输出为:

PWM信号的宽度由时间管理器中定时器的周期寄存器和与该定时器相关的比较寄存器决定,经过PID处理后的控制器输出u(k)为脉冲的占空比,然后写入选定定时器的比较寄存器,比较寄存器与周期寄存器的比值即为PWM波形的占空比,从而实现电机转速的控制。

2 软件设计

该机器人控制系统的软件设计包括主控制模块、DSP运动控制器算法程序、PIC18LF4620的程序设计。PIC18LF4620的程序设计在这里不做介绍。

2.1 主控制模块程序设计

主控制模块软件设计是在μC/OS-Ⅱ平台上设计各硬件的驱动程序,创建和启动各项任务,创建信号量、消息邮箱、消息队列完成各任务间的通信。

针对S3C4480的硬件资源和编译器特性,移植时要对μC/OS一Ⅱ的三个源文件做修改:

(1)OS_CPU.H头文件与编译器相关的数据类型重新修改;

(2)OS_CPU_ A.S文件中修改处理器相关的4个汇编函数;

(3)OS_ CPU.C文件中编写初始化任务的堆栈函数。

μC/OS-Ⅱ中程序是从main()函数开始执行,程序启动后跳转至主程序运行,调用ARMInit()初始化ARM系统,包括建立相关参数和变量,配置ARM处理器中断端口、设置中断并初始化各器件,然后调用OSInit()初始化μC/OS-Ⅱ操作系统,将操作系统的初始化与硬件的初始化分开来使得思路更清晰,便于调试。由于各任务之间要通过创建信号量、消息邮箱、消息队列来完成通信,该操作通过调用OSSemCreate(),OSMboxCreate(),OSQCreate()函数来完成,然后调用OSTaskCreate(void(*task)(void*pd),void*pda-ta,OS_STK*ptos,INT8U prio)函数创建各任务完成系统控制。最后调用函数OSStlart(),μC/OS-Ⅱ开始运行,执行任务。本系统设计时主要完成的任务有无线通信任务、命令解释任务、激光雷达信息处理任务。

2.2 伺服控制模块程序设计

伺服控制模块利用高速的DSP运动控制器与反馈信号组成闭环控制系统,DSP发送PWM波与方向信号控制直流电机的转速,通过速度反馈,DSP可实时读取当前速度,利用DSP中的控制程序根据速度读数控制PWM的占空比,从而实现闭环控制。主程序流程图如图5所示。

在DSP的事件管理器中,将其中一个定时器设定一个中断周期,每当定时器产生中断时,调用中断处理子程序获得电机的反馈速度。

3 结 语

根据新型激光雷达跟踪测量理论,开发研制了基于μC/OS-Ⅱ的机器人实时控制系统。该控制系统已成功用于实验室自主研制开发的足球机器人。性能测试表明,该机器人控制系统能够快速及时跟踪定位目标,并且能够通过无线通信模块与遥控端进行通信,完成指定操作指令。该控制系统采用的控制决策算法为PID,今后将致力于研究采用更为先进的算法。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19259

    浏览量

    229654
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304829
  • 控制系统
    +关注

    关注

    41

    文章

    6604

    浏览量

    110577
  • 机器人
    +关注

    关注

    211

    文章

    28380

    浏览量

    206919
  • S3C4480
    +关注

    关注

    0

    文章

    2

    浏览量

    7212
收藏 人收藏

    评论

    相关推荐

    基于μC/0S一Ⅱ和LPC2129微控制器实现智能机器人控制系统的设计

    ARM7处理器控制核心,采用无线通信技术,并移植嵌入式实时操作系统μC/0S一Ⅱ设计了一套智能机器人
    的头像 发表于 04-09 11:46 1.7w次阅读
    基于μ<b class='flag-5'>C</b>/0<b class='flag-5'>S</b>一Ⅱ和LPC2129微<b class='flag-5'>控制器</b><b class='flag-5'>实现</b>智能<b class='flag-5'>机器人</b><b class='flag-5'>控制系统</b>的设计

    【图书分享】Cortex-M3 + μC/OS-II嵌入式系统开发入门与应用

    《Cortex-M3 + μC/OS-II嵌入式系统开发入门与应用》作  者:陈瑶,李佳,宋宝华 编著 内容简介本书首先讲解了Cortex-M3
    发表于 03-13 11:02

    S3C2410处理器

    S3C2410处理器通过GPD端口连接LED1-4四个灯,试着画出其电路连接图,并变成实现其逐一点亮功能。
    发表于 11-23 21:50

    基于ARM处理器的吸尘机器人硬件设计

    包括传感模块,电机驱动模块,红外遥控接收模块、LED 指示灯和液晶显示模块。采用ARM Cortex-M3处理器作为机器人控制系统的核心,
    发表于 11-06 16:01

    如何实现移动机器人的设计?

    基于ARM7TDMI核的低功耗高性能的32位处理器芯片S3C44B0X为控制核心,以凌阳16位单片机SPCE061A为辅助处理器处理传感
    发表于 11-23 15:08

    如何用CPLD实现DSP2407A与S3C4480的通信?

    本设计以Xilinx公司的XC95108为例,通过在CPLD中开辟2块独立的SRAM区域(各1字节)来实现DSP2407A与S3C4480的并行通信。
    发表于 06-03 07:06

    小白求助,求基于嵌入式处理器S3C2440为核心的多任务机器人控制系统

    小白求助,求基于嵌入式处理器S3C2440为核心的多任务机器人控制系统
    发表于 10-21 08:28

    通过多轴工业机器人来聊聊机器人控制系统以及控制器实现

    机器人控制系统当中。那么今天,我们就通过多轴工业机器人来聊聊机器人控制系统以及控制器
    发表于 02-24 17:05

    嵌入式实时操作系统μC/OS-Ⅱ在ARM处理器上的实现

    嵌入式实时操作系统μC/OS-Ⅱ在ARM处理器上的实现,讲的非常详细哦。
    发表于 03-28 09:49 17次下载

    μC/OS-Ⅱ在S3C44B0X上的移植

    本文简介了一种实时多任务内核μC/OS-Ⅱ。并根据S3C44B0X 芯片的硬件特性,给出了一种把μC/OS-Ⅱ移植到
    发表于 08-31 11:46 18次下载

    移植µC/OS-Ⅱ教程

    这一章介绍如何将µC/OS-Ⅱ移植到不同的处理器上。所谓移植,就是使一个实时内核能在某个微处理器或微控制器上运行。为了方便移植,
    发表于 09-29 10:08 31次下载

    S3C4480在高精度直流开关电源设计中的应用

    S3C4480在高精度直流开关电源设计中的应用 介绍了嵌入式ARM处理器S3C44BO的系统结构,并将其应用到开关电源控制系统的软硬件设计
    发表于 10-17 10:27 1110次阅读
    <b class='flag-5'>S3C4480</b>在高精度直流开关电源设计中的应用

    S3C2410处理器特性

    S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器
    发表于 10-10 11:52 5597次阅读

    基于STM32处理器的μC_OS_移植

    基于STM32处理器的μC_OS_移植
    发表于 09-25 11:18 6次下载
    基于STM32<b class='flag-5'>处理器</b>的μ<b class='flag-5'>C_OS</b>_移植

    基于LPC2114处理器实现人形机器人控制系统的设计

    人形机器人控制系统包括机器人控制器机器人遥控两部分。其中
    的头像 发表于 04-13 15:42 3628次阅读
    基于LPC2114<b class='flag-5'>处理器</b><b class='flag-5'>实现</b>人形<b class='flag-5'>机器人</b><b class='flag-5'>控制系统</b>的设计