首先,本人原本打算安裝gazebo11的,因為官方好像不支持ubuntu22.04,所以要通過PPA和ROS2 humble來安裝,安裝過程跟著教程來的,也就是下面這篇
ubuntu22.04安裝gazebo11(ROS2 Humble)-CSDN博客
安裝ROS2可以直接用小魚一鍵式安裝
wget http://fishros.com/install -O fishros && . fishros
?
但是,不知道是什么原因,最關鍵的gazebo--common這個包沒下到,我直接--version看版本出來了以為就安裝完了,沒想到這只是個殼,內核根本沒下到,大家一定要注意自己gazebo11的安裝完整性。
然而到這里還沒有完,我的gazebo運行只能顯示UI,但卡死了根本加載不進去,且終端報錯。
[Err] [Server.cc:584] Waited 11 seconds for namespaces. Giving up.
[Err] [Node.cc:118] No namespaces found
網上嘗試了各種辦法,去github上下載了模型通過共享文件夾塞進.gazebo/models試過了,拉大顯存開3D圖形加速也試過,也換了Xorg登錄,結局都是失敗。我猜測應該是Ubuntu22.04與gazebo11的兼容性太差了,或者是我用的是虛擬機(非雙系統Linux)導致的。
隨后便放棄了,我不能一條路走到黑,選擇大于努力!然后查閱資料發現我這個Ubuntu版本和gazebo harmonic的兼容性不錯,就開始準備換個gazebo版本
Gazebo Harmonic 和 ROS2 jazzy 安裝和測試-CSDN博客
五條指令就能裝完這個Harmonic版本的gazebo
sudo apt-get install lsb-release gnupgsudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/nullsudo apt-get updatesudo apt-get install gz-harmonic
啟動指令? ??gz sim shapes.sdf
這里順便補充一下徹底刪除gazebo11的流程指令
刪除gazebo11sudo apt remove gazebo11* libgazebo11* libsdformat9* -y# 刪除 Gazebo 11 核心包
sudo apt purge gazebo11 libgazebo11-dev gazebo11-common# 刪除遺留插件
sudo apt purge 'ros-*-gazebo11-*' ?# 如果使用ROS# 清理配置
rm -rf ~/.gazebo# 檢查 Gazebo 11 是否移除
which gzserver ?# 應無輸出
gz sim --versions ?# 應只顯示 Harmonic# 檢查 Harmonic 功能
ign gazebo -v ?# 或 gz sim -v
重新安裝好gazebo后,能成功打開gazebo了,但是世界界面仍然是一片黑,按照經驗把模型提前下載好拷過去后還是沒有用,且又出現了很多新的bug,氣死我了(我不李姐)。
這里參考博客Gazebo Harmonic學習筆記2-CSDN博客,先把本地模型綁定進gazebo,命令如下
#下面的路徑填你存放模型的文件夾的絕對路徑,指令有兩個,我忘了我跑的哪個指令成功綁的了,反正其中一個是能綁的233~export GZ_SIM_RESOURCE_PATH=~/xxx/xxx/gazebomodels/? ?echo "export GZ_SIM_RESOURCE_PATH="xxx/xxx/xxx/models"" >> ~/.bashrc
source ~/.bashrc
重新打開gazebo,確實能看見本地模型了,但界面還是一片黑,我嘗試去使用截圖功能,就是界面第二欄的那個照相機,它截出來的圖片是能顯示出我的模型的,但我沒法直觀的看到他,我這的顯示還是一片黑。
中間省略一堆修BUG的過程,因為沒用,最后我一氣之下把他卸載了。
#卸載指令
sudo apt remove gz-harmonic gz-* libgz-* # 移除所有 Gazebo Harmonic 相關包
sudo apt autoremove # 清理未使用的依賴rm -rf ~/.gz # Harmonic 的配置和緩存(新版本用 ~/.gz 替代 ~/.gazebo)
rm -rf ~/.gazebo # 舊版本緩存(如果存在)
sudo rm -rf /tmp/gz-* # 臨時文件gz sim --versions # 驗證是否刪干凈了
我決定重新安裝一次,這次我換了個平臺,來到了最大的學習中心b站來找安裝教程,就是這個視頻BV1WF4m1A72u,按照它的教程我重新按照了gazebo-Harmonic
sudo wget https://packages.osrfoundation.org/gazebo.gpg -O/usr/share/keyrings/pkgs-osrf-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/nullsudo apt-get updatesudo apt-get install gz-harmonicgz sim shapes.sdf
然而結果還是一片黑,就在這時我在評論區看到一個老哥說VMWare要把3D圖形加速給關掉!
沒錯我關掉之后就能正常使用了,關鍵點就在這,大模型害人啊,一直讓我開3D圖形加速
但是要注意關掉3D圖形加速后你的虛擬機會變卡,這里還是建議要跑仿真的小伙伴裝雙系統
太長不看省流版
總結幾個要點,要過程指令的自己往上翻
1.務必根據你的你的虛擬機系統版本安裝對應的gazebo,不要安裝不推薦的版本
2.注意給你的系統換源,不要用默認源,當然如果你會虛擬機科學上網也可以這么做
小魚一鍵式安裝ROS2這里面可選自動換國內源,可以用這條命令改下你的系統源順便安裝ROS2
wget http://fishros.com/install -O fishros && . fishros
3.如果出現了下面的報錯
[Err] [Node.cc:118] No namespaces found
大概率是你.gazebo/models里面的模型需要自己提前下載,讓他在線獲取大概率會超時,請自己建好文件夾并把模型復制進去,至于下載的GitHub鏈接網上一搜很多,我這里也在綁定資源上傳了一個給你們
4.一定要記得關掉3D圖形加速,不要聽大模型的,他只會讓你的bug越來越多。注意關掉3D圖形加速后你的虛擬機會變卡,建議要跑仿真還是裝雙系統比較好。
5.開機登錄時一定要選擇Xorg形式登錄