虛擬機運行Gazebo問題修復


轉載自:http://blog.exbot.net/archives/3035

在虛擬機上運行Gazebo會遇到諸多問題,主要是顯卡和硬件加速的問題,近期在虛擬機上安裝了Ubuntu14.04 ROS(Indigo) Gazebo進行了測試,並把問題總結如下:

ROS Indigo的Gazebo是2.2.3 版本。對於完全集成的ROS系統,我們建議使用2.x版本的Gazebo。如果需要使用其他版本的Gazebo可能需要費一些周折,具體方法可參考:

  • Gazebo與ROS版本說明:

http://blog.csdn.net/ZhangRelay/article/details/52824812?locationNum=1

  • ROS(indigo) 安裝和使用更新版本的Gazebo

http://blog.csdn.net/zhangrelay/article/details/53318991

通常默認indigo-desktop-full安裝會自動安裝好Gazebo,無需過多考慮。

sudo apt-get install ros-indigo-desktop-full

1.  關閉虛擬機硬件加速

在虛擬機中的linux上運行Gazebo的時候,Gazebo窗口閃退,並提示問題:

VMware: vmw_ ioctl_command error Invalid argument.

 

運行如下ROS+Gazebo命令也會報錯:

roscore & rosrun gazebo_ros gazebo

解決辦法:

  • 關閉硬件加速(親測可用)

echo " export SVGA_VGPU10=0" >> ~/.bashrc

source ~/.bashrc

  • 關閉虛擬機的3D圖形加速(備選)

export LIBGL_ ALWAYS_SOFTWARE=0

  • 在虛擬機設置中關閉3D加速(備選)

2.  下載Gazebo模型

這時運行下面Gazebo命令,OK,錯誤沒有了,但怎么是一抹黑啊!

roscore & rosrun gazebo_ros gazebo

首次運行Gazebo,加載模型會出現非常緩慢,原因可能是不能正確下載模型。

Warning [ModelDatabase.cc:356] Getting models from[http://gazebosim.org/models/]. This may take a few seconds.

因為http://gazebosim.org/models/地址已經變換http://models.gazebosim.org, 可能導致在訪問時候無法自動轉換地址。

解決方法:通過直接下載所有模型到用戶的根目錄下的.gazebo/models/下。

  • 方法1:在線下載

運行:

cd ~/.gazebo/

ls

mkdir -p models

ls

cd ~/.gazebo/models/

wget http://file.ncnynl.com/ros/gazebo_models.txt

ls

輸出:

gazebo_models.txt

運行:

wget -i gazebo_models.txt

ls model.tar.g* | xargs -n1 tar xzvf

  • 方法2:直接下載包

全部模型有170M,但在線下載速度非常慢,我下了一天一夜才下完。不過現在小伙伴已經將其共享至網盤,可直接下載,然后將其解壓至~/.gazebo/models里。

鏈接:http://pan.baidu.com/s/1pKaeg0F 密碼:cmxc (來自rosclub.cn

或是下載https://bitbucket.org/osrf/gazebo_models/downloads/ (ExBot ROS專區,網友提醒)

解壓后如下圖:

此時運行Gazebo,便可以顯示物體了,並可在Insert選項卡里添加需要的物體(左鍵拖放,右鍵放置)。

roslaunch gazebo_ros empty_world.launch

Gazebo界面操作方法:左鍵單擊拖動——平移,中鍵單擊拖動——改變觀察角度,滾輪縮放,右鍵單擊拖動——縮放。

3.  運行仿真機器人了

下面就可以愉快運行機器人了,首先安裝Turtlebot包。

安裝Turtlebot,打開終端,運行如下命令:

sudo apt-get update

sudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon ros-indigo-rocon-qt-library ros-indigo-ar-track-alvar-msgs

新窗口運行:

roscore

新窗口,打開turtlebot_gazebo:

roslaunch turtlebot_gazebo turtlebot_world.launch

下面就可以用鍵盤控制turtlebot前后左右走了。

此時在終端單擊右鍵打開一個標簽頁:

roslaunch turtlebot_teleop keyboard_teleop.launch

4.  清除Gazebo殘留進程

當不正確關閉Gazebo時,再次啟動Gazebo會遇到sever無法啟動的問題。

Exception [Master.cc:50] Unable to start server[bind: Address already in use]. There is probably another Gazebo process running.

解決方法:

用ps命令查找gzserver進程,將其kill。或是干脆重啟系統。

至此,就可以愉快地玩耍Gazebo啦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM