基于ZYNQ移动机器人控制器设计设计思路

Posted 信迈科技DSP+ARM+FPGA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于ZYNQ移动机器人控制器设计设计思路相关的知识,希望对你有一定的参考价值。

本文提出的移动机器人方案试图在解决上述问题上作出贡献。该方案适用于这样的
一种应用场景:机器人依靠机械结构简单、坚固、具有一定的强度能保护控制板和相应
电路安全的承载平台,通过电机驱动轮子实现运动,行进在室内室外地表状况不恶劣的
环境中,运动速度为中低速;机器人携带常见的各种传感器,诸如超声波、红外、激光、
陀螺仪、码盘、摄像头等,用于周围环境感知和自身姿态估计;并通过以上传感器实现
自主或人工干预的避障、地图创建、路径规划、图像处理和识别等功能。 
为了让该应用场景更加具体可感,本论文在实验过程中,又人为设定了如下场景:
机器人携带较多数量的超声波传感器(8~16 路)和一个摄像头,运动在 B3 实验室周围
的室内外环境中,行驶速度为低速,最大速度小于 100cm/s,并可以通过网络摄像头返
回周围实时景象。机器人有两种运动模式:漫游和操纵。在漫游模式下,机器人可以完
成自主避障功能;在操纵模式下,机器人接收并执行控制台发来的运动指令;操控者可
以通过浏览器访问机器人控制界面,监控当前的传感器状态,并人为发送控制指令;操作者可以随时中断和恢复机器人的漫游状态。 

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)显示子模块,方便人机交互而存在的子模块,通过显示器等设备向外界传递
信息。

创作挑战赛 新人创作奖励来咯,坚持创作打卡瓜分现金大奖

以上是关于基于ZYNQ移动机器人控制器设计设计思路的主要内容,如果未能解决你的问题,请参考以下文章

基于ZYNQ移动机器人控制器设计背景

基于ZYNQ移动机器人控制器设计控制器硬件方案选型(续)

如何学习zynq以太网控制器及协议栈

zynq板卡学习资料:基于zynq XC7Z100 FMC接口通用计算平台367

如何设计一款基于ROS的移动机器人

C6678/C6657+ZYNQ/K7/A7 FPGA+AD+北斗的软硬件设计方案