主要内容

uavDubinsConnection

杜宾无人机路径连接

描述

uavDubinsConnection为计算对象持有信息uavDubinsPathSegment路径段连接启动和目标提出了无人机。

无人机杜宾路径段连接两对序列north-east-down坐标系的运动。

运动选项:

  • 左转(逆时针方向)

  • 右转(顺时针方向)

  • 螺旋左转(逆时针方向)

  • 螺旋右转(顺时针方向)

  • 没有运动

转方向被定义为从顶部的无人机。螺旋运动用于提升或下降。

使用这个连接对象定义为无人机运动模型参数,包括最小转弯半径和选择路径类型。生成路径段之间提出了使用这种连接类型,调用连接函数。

创建

描述

例子

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

例子

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

属性

全部展开

无人机的空速,指定为一个积极的数字标量m / s。

数据类型:

最大横摇角无人机向左转或向右,指定为一个积极的数字标量的弧度。

请注意

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

数据类型:

飞行路线角限制,指定为一个双元素数值向量(最小值马克斯]在弧度。

最小值是最低飞行路线角需要无人机失去高度,然后呢马克斯最大飞行路线角获得高度。

请注意

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

数据类型:

无人机杜宾禁用路径类型,指定为一个单元阵列的研制出特征向量或字符串标量矢量。单元阵列定义了四个禁止的动作序列。

运动类型 描述
“S”

“L”

左转(逆时针方向)

“R”

右转(顺时针方向)

“Hl”

螺旋左转(逆时针方向)

“人力资源”

螺旋右转(顺时针方向)

“N”

没有运动

请注意

没有运动部分“N”最后作为填料时只有三个路径段是必要的。

看到所有可用的路径类型,看到AllPathTypes财产。

例子:{' RLRN '}

数据类型:字符串|细胞

这个属性是只读的。

无人机的最小转弯半径,指定为一个积极的数字标量米。这个值对应于最大横摇角的圆的半径和无人机的速度恒定。

数据类型:

这个属性是只读的。

所有可能的路径类型,返回单元阵列的特征向量。这个属性列出所有类型。禁用某些类型,指定类型的这个列表DisabledPathTypes财产。

对于无人机杜宾连接,可用的路径类型是:{' 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 '}

数据类型:细胞

对象的功能

连接 连接与无人机杜宾连接路径

例子

全部折叠

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

创建一个uavDubinsConnection对象。

connectionObj = uavDubinsConnection;

启动和目标提出了定义为(x,y,z,headingAngle)向量。

startPose = [0 0 0 0];%(米,米,米,弧度)goalPose =[0 0 20π];

计算出一个有效的路径段和连接构成。返回一个路径段对象成本最低的路径。

[pathSegObj, pathCosts] =连接(connectionObj、startPose goalPose);

显示生成的路径。

表演(pathSegObj {1})

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

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

这个例子展示了如何修改现有的uavDubinsPathSegment对象。

连接构成使用无人机杜宾连接路径

创建一个uavDubinsConnection对象。

connectionObj = uavDubinsConnection;

启动和目标提出了定义为(x,y,z,headingAngle)向量。

startPose = [0 0 0 0];%(米,米,米,弧度)goalPose =[0 0 20π];

计算出一个有效的路径段和连接构成。返回一个路径段对象成本最低的路径。

[pathSegObj, pathCosts] =连接(connectionObj、startPose goalPose);

显示生成的路径。

表演(pathSegObj {1})

验证运动类型和路径返回的路径段的成本。

流(的运动类型:% s \ nPath成本:% f \ n 'strjoin (pathSegObj {1} .MotionTypes), pathCosts);
运动类型: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] =连接(connectionObj、startPose goalPose);

显示修改后的路径。

表演(pathSegObj {1})

验证运动类型和路径的成本修改路径段。

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

引用

[1]欧文,马克,兰德尔·w·比尔德和蒂莫西·w·McLain。“实现杜宾飞机固定翼无人机路径。”无人机的手册,2015年,页1677 - 1701。

扩展功能

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

另请参阅

介绍了R2019b