文档帮助中心文档
避免使用向量场直方图障碍
导航工具箱/控制算法
的向量场直方图(VFH)块使您的车辆,以避免阻碍基于传感器数据范围。给定一个范围传感器读数范围和角度而言,和目标的方向推动,VFH控制器计算一个无障碍的指导方向。
算法细节的更多信息,请参阅向量场直方图在算法。
的范围和角输入仅限于4000个元素在为模型生成代码时,使用这个块。
范围
角
全部展开
从扫描数据范围值,指定为一个向量的标量米。这些范围值在指定的角距离传感器。向量必须对应相同的长度角向量。
从扫描角值数据,指定为一个向量标量的弧度。这些角值指定的特定角度的范围。向量必须对应相同的长度范围向量。
TargetDir
目标方向的车辆,指定为一个标量的弧度。车辆的前进方向是零弧度,用积极的角度测量逆时针。您可以使用TargetDir的输出单纯的追求阻止在生成控制一组锚点。
steeringDir
车辆的转向方向,指定为一个标量的弧度。这个无障碍方向计算基于VFH +算法。车辆的前进方向是零弧度,用积极的角度测量逆时针。
角的行业
180年
数量的垃圾箱用来创建直方图,指定为一个标量。这个参数是nontunable。你可以设置该参数只有当对象初始化。
范围限制距离(米)
(0.05 - 2)
限制在电表读数范围,指定为一个双元素向量的标量。读数输入范围是只考虑如果他们属于距离限制。使用距离下限忽视假阳性来自贫困传感器性能较低的范围。使用上限忽略障碍太远离车辆。
直方图阈值
10 [3]
计算二元直方图阈值,指定为一个双元素向量的标量。该算法使用这些阈值来计算二进制密度直方图从极地障碍。极地障碍密度值高于上部阈值表示为(1)占用空间的二元直方图。值小于低阈值被表示为自由空间(0)。值介于限制设置为前一个二进制计算直方图的值是否存在一个从先前的迭代。如果前一个直方图不存在,该值设置为自由空间(0)。
车辆半径(米)
0.1
半径的车辆,指定为一个标量米。这维定义最小的循环,它可以限制你的车辆。车辆半径是用来占车辆大小计算无障碍时的方向。
安全距离(米)
安全车辆位置距离留下的瘾车辆半径指定为一个标量,米。车辆使用半径和安全距离计算无障碍的方向。
最小转弯半径(米)
最小转弯半径以当前车辆的速度,指定为一个标量米。
模拟使用
代码生成
解释执行
代码生成使用生成的C代码,模拟模型。第一次运行模拟,仿真软件万博1manbetx®生成C代码块。为后续模拟C代码重用,只要不改变模型。这个选项需要额外的启动时间,但后续模拟的速度相当解释执行。
解释执行——使用MATLAB模拟模型®翻译。这个选项可以缩短启动时间,但较慢的仿真速度比代码生成。在这种模式下,你可以调试的源代码。
可调:没有
目标方向的重量
5
成本函数体重朝着目标方向,指定为一个标量。遵循一个目标方向,设置这个重量比的总和电流方向的体重和以前的方向重量。忽略成本目标方向,设置这个重量0。
0
电流方向的体重
2
成本函数体重移动车辆在当前的运动方向,指定为一个标量。更高的值这重量产生有效的路径。忽视当前方向成本,设置这个重量0。
以前的方向重量
成本函数体重朝着前面选择的指导方向,指定为一个标量。这重量产生平滑路径的值更高。忽略前一个方向成本,设置这个重量0。
使用时避万博1manbetx免障碍模型后一个差动驱动机器人的路径。这个示例使用ROS从MATLAB®来发送和接收信息的模拟器。你可以取代模拟器与其他ROS-based模拟器等露台®。
块使用VFH +算法计算无障碍的方向。首先,算法需要的范围和角度范围传感器数据和构建一个极地直方图对障碍物的位置。然后,它使用输入直方图阈值来计算一个二元直方图表示占领和自由的方向。最后,算法计算一个蒙面的直方图,从二元直方图计算基于车辆的最小转弯半径。
算法选择多个转向方向基于开放空间和可能的行驶方向。成本函数,权值对应于前,电流,和目标方向,计算不同的成本可能的方向。算法,然后返回一个无障碍方向以最小的成本。使用无障碍的方向,您可以输入命令来移动你的车在那个方向。
使用您自己的应用程序和环境这一块,您必须调整算法参数。参数值取决于车辆的类型,范围传感器和硬件使用。VFH算法的更多信息,请参阅controllerVFH。
controllerVFH
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室