美文网首页
特定版本 ROS + Gazebo 安装

特定版本 ROS + Gazebo 安装

作者: OurNote | 来源:发表于2019-01-14 12:01 被阅读0次

    在项目中可能会遇到 ROS 与 Gazebo 版本特别指定的问题。例如我们当前项目中就要求 ROS 用 Kinetic 版本, Gazebo 用 8.0 版本。在 ROS 的 desktop-full 安装中是附带了 Gazebo 的,但是版本为 7.0。在这种情况下就要采用 ROS , Gazebo 分开安装的方式。

    安装 ROS (以 Kinetic 版本为例)

    1. 进入ROS官网的安装界面:http://wiki.ros.org/ROS/Installation
    2. 选择需要的版本 Kinetic 和系统平台,我们用的是 ubuntu 16.04
    3. 按照指导进行安装,这里注意要选择安装 ros-kinetic-desktop 版本,不要选 ros-kinetic-desktop-full,前者不包含 Gazebo ,后者包含了 Gazebo 7。后边安装 Gazebo 8 的时候还需要卸载掉,比较麻烦。
    4. 安装完 ROS 测试一下,在命令行中输入roscore,看能否正常启动 ros master :

    安装过程中可能遇到的问题:
    sudo rosdep initrosdep update 这两步报错,提示连接超时。这里应该是网络的问题。
    网上大概有如下几种解决方法,可以尝试联用,说不定哪一步就可以解决问题了:

    • 换网络,例如用手机开热点。
    • /etc/hosts 文件中加入 raw.githubusercontent.com 对应的 IP 地址,例如在文件末尾加入
      1185.199.110.133  raw.githubusercontent.com  
      
      这个域名对应的 IP 可能会有变化,可以先在网上(例如 whatismyip)查一下。
    • 在路径 /usr/lib/python2.7/dist-packages/rosdep2 下的 sources_list.pygbpdistro_support.pyrep3.py 文件中将 DOWNLOAD_TIMEOUT 值从 15.0 改大一些,例如 1000000.0

    如果上述尝试都不行,可以参考这里 https://blog.csdn.net/ysten618/article/details/109641794,使用https://ghproxy.com/ 代理网站下载 github 上相应的文件。

    具体操作就是将下述几个文件中的网址加上代理网站前缀:

    1. /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
      第72行改为
      DEFAULT_SOURCES_LIST_URL = 
      'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20- 
      default.list'
      
      第311行加一句
      url="https://ghproxy.com/"+url
      
    2. /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
      第36行改为
      FUERTE_GBPDISTRO_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/'
      
    3. /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
      第39行改为
      REP3_TARGETS_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
      
    4. /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
      第68行改为
      DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
      
    5. /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
      第68行改为
      url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/package.xml'
      
      第119行改为
      url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/%s'
      

    修改以上文件中的网址,然后再运行 sudo rosdep initrosdep update 这两步就可以了。

    安装 Gazebo (以 Gazebo 8 为例)

    1. 进入 Gazebo 官网的安装指导界面:http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install
    2. 在右上角选择要安装的版本,这里选择 Version: 8.0.
    3. 我喜欢用 step by step 的安装方式。按照指示安装即可。
    4. 测试。在命令行中输入如下命令,看是否启动 Gazebo 窗口:
    gazebo
    

    安装 gazebo_ros_pkgs

    前边安装的 ROS 与 Gazebo 是完全独立的两部分,要使他们之间互相通讯,还需要安装 gazebo_ros_pkgs 包。

    1. 进入官网安装界面:http://gazebosim.org/tutorials?tut=ros_installing
    2. 按照指导安装即可。我一般选择用 A: Install Pre-Built Debians 方式安装。需要注意的是,如果用如下命令安装报错:
    sudo apt-get install ros-kinetic-gazebo-ros-pkgs ros-kinetic-gazebo-ros-control
    

    则需要指明 Gazebo 版本,将命令改为:

    sudo apt-get install ros-kinetic-gazebo8-ros-pkgs ros-kinetic-gazebo8-ros-control
    

    就可以解决问题。

    1. 测试。安装结束,用如下命令测试:
    roscore  # 启动 ros master
    rosrun gazebo_ros gazebo  # 用 rosrun 方式启动 Gazebo
    

    相关文章

      网友评论

          本文标题:特定版本 ROS + Gazebo 安装

          本文链接:https://www.haomeiwen.com/subject/fnsddqtx.html