このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
chasePlot
自己を中心とした射影パースペクティブのプロット
説明
chasePlot(
は、アクター ac
)ac
のパースペクティブからドライビング シナリオをプロットします。このプロットは "追跡プロット" と呼ばれ、自己を中心とした射影パースペクティブをもちます。ここでは、ビューはアクターのすぐ後ろに配置されます。
chasePlot(
は、1 つ以上の名前と値のペアを使用してオプションを指定します。たとえば、道路の中心とアクターのウェイポイントをプロット上に表示できます。ac
,Name,Value
)
例
1 台の自動車が S 字カーブ上を走行するドライビング シナリオをシミュレートします。車線境界線を作成してプロットします。
S 字カーブをもつ 1 本の道路を使用して、ドライビング シナリオを作成します。
scenario = drivingScenario('StopTime',3);
roadcenters = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0];
車線を作成して道路に追加します。
lm = [laneMarking('Solid','Color','w'); ... laneMarking('Dashed','Color','y'); ... laneMarking('Dashed','Color','y'); ... laneMarking('Solid','Color','w')]; ls = lanespec(3,'Marking',lm); road(scenario,roadcenters,'Lanes',ls);
自車を追加し、そのウェイポイントから軌跡を指定します。自動車は、既定で 30 メートル/秒で走行します。
car = vehicle(scenario, ... 'ClassID',1, ... 'Position',[-35 20 0]); waypoints = [-35 20 0; -20 -20 0; 0 0 0; 20 20 0; 35 -20 0]; smoothTrajectory(car,waypoints);
シナリオ、および対応する追跡プロットをプロットします。
plot(scenario)
chasePlot(car)
シミュレーション ループを実行します。
鳥瞰図プロットを初期化し、アウトライン プロッター、左車線と右車線の境界線プロッター、および道路境界線プロッターを作成します。
道路の境界線と四角形のアウトラインを取得します。
車両の左右にある車線境界線を取得します。
シミュレーションを進めてプロッターを更新します。
bep = birdsEyePlot('XLim',[-40 40],'YLim',[-30 30]); olPlotter = outlinePlotter(bep); lblPlotter = laneBoundaryPlotter(bep,'Color','r','LineStyle','-'); lbrPlotter = laneBoundaryPlotter(bep,'Color','g','LineStyle','-'); rbsEdgePlotter = laneBoundaryPlotter(bep); legend('off'); while advance(scenario) rbs = roadBoundaries(car); [position,yaw,length,width,originOffset,color] = targetOutlines(car); lb = laneBoundaries(car,'XDistance',0:5:30,'LocationType','Center', ... 'AllBoundaries',false); plotLaneBoundary(rbsEdgePlotter,rbs) plotLaneBoundary(lblPlotter,{lb(1).Coordinates}) plotLaneBoundary(lbrPlotter,{lb(2).Coordinates}) plotOutline(olPlotter,position,yaw,length,width, ... 'OriginOffset',originOffset,'Color',color) end
ドライビング シナリオを作成し、シミュレーションの進行に伴うターゲット アウトラインの変化を示します。
2 つの交差する直線道路で構成されたドライビング シナリオを作成します。1 つ目の道路セグメントの長さは 45 メートルです。2 つ目の直線道路は、長さが 32 メートルで、両端にジャージ障壁があり、1 つ目の道路と交差します。1 つ目の道路に沿って秒速 12.0 メートルで移動している車が、秒速 2.0 メートルで交差点を現在渡っている歩行者に近づいていきます。
scenario = drivingScenario('SampleTime',0.1,'StopTime',1); road1 = road(scenario,[-10 0 0; 45 -20 0]); road2 = road(scenario,[-10 -10 0; 35 10 0]); barrier(scenario,road1) barrier(scenario,road1,'RoadEdge','left') ped = actor(scenario,'ClassID',4,'Length',0.4,'Width',0.6,'Height',1.7); car = vehicle(scenario,'ClassID',1); pedspeed = 2.0; carspeed = 12.0; smoothTrajectory(ped,[15 -3 0; 15 3 0],pedspeed); smoothTrajectory(car,[-10 -10 0; 35 10 0],carspeed);
車両の自己を中心とした追跡プロットを作成します。
chasePlot(car,'Centerline','on')
空の鳥瞰図プロットを作成し、アウトライン プロッターおよび車線境界線プロッターを追加します。次に、シミュレーションを実行します。各シミュレーション ステップは以下のとおりです。
追跡プロットを更新して、道路の境界およびターゲット アウトラインを表示する。
鳥瞰図プロットを更新して、更新した道路の境界およびターゲット アウトラインを表示する。プロットのパースペクティブは常に、自車が基準となっています。
bepPlot = birdsEyePlot('XLim',[-50 50],'YLim',[-40 40]); outlineplotter = outlinePlotter(bepPlot); laneplotter = laneBoundaryPlotter(bepPlot); legend('off') while advance(scenario) rb = roadBoundaries(car); [position,yaw,length,width,originOffset,color] = targetOutlines(car); [bposition,byaw,blength,bwidth,boriginOffset,bcolor,barrierSegments] = targetOutlines(car,'Barriers'); plotLaneBoundary(laneplotter,rb) plotOutline(outlineplotter,position,yaw,length,width, ... 'OriginOffset',originOffset,'Color',color) plotBarrierOutline(outlineplotter,barrierSegments,bposition,byaw,blength,bwidth, ... 'OriginOffset',boriginOffset,'Color',bcolor) pause(0.01) end
入力引数
drivingScenario
オブジェクトに属するアクター。Actor
オブジェクトまたは Vehicle
オブジェクトとして指定します。これらのオブジェクトを作成するには、関数 actor
および vehicle
をそれぞれ使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: chasePlot(ac,'Centerline','on','RoadCenters,'on')
は、各道路セグメントのセンター ラインと道路の中心を表示します。
プロットの描画に使用する座標軸。'Parent'
と Axes
オブジェクトで構成されるコンマ区切りのペアとして指定します。Parent
を指定しない場合は、新しい Figure が作成されます。
道路のセンター ラインを表示します。'Centerline'
と 'off'
または 'on'
で構成されるコンマ区切りのペアとして指定します。センター ラインは各道路セグメントの中央に従います。交差点や道路の分岐などの領域では、センター ラインは不連続になります。
道路の中心を表示します。'RoadCenters'
と 'off'
または 'on'
で構成されるコンマ区切りのペアとして指定します。道路の中心は、プロットに表示される道路を定義します。
アクターのウェイポイントを表示します。'Waypoints'
と 'off'
または 'on'
で構成されるコンマ区切りのペアとして指定します。ウェイポイントはアクターの軌跡を定義します。
直方体の代わりにアクターのメッシュを表示します。'Meshes'
と 'off'
または 'on'
で構成されるコンマ区切りのペアとして指定します。
プロット視点の高さ。'ViewHeight'
と正の実数スカラーで構成されるコンマ区切りのペアとして指定します。高さはアクターの下部を基準とします。単位はメートルです。
プロット視点の位置。'ViewLocation'
と [x, y] 実数値ベクトルで構成されるコンマ区切りのペアとして指定します。位置はアクターの座標系における直方体の中心を基準とします。視点の既定の位置は、直方体の中心の背後、[2.5*actor.Length 0]
です。単位はメートルです。
プロット視点のロール角の向き。'ViewRoll'
と実数スカラーで構成されるコンマ区切りのペアとして指定します。単位は度です。
プロット視点のピッチ角の向き。'ViewPitch'
と実数スカラーで構成されるコンマ区切りのペアとして指定します。単位は度です。
プロット視点のヨー角の向き。'ViewYaw'
と実数スカラーで構成されるコンマ区切りのペアとして指定します。単位は度です。
バージョン履歴
R2017a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)