主要内容

轨迹

创建演员或驾驶场景中车辆轨迹

描述

轨迹(交流,路点)创建一个演员或车辆的轨迹,交流,从一组锚点。

请注意

轨迹函数生成轨迹路径点之间在加速度不连续,导致大量的混蛋。生成一个光滑,jerk-limited轨迹,使用smoothTrajectory函数来代替。

例子

轨迹(交流,路点,速度)还指定了演员或车辆的速度沿轨道移动,向前或向后的运动。

例子

轨迹(交流,路点,速度,waittime)指定一个演员或车辆的等待时间除了输入参数在前面的语法。使用这种语法生成走走停停的驾驶场景通过暂停一个演员或车辆演员在特定的锚点。

例子

轨迹(___“偏航”,偏航)指定了偏航方向角的演员或车辆在每一个路标,除了之前的任何输入参数组合语法。

例子

全部折叠

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

场景= drivingScenario (“SampleTime”,0.05);roadcenters = [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);roadCenters = [50 1 0;2 0.9 0];laneSpecification = lanespec (2“宽度”4);路(场景、roadCenters“道”,laneSpecification);roadCenters =[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)结束

图包含一个坐标轴对象和一个uipanel类型的对象。坐标轴对象包含X (m), ylabel Y (m)包含13个对象类型的补丁,线。一个或多个行显示的值只使用标记

模拟驾驶场景,在该场景中,一辆车开在反向回一个停车位。

创建一个场景包含一个停车场开车。

场景= drivingScenario;顶点= [0 9;18 9;18 9;0 9];停车场(场景、顶点ParkingSpace = ParkingSpace);

创建一个汽车并定义其轨迹。汽车驱动前进,停止,然后驱使反过来回到停车位。当汽车进入停车位,它有一个偏航方向角是90度逆时针从那里开始。

车=车辆(场景,ClassID = 1);路点= [9 5;9 5;6 -1.3;2 -1.3);速度= [3;0;2;0);偏航= (90 90 180 180); smoothTrajectory(car,waypoints,speed,Yaw=yaw)

驾驶场景和情节显示路径点的轨迹。

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

定义一个行人的轨迹将一把锋利的一个十字路口右转。

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

场景= drivingScenario;roadCenters = [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锚点的数量。

  • 如果路点是一个N2矩阵,然后每个矩阵行代表(x,y)坐标的一个路标。的z协调每个路标是零。

  • 如果路点是一个N3矩阵,然后每个矩阵行代表(x,y,z)坐标的一个路标。

锚点在世界坐标系。单位是米。

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

数据类型:|

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

  • 速度是一个标量,整个演员运动速度是恒定的。

  • 速度是一个向量,向量的值指定的速度在每一个路标。对于前进运动,指定积极的速度值。对于反向运动,指定负速度值。速度改变运动方向,独立的积极和消极的速度通过一个路标0速度。

速度插值路径点之间。速度可以在任何路标是零,但不能是零在连续两个锚点。单位是米每秒。

例子:(10 8 9)指定10 m / s的速度,8米/秒,9米/秒。

例子:(-10 0)指定了一个10 m / s的速度向前运动,后跟一个暂停,紧随其后的是10 m / s的速度反向。

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

暂停时间的演员,指定为一个N元向量的非负价值。N锚点的数量。当你指定一个暂停时间的演员在一个特定的路标,你必须设置相应的速度值0。你可以设置waitime0在任何路标,但是你不能设置waittime在两个连续的路点非零值。单位是秒。

数据类型:|

偏航方向角的演员在每一个路标,指定为一个N元实值向量,N锚点的数量。单位是在度和角度是正逆时针方向。

如果你不指定偏航,然后在每一个路标偏航,这意味着偏航没有约束。

例子:90年[0]指定一个演员在0度角第一个航点,在第二个航点90度角。

例子:[0南]指定一个演员在0度角第一个航点。演员没有限制其在第二个路标偏航。

数据类型:|

算法

轨迹函数创建一个轨迹为一个演员在一个场景。路径的轨迹由紧随其后的是一个对象和它的速度沿着路径。使用你指定的路径N二维或三维的锚点。每一个N- 1段路径点之间定义了一个曲线的曲率变化线性线段的距离。函数符合分段回旋曲线曲线(x,y)坐标匹配路径点的曲率两岸的路标。非闭曲线,第一个和最后一个航点的曲率为零。如果第一个和最后一个锚点重合,那么前后曲率端点相匹配。的z轨迹的坐标是使用一种保形插值分段立方曲线。

分段恒定加速度概要文件中生成的轨迹结果路径点之间的每一部分。这些段加速度不连续。避免在加速度不连续,使用smoothTrajectory函数来生成轨迹。

版本历史

介绍了R2018a