一、前言
此示例示範如何使用自動駕駛工具箱™函數以程式設計方式為駕駛方案建立參與者和車輛軌迹。
二、演員和車輛
駕駛場景中的參與者被定義為具有特定長度、寬度和高度的長方體對象。Actor還具有雷達橫截面(以dBsm為機關指定),您可以通過定義角坐标(方位角和仰角)來優化該橫截面。長方體駕駛場景将演員的位置定義為其底臉的中心。駕駛場景使用此點作為參與者與地面的接觸點。這個點也是演員的旋轉中心。
車輛是一種在輪子上移動的特殊演員。車輛具有三個額外的屬性,用于控制前橋和後軸的位置。
- 軸距是前後軸之間的距離。
- 前懸是前軸與車輛前軸之間的距離。
- 後懸是後軸與車輛後部之間的距離。
與演員不同,車輛的位置位于後軸中心的地面上。該位置對應于車輛的自然旋轉中心。
此代碼繪制演員的位置、典型人的尺寸以及駕駛場景中的車輛。演員和載具分别位于位置 (0, 2) 和 (0, –2)。
預設情況下,方案圖顯示參與者的俯視圖。要更改此視圖,可以通過選擇圖的“視圖”菜單中的“錄影機工具欄”以互動方式操作方案圖。或者,您可以使用 、 、 和 等函數以程式設計方式操作繪圖。這些函數使您能夠比較演員的相對高度。
三、定義軌迹
指定演員和車輛以一組給定的速度沿着一組航點跟蹤路徑。指定航點時,該函數會将分段布條曲線拟合到航點之間的每個航段,進而保留點之間的曲率。布狀曲線的曲率随行進距離線性變化,這為駕駛員在勻速行駛時創造了一個非常簡單的軌迹。smoothTrajectory
預設情況下,參與者軌迹在端點處沒有曲率。要完成循環,請指定相同的第一個和最後一個航點。要以恒定速度跟蹤整個軌迹,請将速度指定為标量值。
車輛通過其旋轉中心航點之間的曲線。是以,為了在仿真期間适應後軸前後車輛的長度,您可以偏移起點和終點航點。偏移這些航點可以使車輛完全适合其終點的道路。
如果車輛需要快速轉彎以避開障礙物,請在預定行駛方向上将兩個點靠近放置。此示例顯示車輛在兩個位置快速轉彎,但在其他方面正常轉向。
或者,您可以通過在每個航點顯式設定車輛的偏航方向角,在此類轉彎處使用較少的航點。偏航在逆時針方向上為正,其機關為度數。在上一個示例的這種變體中,軌迹受到限制,使得車輛在進入左側車道後處于 –15 度角。通過将航點設定為 ,該函數預設将布條曲線拟合到通往該航點的航段。在這種情況下,該段是軌迹中的最後一個段。
四、十字路口轉彎和制動
對于急轉彎,要麼在轉彎的起點和終點定義靠近的航點,要麼在每個航點明确設定車輛的偏航。這種設定忠實地呈現了轉向的突然變化。
在此示例中,車輛使用顯式設定的偏航值在交叉路口急轉彎。在第一個航點和轉彎前的航點,車輛的偏航為 0 度。在轉彎後的航點和最終航點處,車輛有90度的偏航,這是車輛完成轉彎後的方向。通過限制軌迹以使車輛實作這些偏航方向,車輛轉彎比使用預設偏航方向時要銳利得多。
該功能生成平滑的、颠簸限制的軌迹,航點之間的加速度沒有不連續性。當改變車速時,例如在轉彎時減速,航路點之間的距離必須足夠大,以使車輛達到所需的速度,同時在整個過程中保持平穩的加速。或者,在較短的距離上,速度的變化必須相對較小。在此示例中,車輛在進入轉彎時從 6 m/s 的速度減速到 5 m/s。完成轉彎後,車輛加速回原始速度。
五、移動車輛
定義所有道路、參與者和參與者軌迹後,可以通過在循環中使用駕駛場景上的函數來遞增每個參與者的位置
六、反向移動車輛
要指定反向驅動運動,請指定具有負速度的軌迹。在正向和反向運動之間切換時,必須在這些運動之間指定速度為 .在這個航點,車輛減速直到完全停止,然後改變行駛方向。0
此示例在上一個示例的基礎上進行了擴充。這一次,在完成左轉後,車輛倒車并在十字路口倒車。然後,車輛再次改變方向并向前行駛,直到停在與起點相反的車道上。由于車輛以較慢的速度行駛,是以為了加快模拟速度,請在模拟更新之間指定較短的暫停時間。
七、程式
程式擷取:【程式】基于Matlab以程式設計方式為駕駛方案建立參與者和車輛軌迹
程式大全:Matlab和Simulink仿真程式彙總(2022年彙總,持續更新中)