安裝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