基于ZYNQ的移动机器人控制器设计(一)

移动机器人的设计是一个集软件、硬件、机械知识于一体的工作,因此,一套完整 方案的提出,则要展示其在机械结构、硬件架构、软件层次上的关键技术。

2.1应用场景描述和需求分析 
本节首先对论文提出的移动机器人控制器方案的应用场景进行描述,接下来从应用 场景出发,演绎并总结归纳该场景下的移动机器人有哪些功能和性能的要求。  2.1.1. 应用场景描述 
上文已经讲到,现行移动机器人方案通常针对某一特定问题开发,结构复杂而开发 过程浩大缓慢,既不能满足敏捷开发的需求,较快地成为可交付,可实现通用功能的产 品,也难以控制成本,同时软硬件的复用率,尤其是硬件IP的复用率很低,其他人难 以拿来进行二次开发。 
本文提出的移动机器人方案试图在解决上述问题上作出贡献。该方案适用于这样的 一种应用场景:机器人依靠机械结构简单、坚固、具有一定的强度能保护控制板和相应 电路安全的承载平台,通过电机驱动轮子实现运动,行进在室内室外地表状况不恶劣的 环境中,运动速度为中低速;机器人携带常见的各种传感器,诸如超声波、红外、激光、 陀螺仪、码盘、摄像头等,用于周围环境感知和自身姿态估计;并通过以上传感器实现 自主或人工干预的避障、地图创建、路径规划、图像处理和识别等功能。 
为了让该应用场景更加具体可感,本论文在实验过程中,又人为设定了如下场景: 机器人携带较多数量的超声波传感器(8~16路)和一个摄像头,运动在B3实验室周围 的室内外环境中,行驶速度为低速,最大速度小于100cm/s,并可以通过网络摄像头返 回周围实时景象。机器人有两种运动模式:漫游和操纵。在漫游模式下,机器人可以完 成自主避障功能;在操纵模式下,机器人接收并执行控制台发来的运动指令;操控者可 以通过浏览器访问机器人控制界面,监控当前的传感器状态,并人为发送控制指令;操作者可以随时中断和恢复机器人的漫游状态。  2.1.2. 需求分析 
从上述应用场景描述中可以看出,本文的方案目的在于提供一个通用平台,帮助开 发者快速实现机器人通用功能的验证。在结构、功能和性能上应该满足以下基本需求: 
机械结构上,机器人的承载平台应结构简单,可以快速搭建,坚固,能保证控制主 板和相应传感、控制电路的安全,机器人为轮式,最好有一个底盘可以安放主板和多种 传感器; 
硬件方面:(1)应该能轻松搭载目前市场上主流的传感器器件,数据链上应拥有丰 富的多类型的接口,以便于数据传输和通信;(2)主芯片最好是多核心的,搭载协处理 器甚至DSP,硬件加速器,图形处理器等的Soc方案,以应对不同性质任务的处理需求, 性能方面,因为要快速驱动异构的多路传感器,并完成快速的信息融合和处理,因此应 具有较强的计算处理能力,主频最好在200MHz以上;(3)因为系统要支持网络功能, 因此应该有网卡;(4)最好拥有无线通讯(诸如3/4G,蓝牙,ZigBee等)模块;(5) 最好能够以模块化的方式进行构建,并能方便地进行扩充; 
软件层次上,鉴于控制器至少拥有三个方面的任务:(1)传感器驱动和信息融合处 理;(2)实时任务调度;(3)人机交互等。因此软件体系应该是一个能够支持不同性质 任务的异构系统。裸机baremental+linux或ucOS/RTOS+linux是较好的选择。 
最重要的是,在整个设计的过程中,无论是软件还是硬件都应该由较强的复用性。 这样开发者就可以减少不必要环节的精力浪费,专注于算法功能的实现,从而满足敏捷 开发的需求,可以对产品进行快速迭代。 
综上所述,我们要是实现的是一种拥有异构系统的移动机器人方案,所谓异构在指 它利用嵌入式处理器的异步多核处理工作模式(AsynchronouS Muti-core Processing)实 现了在控制系统层面上,既有掌管处理底层传感器的部分,又有处理实时任务的部分, 同时也有掌管高性能任务的诸如声音,图像,网络,人机交互的部分。该方案在机械结 构上简洁、安全,可以搭载多种不用接口的多类型传感器,在软件层次上兼备实时操作 系统和Linux的优点,不同的任务间分工明确,层次清晰。

2.2 移动机器人控制器总体框架设计 
本节对论文提出的移动机器人控制器总体框架进行总体分析和呈现。我们采用经典 的机器人分级范式把系统分为三个层次:驱动与传感层、实时控制层、交互层。整体框架如图2-1所示:

其中驱动与传感层扮演“眼睛”角色和“腿”的角色,负责调度机器人身上携带的多路 异构传感器(在本文是多达16路的超声波和摄像头),并对传感器捕获的周围环境信息 进行预处理,同时为移动机器人提供动力驱动;实时控制层掌管机器人控制系统的各种 实时任务:如动作决策,指令下达,紧急开关,以及其他多种中断;而交互层则掌管外 界与机器人系统的信息交互,控制台界面运行在该层,我们可以通过网络来访问它,可 以观看此刻的机器人状态,也可以认为下达控制命令。接下来我们对各个层次分别展开 进行分析和阐释。  2.2.1驱动与传感层 
驱动与传感层是为动力驱动和周围环境信息的部分,该部分负责触发和调度各类异 构传感器,对多路传感信息进行预处理,包括数据融合和数据转发,以及电机驱动。本 小节介绍驱动与传感层的结构层次。 
该层主要用于传感信息的获取和预处理,以及电机驱动,其组成模块如图2-2所示: 

 

目前市场上主流的传感器种类非常繁多,常见的有:超声波传感器、红外传感器、 激光传感器、霍尔传感器、光电传感器、图像传感器、加速度传感器、陀螺仪等等。很 多都是已经成熟的模块,针对不同的需求,精度的选择范围也很自由。开发者在快速搭建移动机器人系统的时候,不妨考虑选用这些传感器模块,这样可以减少自己单间传感 器电路的时间开销,集中精力于机器人功能实现。本论文主要使用两种传感器:超声波 (8~16路)和网络摄像头。 
传感器的硬件接口类型也是十分丰富的,在本论文中我们选取通用接口,其类型基 本被以下种类覆盖:GPIO型,IIC型,SPI型,RS232/485型,USB型,以及PWM, CAP型,总线型等等。本文主要涉及的是GPIO,USB,总线型,以及EMIO型,其中 EMIO接口是Xilinx公司芯片Zynq平台的专有类型,本文第三章将会有专门介绍。  2.2.2实时控制层 
实时控制层是机器人控制系统的中枢,它向下连接驱动与传感层,基于当前捕获的 传感器信息做出周围环境判定,通过决策模块计算出机器人此时应该采取的动作,通过 与驱动与传感层接口下发动作指令;向上连接交互层,通过与其的接口,反馈机器人当 前的状态给控制台,同时接收控制台发来的操纵者命令,并以该命令中断机器人当前的 状态。实时控制层是本论文所展示的机器人控制器系统的最关键部分。图2-3展示了实 时控制层的功能模块:

实时控制层的关键技术主要存在于以下几个地方: 
(1)与其他两层即驱动与传感层和交互层的接口实现。包括不同层之间的通信接 口设定和通信协议实现,主要通过共享内存的方式实现,本论文第四章和第五章将会有 详细的介绍。 
(2)决策模块的算法设计,该模块负责大量实时数据的运算。机器人的动作决策 通过类似状态机的方式实现。本文第五章将会有详细介绍。  
(3)中断机制的设定。在本论文选用的方案中,我们将在FPGA中构建中断IP核

实现对的中断模块的软硬件协同设计。本文第第四章和第五章将会花费角度的笔墨,对 该部分进行介绍。 
综上所述,实时控制层的作用是为系统响应中断、数据处理、动作决策和执行提供 实时保证,是连接其余两层的中枢。  2.2.3交互层 
交互层为移动机器人的非实时性任务需求、人机交互、高性能任务处理提供服务。 本层理论上支持操纵者通过其他终端诸如PC、智能手机、平板电脑等设备与移动机器 人进行互联。它是移动机器人控制系统三个层次中的顶层,向下与实时控制层相连,并 通过专门的接口与实时控制层进行同行。在本论文中,该层的作用有两个:一是监控作 用,即能监控机器人自身当前所处的状态,包括机器人自身状态和周围环境状态;而是 命令作用,即在操纵者需要的任意时刻,人为地中断机器人当前的状态,并下发合适的 指令。 
图2-4显示了交互层的结构简图:

该层主要有以下关键模块 
(1)通信模块,该模块要实现与实时控制层的通信接口,在本文中通过共享内存 的方式实现,在论文第五章会有详细的介绍; 
(2)监控模块,用于反映移动机器人周围环境或其自身当前状态的模块;  (3)命令模块,允许操纵者通过此模块向移动机器人下发命令;  (4)显示子模块,方便人机交互而存在的子模块,通过显示器等设备向外界传递 信息。  

猜你喜欢

转载自blog.csdn.net/YEYUANGEN/article/details/129718026