搜尋
首頁科技週邊人工智慧Apollo與Carsim/TruckSim合作進行聯合仿真

1.背景

模擬在自動駕駛研發中扮演著重要角色,它能夠大幅提高研發效率,並為演算法的可靠性提供保障。百度Apollo系統作為一個優秀的開源平台,非常適合有意學習自動駕駛的朋友進行研究。此外,Carsim/Trucksim是備受推崇的經典汽車動力學模擬工具。

本文介紹了透過Apollo和Trucksim的聯合,實現本地即時模擬的方法。適合初學者建構模擬平台並研究Apollo系統。

2. 架構設計

Apollo工程的核心程式碼是用C 實現的。 Trucksim的常用介麵包括simulink、Python和C語言。本文將先介紹Apollo、simulink和Trucksim聯合模擬的架構,並討論此模擬系統的問題。接下來,將重點討論Apollo和Trucksim的聯合模擬。

2.1 Apollo, simulink和Trucksim方案

Simulink和Apollo可以透過ROS進行通訊。由於Apollo的訊息資料格式是protobuf,而Simulink的ROS工具只支援標準的ROS訊息(ROS msg),因此可以在Apollo中加入一個格式轉換的節點來實現相容。關於Simulink召喚Trucksim的方案,網路上有許多資源可供參考,就不再詳述了。

Apollo與Carsim/TruckSim合作進行聯合仿真

simulink方案圖

2.2 Apollo,rosbridge和Trucksim方案

建立QT工程和Apollo工程之間的websocket通訊。在Apollo工程中,透過增加rosbridge(或cyber_bridge)模組來實現ros訊息(或cyber訊息)與websocket的互轉。 QT工程作為websocket客戶端使用C 實現,並呼叫Trucksim的動態函式庫,實現即時運行Trucksim的功能。

Apollo與Carsim/TruckSim合作進行聯合仿真

rosbridge方案圖

3. 功能實作

3.1 Apollo, simulink與Trucksim方案

3.1.1 Simulink設定

Simulink的工具包中有ROS的支援包,設定ROS網路位址如圖2所示。 Hostname/IP Address和Port分別為ROS_MASTER_URI的位址和連接埠號碼,在上面的通訊機制中有說明。

Apollo與Carsim/TruckSim合作進行聯合仿真

設定ROS網路位址

ROS subscriber接收interface的訊息,因此Topic, Message type, Sample time要與interface中程式相對應。

Apollo與Carsim/TruckSim合作進行聯合仿真

設定ros subcribe

為了方便偵錯驗證,現在MATLAB端啟動ROS。設定流程如下:

MATLAB設定的指令:

>> setenv('ROS_MASTER_URI','http://192.168.103.122:11311')>> setenv('ROS_IP','192.168.103.198')>> rosinit('192.168.103.122')

3.1.2 TruckSim設定

設定介面

Apollo與Carsim/TruckSim合作進行聯合仿真

Trucksim是嚮導式編程,參數配置介面:卡車選擇5A Tractor(SS_SSS),具體參數見圖3.控制介面:Models選擇simulink。

Apollo與Carsim/TruckSim合作進行聯合仿真

主介面

Apollo與Carsim/TruckSim合作進行聯合仿真

#輸入參數設定介面

輸出參數設定介面

3.2 Apollo, rosbridge與Trucksim方案

#3.2.1 apollo設定rosbridge

##rosbridge安裝網路教學課程較多,本文不再贅述。

使用方法如下:

cd ros_pkgs_ws

catkin_make

啟動rosbridge

source /apollo/ros_pkgs_ws/devel/setup.bash

PATH=/usr/local/miniconda2/bin:$PATHroslaunch rosbridge_server rosbridge_websocket.launch

#3.2.1 Qt工程設定說明

Apollo與Carsim/TruckSim合作進行聯合仿真

3.2.1.1 Qt和CMake版本資訊

Apollo與Carsim/TruckSim合作進行聯合仿真

3.2.1.3 Apollo工程和QT工程的介面定義

###### ####/apollo/trucksim/pose###
{"op":"publish","topic":"/apollo/tucksim/pose","msg": {"header": {"timestamp_sec":1572253610.76292, "sequence_num":77}, "trucksimpose": {"XCG_TM":30.9964522249, // 单位:m "YCG_TM":0.657853758823, // 单位:m "ZCG_TM":1.00644079555, // 单位:m "YAW":-0.015505948987, // 单位:rad "VX":7.81497285565, // 单位:m/s "STEER_SW":2.84450684087, // 单位:rad "AV_Y":0.133153549217, // 单位:rad/s "GEARSTAT":5.0, // 无单位 "XCG_TM2":22.5890979801, // 单位:m "YCG_TM2":-0.471483304991, // 单位:m "ZCG_TM2":2.08466406388, // 单位:m "YAW_2":-0.0253130178796, // 单位:rad "VY":0.326368169782, // 单位:m/s "DISTANCE":31.0034324244, // 单位:m "DELTA_YAW":-0.015505948987, // 单位:rad "DISTANCE_2":22.5940178822, // 单位:m "DELTA_YAW_2":-0.0253130178796 // 单位:rad/s } }}

4. 使用心得

  1. TruckSim模型离散时间补偿设置为0.001s,即模型更新频率为1000hz,选择每个步长更新两次的积分方法(如:AM-2, RK-2等)。

注释:
1)真车是一个高阶非线性连续系统,TruckSim通过固定时间步长离散系统来模拟真车,当模型步长选择较大时(如之前设置的0.01s),模型较不准;TruckSim模型是由悬架系统-动力系统-转向系统-制动系统-轮胎模型-空气动力学等系统构成的复杂系统,当其中一个或多个系统因为时间步长太大而很不准时,就会出现车抖动比较明显的现象。

2)模型更新频率设为1000hz是TruckSim官网推荐的,经验证,这个频率能解决车抖动问题。

  1. 接口线程加载频率用定时器控制,加载调用simfile.sim,license和DLL的频率设置为1000hz,与Trucksim模型离散步长一致。

注释:
受3中积分方法决定,当选择每个步长更新两次的积分方法,VS_EXT_EQ_IN和VS_EXT_EQ_OUT更新频率是加载频率的2倍,为2000hz。

Apollo與Carsim/TruckSim合作進行聯合仿真

原文链接:https://mp.weixin.qq.com/s/8QNp5iQebE3lPJzEgq_bOA

以上是Apollo與Carsim/TruckSim合作進行聯合仿真的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
外推指南外推指南Apr 15, 2025 am 11:38 AM

介紹 假設有一個農民每天在幾週內觀察農作物的進展。他研究了增長率,並開始思考他的植物在幾週內可以生長的高度。從Th

軟AI的興起及其對當今企業的意義軟AI的興起及其對當今企業的意義Apr 15, 2025 am 11:36 AM

軟AI(被定義為AI系統,旨在使用近似推理,模式識別和靈活的決策執行特定的狹窄任務 - 試圖通過擁抱歧義來模仿類似人類的思維。 但是這對業務意味著什麼

為AI前沿的不斷發展的安全框架為AI前沿的不斷發展的安全框架Apr 15, 2025 am 11:34 AM

答案很明確 - 只是雲計算需要向雲本地安全工具轉變,AI需要專門為AI獨特需求而設計的新型安全解決方案。 雲計算和安全課程的興起 在

生成AI的3種方法放大了企業家:當心平均值!生成AI的3種方法放大了企業家:當心平均值!Apr 15, 2025 am 11:33 AM

企業家,並使用AI和Generative AI來改善其業務。同時,重要的是要記住生成的AI,就像所有技術一樣,都是一個放大器 - 使得偉大和平庸,更糟。嚴格的2024研究O

Andrew Ng的新簡短課程Andrew Ng的新簡短課程Apr 15, 2025 am 11:32 AM

解鎖嵌入模型的力量:深入研究安德魯·NG的新課程 想像一個未來,機器可以完全準確地理解和回答您的問題。 這不是科幻小說;多虧了AI的進步,它已成為R

大語言模型(LLM)中的幻覺是不可避免的嗎?大語言模型(LLM)中的幻覺是不可避免的嗎?Apr 15, 2025 am 11:31 AM

大型語言模型(LLM)和不可避免的幻覺問題 您可能使用了諸如Chatgpt,Claude和Gemini之類的AI模型。 這些都是大型語言模型(LLM)的示例,在大規模文本數據集上訓練的功能強大的AI系統

60%的問題 -  AI搜索如何消耗您的流量60%的問題 - AI搜索如何消耗您的流量Apr 15, 2025 am 11:28 AM

最近的研究表明,根據行業和搜索類型,AI概述可能導致有機交通下降15-64%。這種根本性的變化導致營銷人員重新考慮其在數字可見性方面的整個策略。 新的

麻省理工學院媒體實驗室將人類蓬勃發展成為AI R&D的核心麻省理工學院媒體實驗室將人類蓬勃發展成為AI R&D的核心Apr 15, 2025 am 11:26 AM

埃隆大學(Elon University)想像的數字未來中心的最新報告對近300名全球技術專家進行了調查。由此產生的報告“ 2035年成為人類”,得出的結論是,大多數人擔心AI系統加深的採用

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),