主要内容

uavDubinsConnection

无人机Dubins路径连接

描述

uavDubinsConnection对象保存用于计算的信息uavDubinsPathSegment连接无人机起始和目标姿态的路径段。

无人机杜宾路径段连接两个姿态作为东北向下坐标系中的一系列运动。

运动选项是:

  • 左转(逆时针)

  • 右转(顺时针)

  • 螺旋左转(逆时针)

  • 螺旋右转(顺时针)

  • 没有运动

转弯方向定义为从无人机顶部观察。螺旋运动用于上升或下降。

使用此连接对象定义无人机运动模型的参数,包括最小转弯半径和路径类型选项。若要使用此连接类型在姿态之间生成路径段,请调用连接函数。

创建

描述

例子

connectionObj= uavDubinsConnection使用默认属性值创建对象。

例子

connectionObj= uavDubinsConnection (名称,值使用名称-值对指定属性值。若要设置多个属性,请指定多个名称-值对。

属性

全部展开

无人机的空速,指定为正数值标量,单位为m/s。

数据类型:

使无人机向左或向右转弯的最大滚动角度,以弧度为正数值标量指定。

请注意

的最小值和最大值MaxRollAngle都大于0小于π/ 2,分别。

数据类型:

飞行路径角度限制,指定为两个元素的数值矢量最小值马克斯在弧度。

最小值是无人机降低高度的最小飞行路径角度,和马克斯是获得高度的最大飞行路径角度。

请注意

的最小值和最大值FlightPathAngleLimit都大于-π/ 2小于π/ 2,分别。

数据类型:

UAV dubin路径类型要禁用,指定为单元格数组的四元素字符向量或向量的字符串标量。单元格数组定义了四个禁止的运动序列。

运动类型 描述
“S”

“L”

左转(逆时针)

“R”

右转(顺时针)

“Hl”

螺旋左转(逆时针)

“人力资源”

螺旋右转(顺时针)

“N”

没有运动

请注意

无运动段“N”当只需要三个路径段时,用作结尾的填充符。

要查看所有可用的路径类型,请参见AllPathTypes财产。

例子:{' RLRN '}

数据类型:字符串|细胞

此属性是只读的。

无人机的最小转弯半径,以米为单位指定为正数值标量。该值对应于无人机最大滚转角度和恒定空速时的圆半径。

数据类型:

此属性是只读的。

所有可能的路径类型,作为字符向量的单元格数组返回。此属性列出所有类型。控件中的此列表中指定类型,以禁用某些类型DisabledPathTypes财产。

对于UAV Dubins连接,可用的路径类型是:{' LSLN}{‘LSRN}{‘RSLN}{‘RSRN}{‘RLRN}{‘LRLN}{‘HlLSL}{‘HlLSR}{‘HrRSL}{‘HrRSR}{‘HrRLR}{‘HlLRL}{‘LSLHl}{‘LSRHr}{‘RSLHl}{‘RSRHr}{‘RLRHr}{‘LRLHl}{‘LRSL}{‘LRSR}{‘LRLR}{‘RLSR}{‘RLRL}{‘RLSL}{‘LSRL}{‘RSRL}{‘LSLR} {' RSLR '}

数据类型:细胞

对象的功能

连接 连接姿态与无人机Dubins连接路径

例子

全部折叠

这个例子展示了如何计算一个无人机杜宾路径段和连接姿态使用uavDubinsConnection对象。

创建一个uavDubinsConnection对象。

connectionObj = uavDubinsConnection;

定义开始姿势和目标姿势为[xyzheadingAngle)向量。

startPose = [0 0 0 0];%[米,米,米,弧度]goalPose = [0 0 20 pi];

计算一个有效的路径段并连接姿态。返回路径代价最低的路径段对象。

[pathSegObj,pathCosts] = connect(connectionObj,startPose,goalPose);

显示生成的路径。

表演(pathSegObj {1})

图中包含一个轴对象。axis对象包含24个patch、line类型的对象。这些对象表示路径,过渡位置,开始位置,目标位置。

显示生成路径的运动类型和路径开销。

流('运动类型:%s\nPath开销:%f\n'strjoin (pathSegObj {1} .MotionTypes), pathCosts);
运动类型:R L R N路径成本:138.373157

此示例显示如何修改现有的uavDubinsPathSegment对象。

使用无人机Dubins连接路径连接姿势

创建一个uavDubinsConnection对象。

connectionObj = uavDubinsConnection;

定义开始姿势和目标姿势为[xyzheadingAngle)向量。

startPose = [0 0 0 0];%[米,米,米,弧度]goalPose = [0 0 20 pi];

计算一个有效的路径段并连接姿态。返回路径代价最低的路径段对象。

[pathSegObj,pathCosts] = connect(connectionObj,startPose,goalPose);

显示生成的路径。

表演(pathSegObj {1})

图中包含一个轴对象。axis对象包含24个patch、line类型的对象。这些对象表示路径,过渡位置,开始位置,目标位置。

验证返回路径段的运动类型和路径代价。

流('运动类型:%s\nPath开销:%f\n'strjoin (pathSegObj {1} .MotionTypes), pathCosts);
运动类型:R L R N路径成本:138.373157

修改连接类型和属性

在一个新的连接对象中禁用这个特定的运动序列。指定空速MaxRollAngle,FlightPathAngleLimit连接对象的属性。

connectionObj = uavDubinsConnection(“DisabledPathTypes”,{“RLRN”});connectionObj。空速= 15; connectionObj.MaxRollAngle = 0.8; connectionObj.FlightPathAngleLimit = [-1.47 1.47];

再次连接姿势以获得不同的路径。返回下一个最低路径代价的路径段对象。

[pathSegObj,pathCosts] = connect(connectionObj,startPose,goalPose);

显示修改后的路径。

表演(pathSegObj {1})

图中包含一个轴对象。axis对象包含24个patch、line类型的对象。这些对象表示路径,过渡位置,开始位置,目标位置。

验证修改路径段的运动类型和路径代价。

流('运动类型:%s\nPath开销:%f\n'strjoin (pathSegObj {1} .MotionTypes), pathCosts);
运动类型:L R L N路径开销:164.674067

参考文献

[1]欧文、马克、兰德尔·w·比尔德和蒂莫西·w·麦克莱恩。“在固定翼无人机上实现杜宾斯飞机航迹。”无人驾驶飞行器手册, 2015,第1677-1701页。

扩展功能

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

版本历史

R2019b引入

另请参阅

Baidu
map