主要内容

controllerPurePursuit

创建控制器以遵循一组路径点

描述

controllerPurePursuit系统对象™创建一个控制器对象,用于使差动驱动车辆遵循一组路径点。物体计算给定当前姿态的飞行器的线速度和角速度。对具有更新姿态的对象的连续调用为车辆提供更新的速度命令。使用MaxAngularVelocityDesiredLinearVelocity属性来更新基于车辆性能的速度。

LookaheadDistance属性计算路径上的前瞻点,这是车辆的局部目标。角速度命令是基于这一点计算的。改变LookaheadDistance对算法的性能有很大的影响。较高的前瞻距离会使车辆的轨迹更平稳,但也会导致车辆在道路上抄近路。低的前视距离会导致跟踪路径时的振荡,造成不稳定的行为。有关纯追求算法的更多信息,请参见纯追求控制器

请注意

从R2016b开始,不再使用一步方法执行System对象定义的操作时,可以使用参数调用对象,就像调用函数一样。例如,y =步骤(obj, x)y = obj (x)执行相同操作。

计算线速度和角速度控制命令:

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

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

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

例子

控制器= controllerPurePursuit创建一个纯追踪对象,该对象使用纯追踪算法计算差动驱动车辆的线速度和角速度输入。

控制器= controllerPurePursuit(名称,值)创建带有由一个或多个指定的附加选项的纯追踪对象名称,值对。Name是属性名,Value是对应的值。名称必须出现在单引号内(' ').可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家.未指定的属性保留其默认值。

例子:controller = controllerPurePursuit('DesiredLinearVelocity', 0.5)

属性

全部展开

期望的恒定线速度,指定为米每秒的标量。控制器假设车辆以恒定的线速度行驶,计算出的角速度与线速度无关。

数据类型:

前瞻距离,指定为单位为米的标量。前瞻距离改变控制器的响应。前瞻距离较高的车辆道路平坦,但转弯较大。一辆前瞻距离较小的车会紧跟在道路上,然后急转弯,但可能会在道路上造成震荡。

数据类型:

最大角速度,指定以弧度/秒为单位的标量。控制器使给定值处的绝对角速度输出饱和。

数据类型:

路径点,指定为n2组(x, y)对,n是路径点的数量。你可以生成路径点mobileRobotPRM类或从其他来源。

数据类型:

使用

描述

例子

韦尔angvel] =控制器(构成处理车辆的位置和方向,构成,输出线速度,韦尔,角速度,angvel

韦尔angvellookaheadpoint] =控制器(构成返回前瞻点,它是用于计算速度命令的路径上的一个位置。方法计算路径上的此位置LookaheadDistance财产的控制器对象。

输入参数

全部展开

车辆的位置和方向,指定为形式中的3乘1向量(x yθ).车辆的姿态是xy角度方向θ(以弧度为单位)的位置x设在。

输出参数

全部展开

线速度,指定为米每秒的标量。

数据类型:

角速度,以弧度/秒为单位的标量。

数据类型:

前瞻点上的路,回望成(x, y)向量。该值是根据LookaheadDistance财产。

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

使用信息方法获取更多关于a的信息controllerPurePursuit对象。的信息函数返回两个字段,RobotPoseLookaheadPoint,对应于机器人当前的位置和方向以及用于计算对象最后一次调用输出的路径上的点。

创建一个controllerPurePursuit对象。

页= controllerPurePursuit;

分配锚点。

pp.Waypoints = [0 0;1 1];

使用初始姿态的对象(x yθ)作为输入。

[v,w] = pp([0 0 0]);

获得额外的信息。

s = info (pp)
s =结构体字段:RobotPose: [0 0 0] lookheadpoint: [0.7071 0.7071]

扩展功能

介绍了R2019b