小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

基于MATLAB&SIMULINK開發(fā)自動駕駛系統(tǒng)第二十講程序化創(chuàng)建自動駕駛場景

 小明師兄 2021-10-21

本講展示了如何以編程方式創(chuàng)建使用駕駛場景設(shè)計(jì)器應(yīng)用程序構(gòu)建的駕駛場景。通過編程創(chuàng)建場景的不同變體,可以在多種條件下快速測試自動駕駛算法。

要創(chuàng)建駕駛場景的程序化變體,請遵循以下步驟:

1 通過使用駕駛場景設(shè)計(jì)器應(yīng)用程序交互式地構(gòu)建駕駛場景;

2 導(dǎo)出一個MATLAB函數(shù),生成與該場景對應(yīng)的MATLAB代碼;

3 在 MATLAB 編輯器中,修改導(dǎo)出的函數(shù)以創(chuàng)建原始場景的變體;

4 調(diào)用該函數(shù)生成一個代表該場景的drivingScenario對象;

5 將場景對象導(dǎo)入到應(yīng)用程序中,以仿真修改后的場景或生成其他場景。另外,要在Simulink中仿真修改后的場景,可通過使用Scenario Reader塊將對象導(dǎo)入Simulink模型中。

該圖是該工作流程的直觀表示

20.1在應(yīng)用程序中構(gòu)建場景

使用 "駕駛場景設(shè)計(jì)器 "交互式地建立一個駕駛場景,在此場景中測試的算法。有關(guān)構(gòu)建場景的應(yīng)用,請關(guān)注收藏智駕社公眾號。

本講使用的駕駛場景是基于可以從駕駛場景設(shè)計(jì)器應(yīng)用程序中加載的預(yù)建場景之一。

在應(yīng)用程序中打開場景文件。

drivingScenarioDesigner('LeftTurnScenarioNoSensors.mat') 

點(diǎn)擊 "運(yùn)行 "來仿真這個場景。在這個場景中,被控車輛向北行駛,直行通過一個十字路口。同時,從十字路口左側(cè)駛來的車輛向左轉(zhuǎn)彎并駛?cè)氡豢剀囕v所處車道的相鄰車道,處于被控車輛的前方。

為簡單起見,本方案不包括安裝在被控車輛上的傳感器。

20.2導(dǎo)出場景的MATLAB函數(shù)

查看并仿真場景后,可以將場景導(dǎo)出到 MATLAB 命令行。從 "駕駛場景設(shè)計(jì)器 "應(yīng)用程序工具欄中,選擇 "導(dǎo)出">"導(dǎo)出 MATLAB 函數(shù)"。導(dǎo)出的函數(shù)包含用于生成在應(yīng)用程序中創(chuàng)建的場景的 MATLAB 代碼。打開導(dǎo)出的函數(shù):

open LeftTurnScenarioNoSensors.m

 

調(diào)用這個函數(shù)會返回駕駛場景的如下方面:

- scenario--場景中的道路和執(zhí)行器,以drivingScenario對象的形式返回。

- egoVehicle--場景中定義的被控車輛,以Vehicle對象返回。詳見Vehicle函數(shù)。

如果場景中包含傳感器,那么返回的函數(shù)中包含了用于生成傳感器的額外代碼。如果仿真了包含這些傳感器的場景,那么該函數(shù)也可以生成這些傳感器產(chǎn)生的探測信息。

20.3 修改功能以創(chuàng)建場景變量 

通過修改導(dǎo)出的MATLAB函數(shù)中的代碼, 可以生成單一場景的多種變體。一個常見的變體是以不同的速度測試被控車輛。在導(dǎo)出的MATLAB函數(shù)中,將被控車輛的速度設(shè)置為每秒10米的恒定值(速度=10)。要生成不同的被控車輛速度,可以將速度變量轉(zhuǎn)換為函數(shù)的輸入?yún)?shù)。打開包含導(dǎo)出函數(shù)修改版的腳本 

open LeftTurnScenarioNoSensorsModified.m 

在這個修改后的函數(shù)中:

- egoSpeed作為一個輸入?yún)?shù)被包含在內(nèi)。

- 速度這個常量變量被刪除。

- 為了計(jì)算被控車輛的跟蹤,用egoSpeed代替了speed。

這張圖顯示了這些腳本的修改:

要產(chǎn)生額外的變化,可以考慮:

- 修改道路和車道參數(shù),查看對車道探測的影響。

- 修改車輛的跟蹤或起始位置。

- 修改車輛的尺寸

20.4 生成程序化場景的調(diào)用功能 

利用修改后的函數(shù),生成被控車輛以每秒20米的恒定速度行駛的變型場景:

scenario =LeftTurnScenarioNoSensorsModified(20) % m/s 

scenario =drivingScenario with properties:

SampleTime: 0.0400 

StopTime: Inf

SimulationTime: 0

IsRunning: 1

Actors: [1x2 driving.scenario.Vehicle]

20.5 將修改后的場景導(dǎo)入到應(yīng)用程序中 

要將修改后的場景與修改后的車輛導(dǎo)入到應(yīng)用程序中,請使用drivingScenarioDesigner函數(shù)。指定drivingScenario對象作為輸入?yún)?shù):

drivingScenarioDesigner(scenario)

 

以前,其他車輛先通過路口?,F(xiàn)在,隨著被控車輛的速度從每秒10米提高到20米,被控車輛先通過路口。 

在應(yīng)用中處理駕駛場景對象時,請記住這幾點(diǎn):

- 要嘗試不同的被控車輛速度,請?jiān)俅握{(diào)用導(dǎo)出的函數(shù),然后使用drivingScenarioDesigner函數(shù)導(dǎo)入新的drivingScenario對象。該應(yīng)用不包含導(dǎo)入這些對象的菜單選項(xiàng)。

- 如果的場景包括傳感器, 可以通過使用以下語法重新打開場景和傳感器:drivingScenarioDesigner(scenario,sensors)。

- 如果對執(zhí)行器的尺寸進(jìn)行了重大更改,請確保執(zhí)行器的ClassID屬性與應(yīng)用中指定的Class ID值相對應(yīng)。例如,在應(yīng)用程序中,汽車的Class ID為1,卡車的Class ID為2,如果 在程序上將汽車改為 有卡車的尺寸,更新該車輛的ClassID屬性,從1(汽車)到2。(卡車)。

20.6將修改后的場景導(dǎo)入到Simulink中 

要將修改后的場景導(dǎo)入Simulink模型,請使用Scenario Reader塊。該塊從應(yīng)用程序中保存的場景文件或保存到 MATLAB 工作區(qū)或模型工作區(qū)的drivingScenario 變量中讀取道路和執(zhí)行器。將Scenario Reader塊添加到的模型中,并設(shè)置這些參數(shù):

1 將駕駛場景的來源設(shè)置為來自工作區(qū)。

2 將MATLAB或模型工作區(qū)變量名稱設(shè)置為drivingScenario工作區(qū)中的變量名稱。

在Simulink中使用drivingScenario對象時,請記住以下幾點(diǎn)。

- 當(dāng)將Source of ego vehicle設(shè)置為Scenario時,模型將使用在的drivingScenario對象。該區(qū)塊根據(jù)被控車輛的指定的actorID屬性。這個actor必須是一個Vehicle對象(見車輛)。要改變指定的被控車輛,更新被控車輛ActorID參數(shù)。

- 當(dāng)將輸出的執(zhí)行器姿勢連接到傳感器塊時,更新這些塊以直接從駕駛場景對象中獲取執(zhí)行器配置文件。默認(rèn)情況下,這些塊使用同一組的所有執(zhí)行器的配置文件,其中配置文件在塊的執(zhí)行器配置文件選項(xiàng)卡上定義。要從對象中獲取配置文件,在每個傳感器塊的 "執(zhí)行器配置文件 "選項(xiàng)卡上,設(shè)置 "選擇"方法將執(zhí)行器配置文件參數(shù)指定為MATLAB表達(dá)式。然后,將actor profiles參數(shù)的MATLAB表達(dá)式設(shè)置為調(diào)用對象上的actorProfiles函數(shù)。例如:actorProfiles(scenario)。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多