我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 583|回复: 0

机器人技术基础系列:规划与导航 - 机器人技术 - 电子工程

[复制链接]

该用户从未签到

1万

主题

1292

回帖

936

积分

管理员

积分
936

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 00:21:11 | 显示全部楼层 |阅读模式
<strong>概览</strong>

自主移动机器人的规划与导航包括利用有目的的抉择制定和执行来使系统实现最高级的目标。机器人是否胜任导航的能力必须通过两个技能来证明:路径规划和避障。

<strong>路径规划</strong>

给定地图和目的地情况下的路径规划指的是机器人通过轨迹识别行进至目的地的能力。路径规划是至关重要的问题解决能力,因为机器人必须有能力决定在到达目的地前的路程中如何行进。

路径规划可分为两部分:表达与算法。路径规划人员首先将机器人环境转化为适合路径规划的形式。一些常用的技术包括广义的 Voronoi图、规则网格和四叉树。路径规划算法通常可用于几乎所有配置空间的表达,虽然某些方法会更适合特定表达。图1展示了LabVIEW中绘制的 Voronoi图。


<ignore_js_op>





2010-3-9 21:31:05 上传
<strong>下载附件</strong> (10.03 KB)




</ignore_js_op>

图1. LabVIEW中的Voronoi图

由于多数表达可转换为图表,初始节点和目标节点之间的路径可通过图搜索算法来计算。图搜索算法被计算机科学充分理解,然而,许多算法要求程序访问图上的每个节点,以此来决定初始节点和目标节点间的最短路径。对于松连通图来说,访问每个节点是容易计算的,如Voronoi 图;但对于紧连通图来说计算开销迅速变大,如规则网格图。

<strong>避障</strong>

路径规划人员仅考虑预先知道的环境障碍。在路径执行中可能由于地图精度或动态环境等因素,造成机器人真实传感器的值与预期值之间存在差异。因此,机器人必须能根据真实传感器的值实时改变运动路径。这正是避障能力重要的原因。一些通用的避障方法包括Bug算法、VFH算法。

<i>Bug算法</i>

一种直接的路径规划方法是沿机器人行进路线中每个障碍的轮廓绕行。Bug1算法中,机器人完全沿障碍物轮廓环绕,并在到达离目标地点最近的点时分离。这种方法效率低,但能确保机器人到达任何可到达的目标。Bug2算法中,机器人先沿障碍物轮廓行进,当达到可直达目标地点的位置时立刻分离。Bug2算法显著缩短了机器人的行进路程,但仍不是最优的。

<i>VFH算法</i>

Bug算法的一个限制是机器人每一刻的行为一般为传感器最近时刻读数的函数。这就可能导致机器人的瞬时传感器读数不能为稳定的避障能力提供足够的信息。VFH技术通过创建机器人周围环境的地图克服了该限制。在避障时生成极坐标柱状图来确定转向。首先,识别能够让机器人通过的所有通道。然后,执行考虑目标方向、轮方向和前一刻方向的代价函数。


<ignore_js_op>





2010-3-9 21:31:05 上传
<strong>下载附件</strong> (32.57 KB)




</ignore_js_op>

图2. LabVIEW VI的前面板运行VFH避障算法

<strong>在中LabVIEW使用算法</strong>

通过LabVIEW用户可选择最有效的语法来开发算法,或使用内置工具来导入其它基于文本语言写的算法。继承代码中已有的搜索算法及其它机器人库可轻松导入LabVIEW、LabVIEW Real-Time和LabVIEW FPGA中。

<i>调用函数库节点</i>

LabVIEW用户可利用调用库函数节点在Windows机器和实时嵌入式控制器中调用DLL。该节点用于在 LabVIEW中创建调用专为LabVIEW编写的已有库或新库的接口。下图的调用库函数节点输入4个字节的浮点数,并输出其平方值。


<ignore_js_op>





2010-3-9 21:31:06 上传
<strong>下载附件</strong> (1.31 KB)




</ignore_js_op>

图3. 调用函数库节点可在LabVIEW中用于导入继承代码

也可参阅:

概述LabVIEW中的DLL访问或库共享

使用导入共享库向导综合外部代码

<i>公式节点</i>

公式节点可用于LabVIEW和LabVIEW Real-Time中的算法开发。公式节点是一种简单的基于文本语言的节点,用于在LabVIEW框图中执行数学操作。用户无需连接任何外部代码或应用,也无需连接低级算法函数来创建等式。除了基于文本的等式表达,公式节点还能接受基于文本版的if声明、while循环、for循环和do循环,这些都是C 语言用户所熟悉的。


<ignore_js_op>





2010-3-9 21:31:06 上传
<strong>下载附件</strong> (2.7 KB)




</ignore_js_op>

图4. 公式节点采用类似C语言的语法

公式节点对于包含许多变量或非常复杂的等式,以及使用已有的基于文本的代码来说很有用。用户可将已有的基于文本的代码复制、粘贴到公式节点中,避免了重新创建图形代码的麻烦。

也可参阅:

指南:Mathscript和公式节点
练习:Mathscript和公式节点
视频:Mathscript和公式节点

<i>HDL节点</i>

HDL接口节点允许用户在LabVIEW FPGA中综合硬件描述语言(HDL)写的算法或应用。用户可以直接在HDL接口节点中输入HDL代码,或引用外部HDL文件,下图的例子中,HDL输入节点包括了VHDL代码,将两个32比特数字相加并返回结果。


<ignore_js_op>





2010-3-9 21:31:05 上传
<strong>下载附件</strong> (2.46 KB)




</ignore_js_op>

图5. HDL节点允许用于向LabVIEW FPGA中导入HDL代码

也可参阅:
HDL接口节点FAQ
使用HDL接口节点向 FPGA VI中导入HDL代码
使用HDL接口节点在LabVIEW FPGA中综合IP核
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表