?? 本篇文章,依舊是在虛擬機中對阿克曼轉向車的仿真測驗,本篇文章進行導航及避障的測驗,依舊借助于古月學院《如何在Gazebo中實作阿克曼轉向車的仿真》課程資料進行測驗
?? 本篇文章,主要包含以下五部分:
?? 一、在ROS Noetic版本中使用rosdep install teb_local_planner安裝teb _local _planner導航功能包失敗;
?? 二、借助apt-cache查詢與teb _local _planner相關的功能包,并使用apt install成功安裝;
?? 三、在ROS Noetic版本中運行roslaunch bringup move_base.launch時,常見錯誤及解決方法
?? 四、阿克曼轉向車導航仿真測驗效果展示
?? 五、阿克曼轉向車導航仿真時所占用CPU資源檢測
一、在ROS Noetic版本中使用rosdep install teb_local_planner安裝teb _local _planner導航功能包失敗
?? 在我使用rosdep install teb_local_planner去安裝teb_local_planner的時候,報錯:Command ‘rosdep’ not found, but can be installed with:sudo apt install python3-rosdep2
?? 我花大半個月好不容易建立起的一系列ROS環境,被python3-rosdep2這條萬惡的陳述句連同ROS一起給我刪了,,,悲傷來的那么猝不及防
?? 隨著ROS版本的迭代,相關資料很多都不再適用,這個時候,當你輸入過時的指令時,ROS有時會發出提示Command XXX not found, but can be installed with: XXX 在今天之前我特別喜歡這個功能,慢慢也就對系統給出建議采取了完全信任的習慣,就在今天我安裝導航功能包的時候,他又來了,這次系統給的建議是執行:python3-rosdep2,,,出于之前養成的習慣,想也沒想就執行了,接下來我花費大半個月建立的環境,隨著185個功能包被洗掉也一起消失了
?? 還好,在建立環境的時候留了一手,把需要手動安裝的比較重要的功能包記錄了下來,現在才不至于手忙腳亂或崩潰
?? 吃一塹,長一智,任你虐我千百遍,我依然笑著面對你,期望盡快把環境重建起來吧
?? 在我差不多把ROS環境重建之后,再次運行rosdep install teb_local_planner時,又面臨著同樣的問題,在網上查找資料,未能找到解決方法,于是我決定探索一條不使用rosdep的方法,也就是本文的第二部分所介紹的內容
二、借助apt-cache查詢與teb _local _planner相關的功能包,并使用apt install成功安裝
?? 1、使用以下命令來查看ros noetic版本的所有的功能包
apt-cache search ros-noetic

?? 我將其復制到word里,發現足足有73頁word,接下來就可以在word里去查找我們需要的功能包了,最終找到了兩個與teb_local_planner相關的功能包:ros-noetic-teb-local-planner和ros-noetic-teb-local-planner-dbgsym,分別使用以下指令去安裝他們
sudo apt install ros-noetic-teb-local-planner
sudo apt install ros-noetic-teb-local-planner-dbgsym

三、在ROS Noetic版本中運行roslaunch bringup move_base.launch時,常見錯誤及解決方法
?? 本篇文章同樣使用古月學院《如何在Gazebo中實作阿克曼轉向車的仿真》的課程資料來進行探索驗證,
?? 在運行roslaunch bringup move_base.launch時,報了三個錯誤
?? (1)錯誤一:
ERROR: cannot launch node of type [move_base/move_base]: move_base
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/jzx/catkin_ws/src
ROS path [2]=/opt/ros/noetic/share
?? (2)錯誤二:
ERROR: cannot launch node of type [amcl/amcl]: amcl
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/jzx/catkin_ws/src
ROS path [2]=/opt/ros/noetic/share
?? (3)錯誤三:
[ INFO] [1635080522.257003623]: Loading map from image "/home/zeen/racecar_ws/src/racecar_sim/bringup/map/map.pgm"
[ERROR] [1635080522.259275648]: failed to open image file "/home/zeen/racecar_ws/src/racecar_sim/bringup/map/map.pgm": Couldn't open /home/zeen/racecar_ws/src/racecar_sim/bringup/map/map.pgm
[map_server-2] process has died [pid 13751, exit code 255, cmd /opt/ros/noetic/lib/map_server/map_server /home/jzx/catkin_ws/src/ackerman_sim/bringup/map/map.yaml __name:=map_server __log:=/home/jzx/.ros/log/6375a756-34ca-11ec-b9e4-fdee4c673134/map_server-2.log].
log file: /home/jzx/.ros/log/6375a756-34ca-11ec-b9e4-fdee4c673134/map_server-2*.log

?? (1) 對于錯誤三很容易解決,只需要修改要加載的地圖的第一行陳述句就可以了,按照路徑提示,我們打開這個檔案,如下圖①所示,將檔案的第一行也就是③處的位置的路徑改成該檔案所在的路徑,這個路徑其實在②處已經給我們提示了,這個錯誤其實是因為你直接用了他人的代碼,拿過來后沒有修改成自己的路徑導致的,只要把路徑修改對了,就能在rviz中加載地圖了

?? 解決掉第三個錯誤后,再次運行roslaunch bringup move_base.launch時就剩下前兩個錯誤了,此時可以加載地圖了,但是很顯然位置不正確,如下所示:

?? (2) 對于錯誤一和錯誤二其實是缺少相應的功能包導致的,錯誤一是因為缺少功能包ros-noetic-move-base,錯誤二是因為缺少功能包ros-noetic-navigation,分別執行以下陳述句安裝就可以了
sudo apt install ros-noetic-move-base
sudo apt install ros-noetic-navigation
?? 此時再執行roslaunch bringup move_base.launch時就可以正常啟動了
四、阿克曼轉向車導航仿真測驗效果展示
?? 1、首先放一下不人為添加障礙物的視頻演示:
阿克曼導航仿真(不帶障礙物)
?? 可以看出,在轉彎處阿克曼轉向車耗費了大量的時間,雖然跟我沒調引數有關系,還是反映出了阿克曼型轉向車的不靈活性,不能做到原地轉向 ,也不能走直角,所以無形中增加了導航的難度
?? 2、再放一下人為添加障礙物的視頻演示:
阿克曼導航仿真(帶障礙物)
?? 可以看出,我一開始放的兩個小瓶子,由于不在其全域路徑上,阿克曼轉向車并沒有理會它,后面我把三個小瓶子排成一排,但是阿克曼轉向車沒有及時檢測到,把他們撞倒了,然后車就被卡住了,人為洗掉小瓶子后,才恢復正常,后來我又放了較大的櫥柜,這一次,阿克曼轉向車檢測到了,但由于障礙物過大,小車不能通過,洗掉后,我又放了兩個障礙物,雖然過得很慢,但最侄訓是通過了
五、阿克曼轉向車導航仿真時所占用CPU資源檢測
?? 我給虛擬機分配了16GB的記憶體,實際可用于導航的最大記憶體為15.6GB,在不啟動仿真時CPU占用為2%作用,啟動導航仿真后(同時啟動Gazebo和Rviz),CPU資源占用平均在70%左右,也就是大概需要10~11GB的記憶體

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337855.html
標籤:其他
