主要内容

uavOrbitFollower

使用无人机对目标进行轨道定位

自从R2019a

描述

uavOrbitFollowerobject是一个三维路径跟踪器,用于无人机(uav)跟踪基于超前距离的圆形路径。给定圆的中心、半径和姿态,轨道跟踪器计算所需的偏航和航向,以跟踪路径上的前瞻点。该对象还计算从无人机姿态到路径的交叉轨道误差,并跟踪已完成圆形轨道的次数。

调优lookaheadDistance输入以帮助改进路径跟踪。减小距离可以改善跟踪,但可能导致路径上的振荡。

用无人机绕某一地点飞行:

  1. 创建uavOrbitFollower对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

例子

轨道= uavOrbitFollower返回具有默认属性值的轨道跟踪对象。

轨道= uavOrbitFollower(名称,值)创建带有一个或多个指定的附加选项的轨道跟踪器名称,值对参数。

的名字属性名和价值对应的值。的名字必须出现在单引号内().您可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

无人机类型,指定为任意一种“翼”“multirotor”

轨道的中心,表示为[x y z]向量。[x y z]为轨道中心位置,以ned坐标(东北向下)为单位,单位为米。

例子:(5, -10)

数据类型:|

轨道半径,以米为单位的正标量。

例子:5

数据类型:|

轨道方向,用标量表示。正数值表示从上面看是顺时针转动。负值表示逆时针旋转。值为0根据输入自动确定值构成

例子:-1

数据类型:|

最小轨道半径,指定为以米为单位的正数值标量。

数据类型:|

最小前视距离,指定为以米为单位的正数值标量。

数据类型:|

使用

描述

lookaheadPointdesiredCoursedesiredYaworbitRadiusFlaglookaheadDistFlagcrossTrackErrornumTurns=轨道(currentPoselookaheadDistance跟随路径点跟踪器对象中指定的路径点集。该对象获取当前位置和超前距离来计算路径上的超前点。所期望的航向、偏航和交叉航迹误差也基于与当前位置比较的这个前视点。状态返回零,直到无人机已经导航了所有的路点。

输入参数

全部展开

当前无人机姿态,指定为a[x y z航向]向量。该姿态用于根据输入计算前视点LookaheadDistance[x y z]当前位置,单位为米。课程是以弧度为单位的当前航向。无人机的航向是以弧度为单位测量的速度矢量相对于北方的方向角。

数据类型:|

沿路径的前视距离,指定为以米为单位的正数值标量。

数据类型:|

输出参数

全部展开

路径上的前瞻点,返回为[x y z]位置向量,单位为米。

数据类型:

的范围内以弧度为单位的数值标量返回的所需航线(π-π,).无人机的航向是以弧度为单位测量的速度矢量相对于北方的方向角。对于固定翼型无人机,期望航向和期望偏航值相等。

数据类型:

的范围内,以弧度为单位的数值标量返回的期望偏航(π-π,).无人机偏航是无人机的前进方向,而不管速度矢量相对于北方测量弧度。对于固定翼型无人机,期望航向和期望偏航值相等。

数据类型:

轨道半径标志,返回为010表示轨道半径不饱和,1指示轨道半径饱和到指定的最小轨道半径值。

数据类型:uint8

前方距离标志,返回为010表示前视距离未饱和,1指示正向距离饱和到指定的最小正向距离值。

数据类型:uint8

从无人机位置到路径的交叉跟踪误差,返回为以米为单位的正数值标量。误差测量从无人机位置到路径上最近点的垂直距离。

数据类型:

无人机已完成轨道的次数,指定为数值标量。当无人机绕中心点飞行时,该值会根据指定值增加或减少转方向财产。十进制值表示圆的部分完成。如果无人机交叉航迹误差超过前瞻距离,则匝数不更新。

NumTurns重置。中心半径,或TurnDirection属性被改变。

对象的功能

要使用对象函数,请指定System对象™作为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

方法的使用uavOrbitFollower生成航向和偏航命令,以便无人机围绕感兴趣的位置运行。

注意:这个例子需要你安装无人机库机器人系统工具箱®。调用roboticsAddons打开插件资源管理器并安装库。

创建轨道跟踪器。设置感兴趣位置的中心和轨道半径。设置一个TurnDirection1表示绕位置逆时针旋转。

orbFollower = uavOrbitFollower;orbFollower。OrbitCenter= [1 1 5]'; orbFollower.OrbitRadius = 2.5; orbFollower.TurnDirection = 1;

指定无人机的姿态和跟踪路径的前视距离。

姿态= [0;0;5;0];lookaheadDistance = 2;

调用orbFollower带有姿态和前视距离的对象。该对象返回路径上的前瞻点、期望的航向和偏航。您可以使用所需的航向和偏航为无人机生成控制命令。

[lookaheadPoint,desiredCourse,desiredYaw,~,~] = orbFollower(pose,lookaheadDistance);

扩展功能

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

版本历史

在R2019a中引入

Baidu
map