轨迹

在驾驶场景中创建行动者或车辆轨迹

描述

例子

轨迹(交流路点为演员或车辆创造一个轨迹,交流,从一组路径点。

例子

轨迹(交流路点速度也指定行动者或车辆沿轨道前进或后退的速度。

例子

轨迹(交流路点速度waittime除前面语法中的输入参数外,还指定参与者或车辆的等待时间。使用此语法通过在特定的路径点暂停一个参与者或车辆参与者来生成走走停停的驾驶场景。

例子

轨迹(___“偏航”,偏航除了前面语法中的任何输入参数组合外,还指定行动者或车辆在每个航路点的偏航方向角。

例子

全部折叠

模拟一辆车沿s曲线行驶的驾驶场景。创建和绘制车道边界。

创建一个有s形曲线的道路的驾驶场景。

场景= drivingScenario (“StopTime”3);道路中心= [-35 20 0;-20 -20 0;0 0 0;20个20 0;35 -20 0];

创建车道并将其添加到道路上。

lm = [laneMarking (“固体”“颜色”' w ');...laneMarking (“冲”“颜色”“y”);...laneMarking (“冲”“颜色”“y”);...laneMarking (“固体”“颜色”' w '));ls = lanespec (3“标记”、lm);路(场景、roadcenters“道”、ls);

添加一个自我飞行器,并从它的路径点指定它的轨迹。默认情况下,汽车以每秒30米的速度行驶。

车=车辆(场景中,...“ClassID”, 1...“位置”, 20 0 [-35]);路径点= [-35 20 0;-20 -20 0;0 0 0;20个20 0;35 -20 0];轨迹(车,路点);

绘制场景和相应的追逐情节。

情节(场景)

chasePlot(汽车)

运行模拟循环。

  1. 初始化鸟瞰图并创建轮廓绘图仪、左车道和右车道边界绘图仪以及道路边界绘图仪。

  2. 获得道路边界和矩形轮廓。

  3. 获取车辆左右两侧的车道边界。

  4. 改进模拟并更新绘图仪。

cep = birdsEyePlot (“XLim”, 40 [-40],“YLim”[-30] 30日);olPlotter = outlinePlotter (cep);lblPlotter = laneBoundaryPlotter (cep),“颜色”“r”“线型”“- - -”);lbrPlotter = laneBoundaryPlotter (cep),“颜色”‘g’“线型”“- - -”);rbsEdgePlotter = laneBoundaryPlotter (cep);传奇(“关闭”);advance(scenario) rbs = roadBoundaries(car);(位置、偏航、长度、宽度、originOffset color] = targetOutlines(车);磅= laneBoundaries(车,“XDistance”0:5:30,“LocationType”“中心”...“AllBoundaries”、假);plotLaneBoundary(lblPlotter,{lb(1).Coordinates}) plotLaneBoundary(lbrPlotter,{lb(2).Coordinates})...“OriginOffset”originOffset,“颜色”、颜色)结束

创建一个驾驶场景,并添加一个弯曲的双车道道路。

场景= drivingScenario (“SampleTime”, 0.05);道路中心= [5 0;30 10;35 25);lspec = lanespec (2);路(场景、roadcenters“道”, lspec);

将车辆添加到场景中。设定一个轨迹,使车辆以不同的速度绕着弯道行驶。

v =车辆(场景中,“ClassID”1);路径点= [6 2;18 4;25日7;28日10;31日15;33 22];速度= [30 10 5 5 10 30];轨迹(v,锚点、速度)

绘制场景并运行模拟。观察车辆在转弯时是如何减速的。

情节(场景中,“锚点”“上”“RoadCenters”“上”推进(场景)暂停(0.1)结束

创建一个由两条直角相交的双车道道路组成的驾驶场景。

场景= drivingScenario (“StopTime”, 2.75);道路中心= [50 10 0;2 0.9 0];laneSpecification = lanespec (2“宽度”4);路(场景、roadCenters“道”, laneSpecification);道路中心= [27 24 0;27 -21 0];路(场景、roadCenters“道”, laneSpecification);

在场景中添加一个自我载体。指定路径点和车辆在每个路径点的速度值。设置车辆在第二个路点的等待时间。生成自我飞行器以指定速度通过指定路径点的轨迹。

egoVehicle =车辆(场景中,“ClassID”, 1“位置”(5 1 0));路径点= [5 -1 0;16 1 0;40 1 0];速度= [30;0;30);waittime = [0;0.3;0); trajectory(egoVehicle,waypoints,speed,waittime);

在场景中添加一辆汽车。指定路径点和在每个路径点的车速值。在第二个路点设置汽车的等待时间。生成汽车以指定速度通过指定路径点的轨迹。

车=车辆(场景中,“ClassID”, 1“位置”(48 4 0),“PlotColor”(0.494 0.184 0.556),“名字”“汽车”);路径点= [47 3 0;38 3 0;10 3 0];速度= [30;0;30);waittime = [0;0.3;0); trajectory(car,waypoints,speed,waittime);

在场景中增加一辆救护车。生成一个轨迹,使救护车以恒定速度通过指定的路径点。

救护车=车辆(场景中,“ClassID”6“位置”22 0], [25,“PlotColor”(0.466 0.674 0.188),“名字”“救护车”);路径点= [25 22 0;25日13 0;25日6 0;26日2 0;33 1 0;45 1 0];速度= 25;轨迹(救护车、锚点、速度);

创建一个自定义图形窗口来绘制场景。

无花果=图;集(图,“位置”, 0800600年,[0]);movegui(图,“中心”);hViewPnl = uipanel(图,“位置”,[0 0 1 1],“标题”“走走停停的场景”);hPlt =轴(hViewPnl);

绘制场景并运行模拟。自我车辆和汽车暂停他们指定的等待时间,以避免与救护车相撞。

情节(场景中,“锚点”“上”“RoadCenters”“上”“父”hPlt)推进(场景)暂停(0.1)结束

模拟一个驾驶场景,在这个场景中,一辆汽车倒车驶入一个停车位。

创建一个驾驶场景。添加道路段来定义停车场。第一个路段定义了停车位。第二道路段定义了驾驶车道并覆盖第一道路段。

场景= drivingScenario;roadcenterspark = [6 0;24 0);lmParking = [laneMarking (“无名”...repmat (laneMarking (“固体”), 1、5)...laneMarking (“无名”));lspecParking = lanespec (6“宽度”3,“标记”, lmParking);路(场景、roadCentersParking“道”, lspecParking);[12 0;18 0);lmDriving = [laneMarking (“无名”) laneMarking (“无名”));lspecDriving = lanespec (1,“宽度”, 18岁,“标记”, lmDriving);路(场景、roadCentersDriving“道”, lspecDriving);

将车辆添加到驾驶场景中。

车=车辆(场景中,“ClassID”, 1“位置”(15 6 0),“偏航”, 90);

定义飞行器的轨迹。车辆向前行驶,停下来,然后倒车,直到倒车到停车位。当车辆进入停车位,它有一个偏航方向角,从它开始的地方逆时针90度。

路径点= [15 -6;15 5;12个-1.5;7.3 - -1.5);速度= (4.5;0;2;0);轨迹(汽车、锚点、速度,“偏航”,[90 90 180 180]);

绘制驾驶场景并显示轨迹的路径点。

情节(场景中,“锚点”“上”推进(场景)暂停(0.001)结束

确定行人在十字路口右急转弯的轨迹。

创建一个驾驶场景。添加定义十字路口的路段。

场景= drivingScenario;= [0 10;0 -10];路(场景,roadCenters);路(场景中,翻转(roadCenters 2));

在场景中添加一个行人角色。

行人=演员(场景中,...“ClassID”4...“长度”, 0.24,...“宽度”, 0.45,...“高度”, 1.7,...“位置”(9 0 0),...“RCSPattern”, (8 8;8 8],...“网”driving.scenario.pedestrianMesh,...“名字”“行人”);

确定行人的轨迹。行人走近十字路口,短暂停顿,然后在十字路口右急转。要定义右急转弯,请在十字路口指定两个紧靠在一起的路点。对于这些航路点,指定第二个航路点与第一个航路点成90度角的偏航方向角。

路径点= [-9 0;-0.25 0;0 -0.25;0 9];速度= (1.5;0;0.5;1.5);偏航= [0;0; -90; -90]; waittime = [0; 0.2; 0; 0]; trajectory(pedestrian,waypoints,speed,waittime,“偏航”、偏航);

绘制驾驶场景,并显示行人的路径点。

情节(场景中,“锚点”“上”推进(场景)暂停(0.001)结束

输入参数

全部折叠

属于…的演员drivingScenario对象,指定为演员车辆对象。要创建这些对象,使用演员车辆函数,分别。

轨迹路径点,指定为实值N2或N3矩阵,N是路径点的数量。

  • 如果路点是一个N- × 2矩阵,则每个矩阵行表示(xy)航路点的坐标。的z每个航路点的坐标为零。

  • 如果路点是一个N- × 3矩阵,则每个矩阵行表示(xyz)航路点的坐标。

路径点在世界坐标系中。单位是米。

例子:[1 0 0;2 7 7;3 8 8)

数据类型:|

演员在每个路径点的速度路点,指定为实值标量或N元实值向量。N是路径点的数量。

  • 速度是标量,在整个行动者运动过程中,速度是恒定的。

  • 速度是一个矢量,矢量值指定在每个航路点的速度。对于前进运动,指定正速度值。对于反向运动,指定负速度值。要改变运动方向,用一个路径点将正速度和负速度分开0速度。

速度被插入到路径点之间。速度可以在任何路径点为零,但不能在两个连续的路径点为零。单位是米每秒。

例子:(10 8 9)可选速度:10m /s、8m /s、9m /s。

例子:(-10 0)指定前进速度为10米/秒,然后停顿,再以10米/秒的速度后退。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

动作的暂停时间N非负值元素向量。N是路径点的数量。当您为参与者在特定的路径点指定暂停时间时,您必须将相应的速度值设置为0.您可以设置waitime0在任何路点,但你不能设置waittime在两个连续的路径点上达到非零值。单位是秒。

数据类型:|

行动者在每个航路点的偏航方向角,指定为N元素实值向量,其中N是路径点的数量。单位是度,而角度在逆时针方向上是正的。

如果没有指定偏航,则每个航路点的偏航为,这意味着偏航没有约束。

例子:90年[0]指定一个actor在第一个路径点的角度为0度,在第二个路径点的角度为90度。

例子:[0南]在第一个路径点指定一个0度角的角色。行动者对其在第二个航路点的偏航没有约束。

数据类型:|

算法

轨迹函数创建场景中参与者要遵循的轨迹。轨迹包括一个物体所经过的路径和它在这一路径上的速度。使用N二维或三维路径点。每一个N-路点之间的1段定义了一条曲线,其曲率随段上的距离线性变化。函数是分段拟合的回旋曲线曲线到(xy)通过匹配路径点两侧的曲率来确定路径点的坐标。对于非闭合曲线,第一个和最后一个路径点的曲率为零。如果第一个和最后一个路径点重合,那么端点前后的曲率就匹配。的z轨迹的坐标是使用一个保持形状的分段三次曲线插值的。

你可以将速度指定为标量或矢量。当速度为标量时,行动者以恒定速度沿轨迹运动。当速度是N-元素向量,速度在路径点之间线性插值。在两个连续的路径点将速度设置为零将创建一个静止的角色。

介绍了R2018a