1. 程式人生 > >安裝gym-gazebo遇到的問題及解決方案

安裝gym-gazebo遇到的問題及解決方案

ros: kinetic
gazebo : 7.13
python 3.6

1.建立python3.6環境,這裡我使用的是用Anaconda建立虛擬環境

conda create -n gymgazebo(環境名稱) python=3.6(python版本)

2.安裝Opencv3
方法1: 直接通過conda安裝

conda install -c https://conda.binstar.org/menpo opencv

方法2: 原始碼安裝,參考下列連結

http://cyaninfinite.com/tutorials/installing-opencv-in-ubuntu-for-python-3/

3. 安裝openai gym

方法1:參考我上一篇部落格
mujoco、mujoco_py、gym 和 baselines的環境配置

方法2: 參考github上作者ReadMe
https://github.com/openai/gym

4.安裝gym-gazebo

按照教程安裝 https://github.com/erlerobot/gym-gazebo/blob/master/INSTALL.md#ubuntu-1604

以下為可能出現的問題:
問題1:
msg問題

解決:
開啟 gazebo.repos檔案 ,在裡面新增如下程式碼

  ar_track_alvar:
    type: git
    url: https://github.com/ros-perception/ar_track_alvar.git
    version: kinetic-devel

  mav_comm:
    type: git
    url: https://github.com/ethz-asl/mav_comm.git
    version: master

問題2:

WARNING: Metapackage "ecl_lite" must buildtool_depend on catkin.
WARNING: Metapackage "ecl_lite" should not have other dependencies besides a buildtool_depend on catkin and run_depends.
WARNING: Metapackage "ecl_core" must buildtool_depend on catkin.
WARNING: Metapackage "ecl_core" should not have other dependencies besides a buildtool_depend on catkin and run_depends.
Multiple packages found with the same name "ecl_mobile_robot":
- ecl_core/ecl_mobile_robot
- ecl_navigation/ecl_mobile_robot

解決:https://blog.csdn.net/qq_20989743/article/details/79936639

問題3

/home/hansry/append/anaconda2/envs/gymgazebo/lib/libQt5Test.so.5: undefined reference to 
`QCoreApplication::arguments()@Qt_5'

解決

$ cd /home/hansry/append/anaconda2/envs/gymgazebo/lib/
$ cp libQt5Test.so.5 ~/.
$ sudo rm libQt5Test.so.5
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libQt5Test.so.5  /home/hansry/append/anaconda2/envs/gymgazebo/lib//lib/libQt5Test.so.5
(建立軟連結,可以跨磁碟,硬連結則不可以)

問題4

error: #error This file was generated by a newer version of protoc which is
error This file was generated by a newer version of protoc which 

解決:

由於gazebo是在protocol buffer2.6.1進行編譯的,所以當選擇較高版本的protoc時,可能就會編譯失敗,以上報錯就是選擇了
protocol3.1的時候出現的報錯。但是又不能直接安裝protoc2.6.1 那麼輕鬆,因為protoc2.6.1只依賴於python2.7,但是對於使用
python3.6的就gg了,然而驚奇的發現在protoc3.5.2下,gazebo的程式碼成功編譯了。

conda install protobuf=3.5.2

問題5
python2和python3 不相容的問題

解決

2to3 -w /home/zhw/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/control_toolbox/cfg/Parameters.cfg

2to3 -w /home/zhw/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model

2to3 -w /home/zhw/gym-gazebo/gym_gazebo/envs/installation/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/src/gazebo_ros/gazebo_interface.py