特定版本 ROS + Gazebo 安装

2023.01.10 更新
安装 ROS 建议用小鱼的一键安装工具
https://github.com/fishros/install
==========================

在项目中可能会遇到 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 地址,例如在文件末尾加入
    185.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行附近, download_rosdep_data() 函数内部开头:
    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 安装)