??★,°:.☆( ̄▽ ̄)/$:.°★ ??
這篇文章主要介紹carla仿真環(huán)境安裝與運(yùn)行。
學(xué)其所用,用其所學(xué)?!簡⒊?/font>
歡迎來到我的博客,一起學(xué)習(xí),共同進(jìn)步。
喜歡的朋友可以關(guān)注一下,下次更新不迷路??
??1. Carla介紹
Carla
是一個(gè)開源的無人駕駛仿真平臺(tái),用于訓(xùn)練和測(cè)試自動(dòng)駕駛算法。它提供高度可配置的場景和傳感器設(shè)置,模擬城市環(huán)境和交通情況,以幫助開發(fā)者評(píng)估他們的自動(dòng)駕駛系統(tǒng)在各種現(xiàn)實(shí)世界場景下的表現(xiàn)。
Carla
的目標(biāo)是為研究人員、工程師和學(xué)生提供一個(gè)真實(shí)的仿真環(huán)境,以便快速迭代和測(cè)試他們的自動(dòng)駕駛算法。它支持基于Python的API,使用戶能夠輕松地與仿真環(huán)境進(jìn)行交互,并控制車輛、獲取傳感器數(shù)據(jù)等。
Carla
具有逼真的圖形渲染和物理模擬能力,可以模擬車輛的運(yùn)動(dòng)、感知和決策過程。它還支持多個(gè)傳感器類型,包括相機(jī)、激光雷達(dá)和雷達(dá)等,以提供豐富的感知信息。用戶可以根據(jù)自己的需求配置傳感器設(shè)置,從而模擬不同的傳感器布局和性能。
Carla
的主要特點(diǎn)和功能包括:
1.真實(shí)感城市環(huán)境:CARLA提供了一個(gè)高度詳細(xì)、真實(shí)感的城市環(huán)境,包括城市街道、高速公路、交叉口、停車場等。這個(gè)城市環(huán)境基于OpenStreetMap數(shù)據(jù)生成,具有豐富的道路網(wǎng)絡(luò)和多樣化的交通場景。
2.豐富的車輛和傳感器模型:CARLA支持各種類型的車輛模型,包括轎車、卡車、自行車等,并提供了多種傳感器模型,如相機(jī)、激光雷達(dá)、雷達(dá)和GPS等。開發(fā)者可以選擇適合其應(yīng)用場景的車輛和傳感器配置。
3.真實(shí)物理模擬:CARLA使用準(zhǔn)確的物理模擬來模擬車輛的動(dòng)力學(xué)行為和傳感器的測(cè)量數(shù)據(jù)。這使得開發(fā)者可以在虛擬環(huán)境中進(jìn)行高度真實(shí)的測(cè)試和評(píng)估,而無需實(shí)際車輛和傳感器。
4.可擴(kuò)展的API和腳本支持:CARLA提供了Python API和腳本支持,使開發(fā)者能夠通過編寫Python代碼來控制和監(jiān)視仿真場景。這使得開發(fā)者可以自定義算法、收集數(shù)據(jù)、進(jìn)行模擬實(shí)驗(yàn)等。
5.高度可定制的場景和交通設(shè)置:CARLA允許開發(fā)者自定義仿真場景,包括交通流量、行人行為、天氣條件等。這使得開發(fā)者可以模擬各種現(xiàn)實(shí)世界的交通場景,并進(jìn)行自動(dòng)駕駛算法的測(cè)試和評(píng)估。
除了提供仿真環(huán)境外,Carla還提供了一套豐富的API和工具,用于收集和分析仿真數(shù)據(jù)。
Carla
相關(guān)學(xué)習(xí)資源:
官網(wǎng):https://carla.org/
Github:https://github.com/carla-simulator/carla
Wiki:https://carla.readthedocs.io/en/latest/
中文站:https://www.carla.org.cn/#/
0.9.11-release版本:https://github.com/carla-simulator/carla/releases/tag/0.9.11
??2. carla環(huán)境配置
直接安裝release 0.9.11
版本,方便又快捷!源碼真的不知道要折騰多久。
Windows
首先安裝DirectX
,在該地址下載即可:https://www.microsoft.com/en-us/download/confirmation.aspx?id=35
然后下載0.9.11的windows release版本,如下:
雙擊運(yùn)行即可:
這里在windows下演示,安裝好python3.7
版本,可通過python -V
查看。
安裝依賴的pip包:pip install numpy pygame networkx
安裝carlib
:
# 打開powershell
cd D:\WindowsNoEditor\PythonAPI\carla\dist
# 安裝egg
easy_install .\carla-0.9.11-py3.7-win-amd64.egg
運(yùn)行client端腳本(前提是server端要打開,也就是雙擊運(yùn)行的那個(gè)):
cd D:\WindowsNoEditor\PythonAPI\examples
python .\automatic_control.py # 自動(dòng)運(yùn)行車輛控制
執(zhí)行后的演示如下:
Ubuntu
Ubuntu安裝類似,也是去下載Ubuntu的release
版本,然后運(yùn)行即可。
#運(yùn)行Carla
./CarlaUE4.sh
#加80個(gè)隨機(jī)車輛
cd ~/CARLA_0.9.11/PythonAPI/examples
./spawn_npc.py -n 80
#控制天氣變化
./dynamic_weather.py
#手動(dòng)駕駛client
./manual_control.py
Q:出現(xiàn)carla的time-out of 2000ms while waiting for the simulator
A:在manual_control.py加一句client=carla.Client(host='127.0.0.1', port=2000)
,多個(gè)client時(shí)port+1
二次開發(fā)
Carla支持python
和c++
二次開發(fā),但好像用源碼編譯的支持更好點(diǎn)。
我試了下C++創(chuàng)建client
示例,加了好多庫和頭文件,也沒有調(diào)試好。
python的話二次開發(fā)會(huì)好點(diǎn),因?yàn)樘峁┝艘恍﹑ython的example
,比如手動(dòng)控制示例,是用鍵盤控制的,也可以讀取其他輸入設(shè)備比如方向盤、手柄等。用python讀取輸入設(shè)備示例如下:
import pygame
# 初始化pygame和joystick
pygame.init()
pygame.joystick.init()
# 檢查是否有游戲控制器連接
if pygame.joystick.get_count() > 0:
# 初始化第一個(gè)控制器
joystick = pygame.joystick.Joystick(0)
joystick.init()
try:
while True:
pygame.event.pump()
# 獲取方向盤的軸、按鈕或帽子開關(guān)的狀態(tài)
axis0 = joystick.get_axis(0)
axis1 = joystick.get_axis(1)
axis2 = joystick.get_axis(2)
# 處理軸的狀態(tài)
print("Axis0 value: ", axis0)
print("Axis1 value: ", axis1)
print("Axis2 value: ", axis2)
# 確保延遲以避免過度占用處理器
pygame.time.wait(100)
except KeyboardInterrupt:
# 清理并退出
pygame.quit()
??3. carla-ros-bridge安裝與仿真
源碼安裝步驟如下:
mkdir -p ~/carla-ros-bridge/catkin_ws/src
cd ~/carla-ros-bridge
git clone https://github.com/carla-simulator/ros-bridge.git(0.9.11)
cd catkin_ws/src
ln -s ../../ros-bridge-0.9.11
source /opt/ros/melodic/setup.bash
cd ..
rosdep update
rosdep install --from-paths src --ignore-src -r
catkin_make
加入環(huán)境變量:
gedit ~/.bashrc
#### carla
export PYTHONPATH=$PYTHONPATH:/home/dev/CARLA_0.9.11/PythonAPI/carla/dist/carla-0.9.11-py2.7-linux-x86_64.egg
#### carla_ros_bridge
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
ros節(jié)點(diǎn)啟動(dòng):
#### Option 1: start the ros bridge
roslaunch carla_ros_bridge carla_ros_bridge.launch
#### Option 2: start the ros bridge together with RVIZ
roslaunch carla_ros_bridge carla_ros_bridge_with_rviz.launch
#### Option 3: start the ros bridge together with an example ego vehicle
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch
此外,也可以做autoware與carla的聯(lián)合仿真:
- carla-仿真引擎(服務(wù)端)
- ros_bridge-車輛模型和topic節(jié)點(diǎn)(客戶端)
- autoware-自動(dòng)駕駛算法集合
仿真流程:
1.啟動(dòng)carla-./CarlaUE4.sh
2.啟動(dòng)carla_ros_bridge-roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch
3.啟動(dòng)autoware-roslaunch runtime_manager runtime_manager.launch
4.調(diào)用autoware中的rviz,顯示相機(jī)和雷達(dá),及算法處理后的結(jié)果
可以實(shí)現(xiàn)的功能:
1.錄制bag
2.驗(yàn)證lidar聚類算法
3.雷達(dá)建圖
……
另外,autoware也可以與lgsvl聯(lián)合仿真,autoware自帶了接口。
win啟動(dòng)lgsvl-2019.4,選擇autoware車和ip,autoware啟動(dòng)lgsvl的bridge.launch
能錄制velodyne的點(diǎn)云bag,出現(xiàn)車懸空的問題,換了個(gè)場景好了
ros也能和lgsvl聯(lián)合仿真,也要啟動(dòng)一個(gè)rosbridge:
roslaunch rosbridge_server rosbridge_websocket.launch
文章來源:http://www.zghlxwxcb.cn/news/detail-752899.html
以上。文章來源地址http://www.zghlxwxcb.cn/news/detail-752899.html
到了這里,關(guān)于【Carla】carla仿真環(huán)境安裝與運(yùn)行(Python、ros)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!