AnyMath 文档

Vector Field Histogram

使用矢量场直方图避开障碍物。

模块类型: VectorFieldHistogram

库中的路径:

/Navigation/Control algorithms/Vector Field Histogram

资料描述

Vector Field Histogram (Vector Field Histogram,VFH)允许车辆根据距离传感器数据避开障碍物。 在接收范围和角度形式的传感器读数以及目标运动方向后,VFH控制器计算转向方向,无障碍物。

有关算法的详细信息,请参阅矢量场的直方图

限制

使用此块为模型生成代码时,输入端口*范围*和*角度*中的元素数受以下限制 4000.

港口

输入

# 范围 — 扫描数据的范围值
向量资料

Details

来自扫描数据的范围值,设置为以米为单位的标量值的向量。 这些范围值表示在指定角度与传感器的距离。 矢量的长度必须与相应矢量*角度*的长度相匹配。

数据类型

漂浮物32, 漂浮64

复数支持

非也。

# 角度 — 扫描数据中的角度值
向量资料

Details

来自扫描数据的角度值,设置为以弧度为单位的标量值的向量。 这些角度值表示指定范围的特定角度。 向量的长度必须与相应向量*Ranges*的长度匹配。

数据类型

漂浮物32, 漂浮64

复数支持

非也。

# N.目标,目标 — 车辆的运动方向
标量,标量

Details

车辆的目标方向,以弧度为单位设置为标量。 车辆的前进方向被认为是零弧度,并且正角度被逆时针测量。 您可以使用*目标方向*块的输出端口 *Pure Pursuit*基于一组航点创建控件时。

数据类型

漂浮物32, 漂浮64

复数支持

非也。

输出

# 斯特尔迪尔 — 车辆的转弯方向
标量,标量

Details

车辆的旋转方向,以弧度为标量返回。 该无障碍方向基于VFH+算法计算。 车辆的前进方向被认为是零弧度,并且正角度被逆时针测量。

数据类型

漂浮物32, 漂浮64

复数支持

非也。

参数

Histogram parameters

# Number of angular sectors — 用于创建直方图的间隔数
Real number

Details

用于创建直方图的间隔数,设置为标量。 只有在初始化对象时,才能设置此参数的值。

默认值

180

程序使用名称

NumAngularSectors

可调谐

可计算

# Range distance limits (m) — 量程传感器读数的限制
Array of real numbers

Details

量程传感器读数的限值以米为单位,设置为标量的双元向量。 只有当输入范围读数在范围限制范围内时,才会考虑它们。 使用范围下限可以忽略由于短距离传感器性能不佳而导致的误报。 使用上限忽略距离车辆太远的障碍物。

默认值

[0.05, 2]

程序使用名称

DistanceLimits

可调谐

可计算

# Histogram thresholds — 用于计算二进制直方图的阈值
Array of real numbers

Details

用于计算二进制直方图的阈值,设置为标量的双元向量。 该算法使用这些值来计算基于极地障碍物密度的二进制直方图。 上阈值以上的极地障碍物密度的值在二进制直方图中表示为占用空间(1)。 小于下阈值的值表示为可用空间(0)。 如果存在先前迭代中的值,则落在限制范围内的值将被设置为等于先前计算的二进制直方图的值。 如果先前的直方图不存在,则将该值设置为可用空间(0)。

默认值

[3, 10]

程序使用名称

HistogramThresholds

可调谐

可计算

Vehicle parameters

# Vehicle radius (m) — 车辆半径
Real number

Details

车辆的半径,以米为单位设置为标量。 此参数定义可以包含车辆的最小圆。 车辆半径用于在计算无障碍方向时考虑车辆的大小。

默认值

0.1

程序使用名称

RobotRadius

可调谐

可计算

# Safety distance (m) — 车辆周围的安全距离
Real number

Details

车辆位置周围剩余的安全距离,除了参数 Vehicle radius (m) ,定义为以米为单位的标量。 车辆半径和安全距离用于计算无障碍方向。

默认值

0.1

程序使用名称

SafetyDistance

可调谐

可计算

# Minimum turning radius (m) — 当前速度下的最小转弯半径
Real number

Details

以当前速度运动的车辆的最小转弯半径,以米为单位设置为标量。

默认值

0.1

程序使用名称

MinTurningRadius

可调谐

可计算

主要的

# Target direction weight — 目标方向的代价函数的权重
Real number

Details

目标方向移动的代价函数的权重,设为标量。 要遵循目标方向,请将此参数设置为大于参数值之和的值。 Current direction weightPrevious direction weight . 若要忽略目标目标的开销,请将此参数设置为 0.

默认值

5

程序使用名称

TargetDirectionWeight

可调谐

可计算

# Current direction weight — 当前方向的成本函数的权重
Real number

Details

用于在当前方向上移动车辆的成本函数的权重,设置为标量。 此参数的较高值提供更有效的轨迹。 若要忽略当前路由的开销,请将此参数设置为 0.

默认值

2

程序使用名称

CurrentDirectionWeight

可调谐

可计算

# Previous direction weight — 前一个方向的代价函数的权重
Real number

Details

先前选择的方向上的移动的成本函数的权重,设置为标量。 此参数值越高,轨迹越平滑。 若要忽略先前路由的开销,请将此参数设置为 0.

默认值

2

程序使用名称

PreviousDirectionWeight

可调谐

可计算

算法

矢量场的直方图

Details

块采用VFH+算法计算无障碍方向。 首先,该算法从范围传感器接收范围和角度数据,并为障碍物的位置构建极坐标直方图。 然后,它使用输入直方图的阈值来计算指示占用和空置方向的二进制直方图。 最后,该算法计算掩蔽直方图,该直方图基于车辆的最小转弯半径从二进制直方图确定。

该算法基于开放空间和可能的方向选择几个移动方向。 成本函数具有与先前、当前和目标方向相对应的权重,计算各种可能方向的成本。 然后,该算法以最小的成本返回无障碍方向。 使用无障碍方向,您可以输入命令以在该方向上移动车辆。

要在自定义模型中使用此块,您需要配置算法参数。 参数值取决于车辆类型、距离传感器和使用的设备。