路径规划人员仅考虑预先知道的环境障碍。在路径执行中可能由于地图精度或动态环境等因素,造成机器人真实传感器的值与预期值之间存在差异。因此,机器人必须能根据真实传感器的值实时改变运动路径。这正是避障能力重要的原因。一些通用的避障方法包括Bug算法、VFH算法。
Bug算法
一种直接的路径规划方法是沿机器人行进路线中每个障碍的轮廓绕行。Bug1算法中,机器人完全沿障碍物轮廓环绕,并在到达离目标地点最近的点时分离。这种方法效率低,但能确保机器人到达任何可到达的目标。Bug2算法中,机器人先沿障碍物轮廓行进,当达到可直达目标地点的位置时立刻分离。Bug2算法显著缩短了机器人的行进路程,但仍不是最优的。
VFH算法
Bug算法的一个限制是机器人每一刻的行为一般为传感器最近时刻读数的函数。这就可能导致机器人的瞬时传感器读数不能为稳定的避障能力提供足够的信息。VFH技术通过创建机器人周围环境的地图克服了该限制。在避障时生成极坐标柱状图来确定转向。首先,识别能够让机器人通过的所有通道。然后,执行考虑目标方向、轮方向和前一刻方向的代价函数。
图2. LabVIEW VI的前面板运行VFH避障算法
在中LabVIEW使用算法
通过LabVIEW用户可选择最有效的语法来开发算法,或使用内置工具来导入其它基于文本语言写的算法。继承代码中已有的搜索算法及其它机器人库可轻松导入LabVIEW、LabVIEW Real-Time和LabVIEW FPGA中。
调用函数库节点
LabVIEW用户可利用调用库函数节点在Windows机器和实时嵌入式控制器中调用DLL。该节点用于在LabVIEW中创建调用专为LabVIEW编写的已有库或新库的接口。下图的调用库函数节点输入4个字节的浮点数,并输出其平方值。
图3. 调用函数库节点可在LabVIEW中用于导入继承代码
也可参阅:
概述LabVIEW中的DLL访问或库共享
使用导入共享库向导综合外部代码