主要内容

uavDubinsConnection

Dubins path connection for UAV

描述

TheuavDubinsConnectionobject holds information for computing auavDubinsPathSegment路径段连接无人机的开始和目标姿势。

UAV Dubins路径段将两个姿势连接为东北坐标系中的一系列运动。

The motion options are:

  • 直的

  • Left turn (counterclockwise)

  • 右转(顺时针)

  • Helix left turn (counterclockwise)

  • Helix right turn (clockwise)

  • No motion

The turn direction is defined as viewed from the top of the UAV. Helical motions are used to ascend or descend.

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

Creation

描述

example

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

example

connectionObj= uavDubinsConnection(Name,Value)specifies property values using name-value pairs. To set multiple properties, specify multiple name-value pairs.

Properties

expand all

速度啊f the UAV, specified as a positive numeric scalar in m/s.

Data Types:double

最大滚动角to make the UAV turn left or right, specified as a positive numeric scalar in radians.

Note

的最小值和最大值MaxRollAngleare greater than0and less thanpi/2, respectively.

Data Types:double

Flight path angle limits, specified as a two-element numeric vector[min最大限度]in radians.

minis the minimum flight path angle the UAV takes to lose altitude, and最大限度is the maximum flight path angle to gain altitude.

Note

的最小值和最大值飞行路线线are greater than-pi/2and less thanpi/2, respectively.

Data Types:double

无人机Dubins路径类型禁用,指定为四元素字符向量或字符串标量向量的单元格数组。细胞阵列定义了四个禁止的运动序列。

Motion Type 描述
“ S”

直的

"L"

Left turn (counterclockwise)

“ R”

右转(顺时针)

"Hl"

Helix left turn (counterclockwise)

"Hr"

Helix right turn (clockwise)

"N"

No motion

Note

The no motion segment"N"is used as a filler at the end when only three path segments are needed.

To see all available path types, see theAllPathTypesproperty.

例子:{'rlrn'}

Data Types:string|细胞

此属性仅阅读。

Minimum turning radius of the UAV, specified as a positive numeric scalar in meters. This value corresponds to the radius of the circle at the maximum roll angle and a constant airspeed of the UAV.

Data Types:double

此属性仅阅读。

所有可能的路径类型, returned as a cell array of character vectors. This property lists all types. To disable certain types, specify types from this list in theDisabledPathTypesproperty.

对于无人机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'}.

Data Types:细胞

Object Functions

connect Connect poses with UAV Dubins connection path

例子

collapse all

This example shows how to calculate a UAV Dubins path segment and connect poses using theuavDubinsConnection目的。

创建一个uavDubinsConnection目的。

connectionObj = uavDubinsConnection;

将开始和目标构成[x,y,z,朝向] vectors.

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

计算有效的路径段并连接姿势。返回最低路径成本的路径段对象。

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

显示生成的路径。

show(pathsegobj {1})

图包含一个轴。轴包含24个类型补丁的对象。这些对象代表路径,过渡位置,开始位置,目标位置。

Display the motion type and the path cost of the generated path.

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

此示例显示了如何修改现有的uavDubinsPathSegment目的。

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

创建一个uavDubinsConnection目的。

connectionObj = uavDubinsConnection;

将开始和目标构成[x,y,z,朝向] vectors.

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

计算有效的路径段并连接姿势。返回最低路径成本的路径段对象。

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

显示生成的路径。

show(pathsegobj {1})

图包含一个轴。轴包含24个类型补丁的对象。这些对象代表路径,过渡位置,开始位置,目标位置。

Verify the motion type and the path cost of the returned path segment.

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

修改连接类型和属性

Disable this specific motion sequence in a new connection object. Specify theAirSpeed,MaxRollAngle, 和飞行路线线连接对象的属性。

connection obj = uavdubinsConnection('DisabledPathTypes',{'RLRN'}); connectionObj.AirSpeed = 15; connectionObj.MaxRollAngle = 0.8; connectionObj.FlightPathAngleLimit = [-1.47 1.47];

再次连接姿势以获取不同的路径。返回一个最低路径成本的路径段对象。

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

Show the modified path.

show(pathsegobj {1})

图包含一个轴。轴包含24个类型补丁的对象。这些对象代表路径,过渡位置,开始位置,目标位置。

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

fprintf('运动类型:%s \ n Path成本:%f \ n',strjoin(pathSegObj{1}.MotionTypes),pathCosts);
Motion Type: L R L N Path Cost: 164.674067

参考

[1] Owen, Mark, Randal W. Beard, and Timothy W. McLain. "Implementing Dubins Airplane Paths on Fixed-Wing UAVs."Handbook of Unmanned Aerial Vehicles,2015年,第1677–1701页。

Extended Capabilities

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

Introduced in R2019b