DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1810|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 23:23:46 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
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完成重构或升级,具有非常好的架构优点。
           
          在本项目中使用模糊控制,既可以应用到控制层控制策略、传感器层数据融合,也可以应用到驱动层电机控制,可以说各个层次都有应用。
           
          本项目考虑在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控制系统结构
           
  •                                          电机驱动环

       

           
  •                                          车体控制环

       

         

          2.1.3处理与计算平台架构
          系统分为ARM实时控制流层、FPGA控制与数据流层、传感器与驱动器层这三层,最底层将由外扩的IO控制,运算在FPGA中完成。高性能处理层暂不实现。
           
  •                                          硬件结构如下:

       

           
  •                                          内部结构如下:

       

         

          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弯道三种情况来处理。而这三种情况可以通过主路径曲线的拐点数区分。
           
  •                                          跟踪控制
           
  •                                          转向控制
           
  •                                          动力控制

         

          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。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 16:28 , 耗时 0.087944 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表