主要内容

stateSpaceSE2

SE(2)状态空间

描述

stateSpaceSE2对象将参数和状态存储在SE(2)状态空间中,SE(2)状态空间由[表示的状态向量组成xyθ].x而且y是笛卡尔坐标,和θ是方向角。该对象使用欧氏距离计算距离,使用线性插值计算状态的平移和旋转。

创建

描述

例子

空间= stateSpaceSE2创建一个SE(2)状态空间对象,其默认状态边界为xy,θ

空间= stateSpaceSE2 (界限指定了界限xy,θ.超出边界的状态值被截断为边界。输入,界限的值StateBounds财产。

属性

全部展开

状态空间的名称,指定为字符串。

此属性是只读的。

状态空间的维度,指定为正整数。

状态变量的边界,指定为3乘2的实值矩阵。

  • 的上界和下界x状态以米为单位。

  • 的下限和上界y状态以米为单位。

  • 的下限和上界θ状态以弧度为单位。

数据类型:

应用于x和y距离计算的权重,指定为非负实标量。

在对象中,计算距离为:

d w x y d x 2 + d y 2 + w θ d θ 2

wxy是否将权重施加到x而且y坐标,wθ重量是否施加于θ坐标。dxdy,dθ距离在xy,θ方向,分别。

数据类型:

施加于的重量θ距离计算,指定为非负实标量。

在对象中,计算距离为:

d w x y d x 2 + d y 2 + w θ d θ 2

wxy是否将权重施加到x而且y坐标,wθ重量是否施加于θ坐标。dxdy,dθ距离在xy,θ方向,分别。

数据类型:

对象的功能

复制 创建状态空间对象的深度副本
距离 两态之间的距离
enforceStateBounds 简化状态到状态边界
插入 在状态之间插值
sampleGaussian 样本状态采用高斯分布
sampleUniform 样品状态采用均匀分布

例子

全部折叠

创建SE(2)状态空间。

ss = stateSpaceSE2;

创建一个occupancyMap基于的状态验证器,使用所创建的状态空间。

sv = validatoroccuancymap (ss);

从示例地图创建一个占用地图,并将地图分辨率设置为10 cell /米。

负载exampleMapsmap = occuancymap (simpleMap,10);sv。地图=地图;

为验证器设置验证距离。

sv。ValidationDistance = 0.01;

更新状态空间边界使其与映射限制相同。

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits;[-ππ]];

创建路径规划器并增加最大连接距离。

planner = plannerrt (ss,sv);计划。MaxConnectionDistance = 0.3;

设置开始和目标状态。

Start = [0.5,0.5,0];目标= [2.5,0.2,0];

使用默认设置规划路径。

rng (100“旋风”);%表示可重复的结果[pthObj,solnInfo] = plan .plan(开始,目标);

想象结果。

map.show;持有;情节(solnInfo.TreeData (: 1) solnInfo.TreeData (:, 2),“。”);树扩展百分比情节(pthObj.States (: 1) pthObj.States (:, 2),的r -“线宽”, 2)%绘制路径

图中包含一个axes对象。标题为占用网格的轴对象包含3个类型为图像、直线的对象。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2019b中引入

Baidu
map