基于软硬件协同处理的小型轮式机器人平台

发布者:灵感驿站最新更新时间:2015-01-21 来源: eefocus关键字:小型轮式机器人  智能控制算法  ARM 手机看文章 扫描二维码
随时随地手机看文章

1项目背景及目标

1.1项目背景

本文课题源于华中科技大学瑞萨实验室的移动机器人项目以及智能车竞赛,主要目的是基于嵌入式技术和控制系统原理,基于FPGA结合ARM的基本架构设计一个小型移动机器人平台,可以研究自动驾驶、自动泊车、图像处理、智能控制算法等机器人应用。

 

该平台是一种模块化、通用、层次结构的设计方案,使得研究人员可以根据自己的要求选择不同的模块通过简单的组合,构建符合要求的移动机器人平台。所设计的小型移动机器人平台不光有助于机器人技术领域的研究,也是一个理想的嵌入式技术的研究和验证平台。

 

移动机器人领域在可重配置和模块化方面一直有大量的研究。随着FPGA在嵌入式系统中的广泛应用,通过硬件语言编程来实现所需的逻辑功能、实现硬件平台的重配置,为可重配置和模块化机器人的设计提供了一种新的方法。FPGA负责实现连接各类传感器和执行机构的逻辑电路功能和必要的信号处理,只需编写不同的硬件语言程序,即可实现所需的电路功能,连接相应的传感器和执行机构,实现硬件的重新配置。随着基于FPGA的SOPC技术的发展,使用SOPC技术来实现可重配置的机器人控制器也成为了机器人平台研究的热点。然而基于开发控制系统的商业性、系统可升级性、算法复杂度以及工具链、生态链成熟度的角度考虑,使用基于ARM的CPU作为主控制器更易于实现该平台。因此本项目将基于分立的ARM和FPGA基本架构实现移动机器人平台。

 

该机器人平台系统分为三个层次:实时控制层、控制数据流层、传感器与驱动器层。系统高两层使用串行计算的MCU(ARM7)和并行计算的FPGA(Spartan6)这样的AMP架构,处理器间高效的通信将是提升整个系统性能的关键,基于开发经验,本平台将采用EMC与SSP这样串并结合的通信方式。平台还可以上扩一个高端嵌入式系统接口,ARM7可以通过USB与ARM Cortex A9通信,完成更复杂的功能。传感器与驱动器层可以搭载多种传感器与驱动器模块,运算在FPGA中完成。

 

关于软件平台设计,该小型移动机器人可以移植非常有商业前景的TOPPERS实时嵌入式操作系统,既可以在ARM7上移植,也可以考虑在Spartan6上移植。

 

该课题思想已经在专业课程、移动机器人项目以及两项智能车竞赛中得到数年设计的充分验证,团队有成熟的硬件平台、OS及组件系统移植范例、IP设计范例、算法资源和测试数据,已经开始相关模块的实现。

 

1.1.1FPGA处理底层密集数据流

FPGA相对CPU的特点在于并行计算和高速,因此适合于处理批量数据。针对本项目,FPGA负责数字图像处理、智能控制、图像人机接口等典型应用的底层密集数据流。

 

以点阵液晶LCM作为基本人机接口为例说明。引入映射缓冲区这一思想,可以把LCM接口的物理接口部分和数据部分分开,即ARM只读写映射区的数据,而FPGA负责液晶的具体时序要求,通用性、可移植性大大增强。引入双口RAM,则可实现ARM的快速数据通道EMC接口与LCM的慢数据通道接口的跨时钟域设计。这样一来,系统的同步、模块化、高效大大加强。同时可以利用C语言逻辑描述优势实现复杂的画图功能,而利用Verlilog HDL物理并行优势在数据间插入复杂的时序、命令及状态机操作。

 

1.1.2ARM处理上层复杂控制流

CPU相对硬件的特点是复杂函数计算。实时嵌入式操作系统TOPPERS在ARM7上的移植可以丰富系统的应用及加强实时性。同时结合丰富的协议栈及应用支持,系统功能可以得到较大扩展。利用ARM处理复杂控制流并扩展功能、利用FPGA处理密集数据流,正是该平台最显著的特点。

 

1.2主要实现目标

1.2.1ARM与FPGA高效通信及重配置

采用的ARM7芯片拥有32 位外部存储器控制器EMC以及串行同步接口SSP。EMC支持异步静态存储器(如SRAM、Flash)和动态存储器(例如SDRAM)的并行接口,而SSP兼容SSI、SPI、MicroWave等格式,并支持DMA传输。

 

为了充分发挥接口性能,ARM7与Spartan6之间的通信采用双向EMC与双向SSP结合的方式,其中一路SSP被配置成SPI模式,完成ARM对FPGA从串配置。

1.2.2FPGA实现图像处理

本项目使用摄像头主要是为了完成循线和标志识别,上层控制流所需的信息并没有那么丰富,大部分无用信息可以通过可编程硬件滤波、图像分割、图像细化;其次,高速运动的机器人平台捕捉的图像也是各帧运动的,需要对运动帧做滤波、趋势判断处理。由此产生的数据流均由可编程硬件FPGA完成。

 

1.2.3FPGA实现在系统图像显示

针对显示输出设备,有两类任务:车载显示和无线显示。

 

车载显示可利用小型LCM显示基本的人机界面和实时监控数据;而无线显示可采用无线局域网等网络连接机器人平台和上位机,实时回传摄像头图像,还可以在FPGA中处理计算生成的路径,将二者复合后回传。

 

1.2.4FPGA实现运动控制算法

传统PID基本算法并不会占用CPU多少时间,但考虑到运动控制中对双闭环、智能算法、PMSM等更为迫切的需求,同时考虑到系统可扩展可重构性能,采用FPGA实现运动控制是一种合适的解决方案。

 

1.2.5FPGA实现模糊控制等智能算法

高级语言具有比硬件描述语言更好的行为级建模能力,而基于System Generator和Matlab Simulink的软硬件协同设计方法正成为一大热门控制系统开发方法。

 

模糊控制这类智能算法无需建立被控对象的数学模型,对控制对象的参数变化或非线性特性具有较好的适应能力,对干扰或噪声具有更强的抑制功能。但其实现需要较高的并行程度,考虑到可重构性,由FPGA完成模糊控制硬件,而由ARM完成重构或升级,具有非常好的架构优点。[page]

 

在本项目中使用模糊控制,既可以应用到控制层控制策略、传感器层数据融合,也可以应用到驱动层电机控制,可以说各个层次都有应用。

 

本项目考虑在Matlab Simulink环境下建立模糊控制系统基本模型,得到理想仿真结果后,搭建System Generator模型并完成定点仿真,完成软件硬件协同设计。

 

1.2.6FPGA实现传感器数据融合

控制流层需要的信息更多的是抽象级、行为级,而具体传感器带来了大量的数据流,如何组合出各类传感器,并提取出有效的信息是一大关键。为此,可以采用数据融合的方式,具体可以使用模糊控制等智能算法。

2系统原理及技术

2.1系统结构

2.1.1机器人平台

暂定DFRobot的ROB0001:4轮驱动,无转向驱动,需要通过差速转向。

  • Four encodered DC motors

  • Includes 4x gearmotors

  • Aluminum frame and mounting hardware

  • Speed: 80 cm/s

  • Electronics, camera, servo motors sold separately

  • Package Dimensions: 360mm x 355mm x 165mm

  • 27cm (Length) x 20cm (width) x 6cm(height)  (rectangular base)

  • 27cm (Length) x 20cm (width) x 7cm(height)  (upper deck)

 

也可以考虑飞思卡尔或瑞萨智能车平台,带转向驱动。

2.1.2控制系统结构

  1. 电机驱动环

  1. 车体控制环

 

2.1.3处理与计算平台架构

系统分为ARM实时控制流层、FPGA控制与数据流层、传感器与驱动器层这三层,最底层将由外扩的IO控制,运算在FPGA中完成。高性能处理层暂不实现。[page]

  1. 硬件结构如下:

  1. 内部结构如下:

 

2.2硬件流程

2.2.1图像处理模块

 

与一般视频图像处理不同,该平台是针对机器而非人而进行处理,因此需要得到机器能有效时别的图像帧中的路径、标志等。时序控制、滤波、分割、选择、压缩、运动检测、跨时钟域同步等步骤。

 

2.2.2电机控制模块

转速指令与电机控制器分开,后者由FPGA完成。

2.2.3模糊算法模块

将T-S型FLC用在电机转矩控制中,发挥FPGA的高度并行及快速特性。

2.3软件流程

2.3.1任务调度

2.3.2图像处理流程

2.3.3路径识别

2.3.4循线控制算法

由于可以切内弯,因此可以分直道、普通弯道、S弯道三种情况来处理。而这三种情况可以通过主路径曲线的拐点数区分。

  1. 跟踪控制

  2. 转向控制

  3. 动力控制

 

3需要的资源

3.1主要硬件

Nexys™3 Spartan-6 FPGA Board、NXP LPC2478、Xilinx XC6LX9-TQG144。

3.2仪器

ChipScope PRO、示波器、万用表。

3.3开发工具

FPGA:ISE Design Suite、Modelsim、Matlab Simulink & SystemGnerator;

ARM:Eclipse;

电路:Altium Designer。

关键字:小型轮式机器人  智能控制算法  ARM 引用地址:基于软硬件协同处理的小型轮式机器人平台

上一篇:基于STM32的带触摸屏的无线解说器
下一篇:Ambiq Micro的Apollo微控制器降低功耗达10倍

推荐阅读最新更新时间:2024-03-16 13:51

ARM汇编语言与C/C++的混合编程
ARM公司不生产芯片,而是出售核(如ARM9)给硬件厂商,硬件厂商添加一些外围器件,就成了芯片(如s3c2440)。 ARM汇编语言与C/C++的混合编程 - 在C/C++代码中嵌入汇编指令 在C/C++中使用内嵌的汇编指令语法格式: 使用关键字_ _asm来标识一段汇编指令程序 _ _asm {undefined 汇编语言程序 ~~~~~~~~~~ 汇编语言程序 } 例C1.C #include stdio.h void my_strcpy(const char *src, char *dest) {undefined char ch; _ _asm
[单片机]
吴雄昂:人才是Arm在中国的核心赋能方向之一
近日,由中国电子信息产业发展研究院,工信部软件与集成电路促进中心,《中国集成电路产业人才白皮书》编委会合作发布了中国集成电路产业人才白皮书(2017-2018年版)。 Arm中国区总裁吴雄昂发表了针对Arm与人才关系的主题演讲,分享了Arm在新环境、新结构下的开放创新。 吴雄昂说道,根据软银的预测,未来全球将会有万亿互联网设备,如果按照每个设备30美元来计算,将会有30万亿美元的市场规模,其中中国市场会占到三分之一。 吴雄昂表示,到今天为止,在智能手机、穿戴式、汽车互联网设备、智能互联等领域,Arm架构芯片超过了90%的市场份额,是全球最大的生态系统。这样的生态系统是唯一能够承载万亿级设备的生态系统,Arm预计今后四年
[半导体设计/制造]
引用 ADS1.2下ARM映像文件
ARM中的各种源文件(包括汇编文件,C语言程序及C++程序等)经过ARM编译器编译后生成ELF(Executable and linking format)格式的目标文件。这些目标文件和相应的C/C++运行 时用到的库经过ARM连接器处理后,生成ELF格式的映像文件(image),这种ELF格式的映像文件是一种可执行文件,可被写入嵌入式设备的ROM 中。 bin文件是真正的可执行文件,axf文件是ARM的调试文件,除了包含bin的内容之外,还附加了其他的调试信息,这些调试信息加在可执行的二进制数据的前面,所以把axf文件写到ARM的指令执行地址(一般是0x0)将不能运行,因为在此地址前几十个字节的数据不是可执行的二进制数
[单片机]
引用 ADS1.2下<font color='red'>ARM</font>映像文件
基于ARM7的CAN-USB转换器设计
引言 ABS(防抱死刹车系统)ECU(电控单元)在研发过程中,为了实时确定其行车参数和控制参数,通常会使用标定技术,标定技术就是通过一定的命令对ECU上传和读取控制算法参数,以达到对其实时修改以寻求最优的技术。对于车载电控单元来说,其通常只有CAN总线通信接口,为了能实现上位机和ECU能直接进行通信,实现利用标定技术对ABS ECU进行开发,我们设计了一款能实现CAN到USB的数据转换器。CAN通信协议是一种用于汽车内部测量与执行部件之间的数据通信协议。而USB具有即插即用的优点,并且有较高的通信速率,对于实现上位机和下位机的通信进行标定十分方便。我们设计的数据转换器采用了NXP公司的LPC2119 ARM7处理器,通过它成功地
[工业控制]
ARM:今年A9双核和A7双核仍是主流,年底将发布Mali7系列GPU
    近日,ARM中国市场经理邹诚在炬力平板“三剑客”发布会上,对于ARM芯片架构外来的发展以及Mail系列GPU的规划进行了一些介绍,同时还爆料,将会在今年发布Mali 7系列GPU。 ARM认为,在今年Cortex-A9双核和Cortex-A7双核将成为主流,此外A5双核也将会有一定的市场。而直到明年四核才会真正成为主流,其中占据主导地位的还是Cortex-A9四核,其次是Cortex-A7四核和Cortex-A5四核。到2015年,A15/A12+A7这类Big-little架构的4+4或2+2的方案才有可能真正流行起来。而64位架构的Cortex-A57/A53的4+4或2+2架构,以及Cortex-A53四核架构要等
[手机便携]
ARM核心板在动态尿量监测仪中的应用案例详解
1.1项目简介 尿量监测是检测患者多种指标中的一项重要内容,它是反映肾脏血流灌注水平的最直接最敏感的生理指标,对于重症患者来说,尿量常常能够在血肌酐升高之前预示肾功能的紊乱。根据AKIN国际共识制定的积习难改肾衰竭分层诊断标准——RIFLE标准,尿量是重要的分层诊断指标。连续每小时尿量监测可以及时评判肾功能状态,提示临床及早干预,阻止肾功能的进一步恶化。 特别是休克、心脏手术、大面积烧伤及肾功能不全等病人监测每小时尿量非常重要,它能够及时反映人体有效循环血量及肾脏功能。尿量的严密监测对于密切观察患者病情,了解机体生命状况,判断病情的转归和预后有着重要的临床意义。国内某厂家产品样式。 图1 国内某厂家产品 1.2系统描
[单片机]
<font color='red'>ARM</font>核心板在动态尿量监测仪中的应用案例详解
ARM汇编指令MCR/MRC学习
MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。如果协处理器不能成功地执行该操作,将产生未定义的指令异常中断。 指令的语法格式: MCR{} p15, 0, , , {,} MCR2 p15, 0, , , {,} 其中,为指令执行的条件码。当忽略时指令为无条件执行。MCR2中,为Ob1111,指令为无条件执行指令。 为协处理器将执行的操作的操作码。对于CP15协处理器来说,永远为0b000,当不为0b000时,该指令操作结果不可预知。 作为元寄存器的ARM寄存器,其值被传送到得协处理器寄存器中。 不能为PC,当其为PC时,指令操作结果不可预知。 作为目标寄存器的协处理器寄存器,其编号可能为C0,C1
[单片机]
Arm 宣布推出全新汽车技术,可缩短多达两年的人工智能汽车开发周期
新闻 重 点 : 支持功能安全的全新 Arm 汽车增强 (AE) 处理器将为 AI 驱动的用例带来先进的 Armv9 架构技术和服务器级性能 Arm 针对汽车应用的未来计算子系统将进一步缩短高性能汽车系统的开发时间、降低成本,并带来最大的灵活性 Arm 生态系统首次实现在物理芯片就绪前就可基于虚拟原型解决方案启动软件开发,由此可缩短多达两年的开发周期 Arm 控股有限公司(纳斯达克股票代码:ARM,以下简称“Arm”)今日携手生态系统合作伙伴推出最新的 Arm 汽车增强 (AE) 处理器和虚拟平台,让汽车行业在开发伊始便可应用,助力缩短多达两年的开发周期。 Arm 高级副总裁兼汽车事业部总经理 Dipti Vac
[汽车电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved