[机器人软件架构]使用分层的方法设计机器人软件_第1页
[机器人软件架构]使用分层的方法设计机器人软件_第2页
[机器人软件架构]使用分层的方法设计机器人软件_第3页
[机器人软件架构]使用分层的方法设计机器人软件_第4页
[机器人软件架构]使用分层的方法设计机器人软件_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器人软件架构使用分层的方法设计机器人软件 目录 1. 驱动层 2. 平台层 3. 算法层 4. 用户接口层 机器人软件架构是典型的控制回路的层次集, 包含了高端计算平台上的高级任务规划、运动控制回路以 及最终的现场可编程门阵列(FPGA)。 在这中间,还有循环控制路径规划、机器人轨迹、障碍避让和 许多其他任务。 这些控制回路可在不同的计算节点(包括台式机、实时操作系统以及没有操作系统的自 定制处理器)上以不同的速率运行。 在某些时候,系统中的各个部分必须一同运行。 通常情况下,这需要在软件和平台间预定义一个非常简 单的界面就如控制和监测方向与速度般简单。 共享软件栈的不同层次的传感器数据是一个不错的想法, 但会给集成带来相当大的麻烦。 每个参与机器人设计的工程师或科学家的理念都有所不同,举例来说, 同一个架构对于计算机科学家来说运作良好,而在机械工程师那里可能就无法正常工作。 如图 1 所示,拟议的移动机器人软件架构由下列图形所表示的三至四层系统构成。 软件中的每一层只取 决于特定的系统、硬件平台或机器人的终极目标,与其上下层的内容完全不相关。 典型的机器人软件包 括驱动程序、平台和算法层组件,而具备用户交互形式的应用包含了用户界面层(该层可能不需要完全自 主实现)。 图 1. 机器人参考架构 该范例中的架构为带有机械手臂的自主移动机器人,它能够执行路径规划、障碍避让和地图绘制等任务。 这类机器人的应用范围在真实世界十分广泛,包括农业、物流或搜索和救援。 板载传感器包括编码器、 惯性测量单元(IMU)、摄像头和多个声纳及红外( IR)传感器。 传感器聚变可以用来整合针对本地化 的编码器和 IMU 数据 ,并定义机器人环境地图。 摄像头则用于识别载板机械手臂握住的物体,而机械 手臂的位置由平台层上执行的运动学算法所控制,声纳和红外传感器可以避开障碍物。 最后,转向算法 被用来控制机器人的移动,即车轮或履带的移动。 图 2 就是基于移动机器人架构的美国宇航局机器人。 图 2. SuperDroid Robots 设计的移动机器人 开发人员可以借助 NI LabVIEW 系统设计软件来实现这些移动机器人的平台层。 LabVIEW 可用于设计复 杂的机器人应用从机械手臂延伸到自主车辆开发。 该软件提取 I/O 并可与多种硬件平台集成,帮助工 程师和科学家提高了他们的开发效率。 NI CompactRIO 硬件平台在机器人开发中十分常用,它包括了集 成的实时处理器与 FPGA 技术。 LabVIEW 平台的内置功能可实现每一层之间的数据通信,通过网络传 输数据并显示在 PC 主机上。 1. 驱动层 顾名思义,驱动层主要处理机器人操控所需的底层驱动函数。 在这一层的组件取决于系统中的传感器和 执行器,以及运行着驱动软件的硬件。 一般情况下,这一层的模块采集工程单位(位置,速度,力量等 等)中激励器的设定值,生成底层信号来创建相应的触发,其中可能包括关闭这些设定值循环的代码。 同样的,该层的模块还能采集原始传感器数据,将其转换成有用的工程单位,并将传感器值传输至其它架 构层。 图 3 中的驱动层代码就是使用 LabVIEW FPGA 模块 开发的,并在 CompactRIO 平台的嵌入式 FPGA 模块上执行。 声纳、红外和电压传感器都连接在 FPGA 的数字 I/O 引脚上,信号在连续循环结构 中进行处理,这些结构在 FPGA 上真正的并行执行。 这些函数输出的数据被发送到平台层上进行进一步 处理。 图 3. 传感器和激励器的驱动层界面 驱动层可以连接到实际的传感器或激励器,或连接环境仿真器中的 I / O。 除了驱动层以外,开发人员无 需修改系统中的任何层,就能在仿真和实际硬件之间进行切换 。图 4 为 LabVIEW 机器人模块 2011,它 包含了基于物理学的环境仿真器,因此用户可在硬件和仿真之间切换,除了硬件 I / O 模块以外就无需修 改任何代码。 开发人员可以使用例如 LabVIEW 机器人环境仿真器等工具来在软件中快速验证他们的算 法。 图 4. 如果需要进行仿真,必须要在驱动层中使用环境仿真器。 2. 平台层 平台层中的代码对应了机器人的物理硬件配置。该层中底层的信息和完整的高层软件之间能够进行双向转 换,频繁地在驱动层和高层算法层之间切换。如图 5 所示,我们使用了 LabVIEW FPGA 读/写结点从 FPGA 中接受原始红外传感器数据,并且在 CompactRIO 实时控制器上进行数据处理。 我们使用 LabVIEW 函数将原始传感器数据转换成有用的数据在本案例中为距离,并判断我们是否在 4 米至 31 米 的范围之外。 图 5. 平台层在驱动层和算法层之间进行转换 3. 算法层 该层中的组件代表了机器人系统中高层的控制算法。图 6 呈现了机器人需要完成任务,可以看到算法层中 的模块采集系统信息,如位置、速度或处理后的视频图像,并基于所有反馈信息作出控制决定。该层中的 组件能够为机器人环境规划地图,并根据机器人周围的障碍物规划路径。图 6 中的代码显示的是使用矢量 场直方图(VFH)避障的范例。在该范例中,距离数据从平台层发送至距离传感器,再由 VFH 模块接收。 VFH 模块的输出数据包含了路径方向,该信息直接发送到平台层上。在平台层上,路径方向输入至转向 算法,并生成底层代码,然后直接发送到驱动层上的电机上。 图 6. 算法层根据反馈信息作出控制决定 算法层组件的另一个范例是搜索红色的球状物体,并使用机械手臂将它拾起的机器人。该机器人凭借其设 定的方式,在避让障碍的同时探索环境这就需要搜索算法与避障算法相结合。在搜索时,平台层模块 会处理图像,并且返回物体是否找到的信息。球被检测到以后,算法会生成一条运动轨迹,手臂端点根据 它就能抓住并拾起球体。 范例中的每个任务都具有一个高层目标,与平台或物理硬件无关。 如果机器人拥有多个高层目标,那么 这一层还需包含仲裁来为目标排序。 4. 用户接口层 用户接口层中的应用程序并不需要完全独立,它为机器人和操作员提供了物理互动,或在 PC 主机上显示 相关信息。 图 7 显示的是图形用户界面,上面包含板载相机上的实时图像数据,以及地图上周围障碍的 XY 轴坐标。 伺服角度控制让用户可以旋转与相机连接的板载伺服电机。 在该层中还能读取鼠标或游戏 杆的输入数据,或驱动简单的文本显示。 该层中的组件,例如 GUI 的优先级非常低;而急停按钮等类似 组件则需要以确定性的方式与代码捆绑。 图 7. 用户接口层允许用户与机器人进行交互或显示信息 根据目标硬件不同,软件层可能分布于多个不同目标。 在很多情况下,各个层都在一个计算平台上运行。 对于不确定的应用程序,软件目标为运行 Windows 或 Linux 系统的单台 PC。 对于需要更为严格定时限 制的系统,软件目标为单个处理节点,且具备实时操作系统。 鉴于 CompactRIO 与 NI Single-Board RIO 的小体积、供电要求和硬件架构, 它们对于移动应用程序来 说是理想的计算平台。驱动程序、平台和算法层可在实时处理器和 FPGA 上分布,如图 8 所示,如果需 要,用户界面层可在一台主机 PC 上运行。电机驱动器或传感器过滤器等高速组件可在 FPGA 架构上确定 地运行,无需占用处理器的时钟周期。平台和算法层上的中层控制代码可以以优先循环的方式在实时处理 器上确定地运行,而内置的以太网硬件可将信息传输到主机 PC 上生成用户界面层。 图 8. 映射到 CompactRIO 或 NI Single-Board RIO 嵌入式系统的移动机器人参考架构 文献中有关移动机器人软件架构的简要介绍表明了该主题还存在很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论