[机器人软件架构]使用分层的方法设计机器人软件

[机器人软件架构]使用分层的方法设计机器人软件

ID:14670984

大小:1.60 MB

页数:6页

时间:2018-07-29

[机器人软件架构]使用分层的方法设计机器人软件_第1页
[机器人软件架构]使用分层的方法设计机器人软件_第2页
[机器人软件架构]使用分层的方法设计机器人软件_第3页
[机器人软件架构]使用分层的方法设计机器人软件_第4页
[机器人软件架构]使用分层的方法设计机器人软件_第5页
资源描述:

《[机器人软件架构]使用分层的方法设计机器人软件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、[机器人软件架构]使用分层的方法设计机器人软件目录1.驱动层2.平台层3.算法层4.用户接口层机器人软件架构是典型的控制回路的层次集,包含了高端计算平台上的高级任务规划、运动控制回路以及最终的现场可编程门阵列(FPGA)。在这中间,还有循环控制路径规划、机器人轨迹、障碍避让和许多其他任务。这些控制回路可在不同的计算节点(包括台式机、实时操作系统以及没有操作系统的自定制处理器)上以不同的速率运行。在某些时候,系统中的各个部分必须一同运行。通常情况下,这需要在软件和平台间预定义一个非常简单的界面—就如控制和

2、监测方向与速度般简单。共享软件栈的不同层次的传感器数据是一个不错的想法,但会给集成带来相当大的麻烦。每个参与机器人设计的工程师或科学家的理念都有所不同,举例来说,同一个架构对于计算机科学家来说运作良好,而在机械工程师那里可能就无法正常工作。如图1所示,拟议的移动机器人软件架构由下列图形所表示的三至四层系统构成。软件中的每一层只取决于特定的系统、硬件平台或机器人的终极目标,与其上下层的内容完全不相关。典型的机器人软件包括驱动程序、平台和算法层组件,而具备用户交互形式的应用包含了用户界面层(该层可能不需要完

3、全自主实现)。图1. 机器人参考架构该范例中的架构为带有机械手臂的自主移动机器人,它能够执行路径规划、障碍避让和地图绘制等任务。这类机器人的应用范围在真实世界十分广泛,包括农业、物流或搜索和救援。板载传感器包括编码器、惯性测量单元(IMU)、摄像头和多个声纳及红外(IR)传感器。传感器聚变可以用来整合针对本地化的编码器和IMU数据,并定义机器人环境地图。摄像头则用于识别载板机械手臂握住的物体,而机械手臂的位置由平台层上执行的运动学算法所控制,声纳和红外传感器可以避开障碍物。最后,转向算法被用来控制机器人

4、的移动,即车轮或履带的移动。图2就是基于移动机器人架构的美国宇航局机器人。图2. SuperDroidRobots设计的移动机器人开发人员可以借助NILabVIEW 系统设计软件来实现这些移动机器人的平台层。LabVIEW可用于设计复杂的机器人应用—从机械手臂延伸到自主车辆开发。该软件提取I/O并可与多种硬件平台集成,帮助工程师和科学家提高了他们的开发效率。 NICompactRIO 硬件平台在机器人开发中十分常用,它包括了集成的实时处理器与FPGA技术。LabVIEW平台的内置功能可实现每一层之间的数

5、据通信,通过网络传输数据并显示在PC主机上。1.驱动层顾名思义,驱动层主要处理机器人操控所需的底层驱动函数。在这一层的组件取决于系统中的传感器和执行器,以及运行着驱动软件的硬件。一般情况下,这一层的模块采集工程单位(位置,速度,力量等等)中激励器的设定值,生成底层信号来创建相应的触发,其中可能包括关闭这些设定值循环的代码。同样的,该层的模块还能采集原始传感器数据,将其转换成有用的工程单位,并将传感器值传输至其它架构层。图3中的驱动层代码就是使用LabVIEWFPGA模块 开发的,并在CompactRIO

6、平台的嵌入式FPGA模块上执行。声纳、红外和电压传感器都连接在FPGA的数字I/O引脚上,信号在连续循环结构中进行处理,这些结构在FPGA上真正的并行执行。这些函数输出的数据被发送到平台层上进行进一步处理。图3. 传感器和激励器的驱动层界面驱动层可以连接到实际的传感器或激励器,或连接环境仿真器中的I/O。除了驱动层以外,开发人员无需修改系统中的任何层,就能在仿真和实际硬件之间进行切换。图4为LabVIEW机器人模块 2011,它包含了基于物理学的环境仿真器,因此用户可在硬件和仿真之间切换,除了硬件I/O

7、模块以外就无需修改任何代码。开发人员可以使用例如LabVIEW机器人环境仿真器等工具来在软件中快速验证他们的算法。图4. 如果需要进行仿真,必须要在驱动层中使用环境仿真器。2.平台层平台层中的代码对应了机器人的物理硬件配置。该层中底层的信息和完整的高层软件之间能够进行双向转换,频繁地在驱动层和高层算法层之间切换。如图5所示,我们使用了LabVIEWFPGA读/写结点从FPGA中接受原始红外传感器数据,并且在CompactRIO实时控制器上进行数据处理。我们使用LabVIEW函数将原始传感器数据转换成有用

8、的数据—在本案例中为距离,并判断我们是否在4米至31米的范围之外。图5. 平台层在驱动层和算法层之间进行转换3.算法层该层中的组件代表了机器人系统中高层的控制算法。图6呈现了机器人需要完成任务,可以看到算法层中的模块采集系统信息,如位置、速度或处理后的视频图像,并基于所有反馈信息作出控制决定。该层中的组件能够为机器人环境规划地图,并根据机器人周围的障碍物规划路径。图6中的代码显示的是使用矢量场直方图(VFH)避障的范例。在该范例中,距离数据

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。