虛擬機運行Gazebo問題修復

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

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

ROS Indigo的Gazebo是2.2.3 版本。對於徹底集成的ROS系統,咱們建議使用2.x版本的Gazebo。若是須要使用其餘版本的Gazebo可能須要費一些周折,具體方法可參考:bash

  • Gazebo與ROS版本說明:

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

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

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

一般默認indigo-desktop-full安裝會自動安裝好Gazebo,無需過多考慮。測試

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

1.  關閉虛擬機硬件加速

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

VMware: vmw_ ioctl_command error Invalid argument.code

 

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

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啦!

相關文章
相關標籤/搜索