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 版本为例)
- 进入ROS官网的安装界面:http://wiki.ros.org/ROS/Installation
- 选择需要的版本 Kinetic 和系统平台,我们用的是 ubuntu 16.04
- 按照指导进行安装,这里注意要选择安装 ros-kinetic-desktop 版本,不要选 ros-kinetic-desktop-full,前者不包含 Gazebo ,后者包含了 Gazebo 7。后边安装 Gazebo 8 的时候还需要卸载掉,比较麻烦。
- 安装完 ROS 测试一下,在命令行中输入
roscore,看能否正常启动 ros master :
安装过程中可能遇到的问题:
sudo rosdep init 和 rosdep update 这两步报错,提示连接超时。这里应该是网络的问题。
网上大概有如下几种解决方法,可以尝试联用,说不定哪一步就可以解决问题了:
- 换网络,例如用手机开热点。
- 在
/etc/hosts文件中加入raw.githubusercontent.com对应的 IP 地址,例如在文件末尾加入
这个域名对应的 IP 可能会有变化,可以先在网上(例如 whatismyip)查一下。185.199.110.133 raw.githubusercontent.com - 在路径
/usr/lib/python2.7/dist-packages/rosdep2下的sources_list.py,gbpdistro_support.py和rep3.py文件中将DOWNLOAD_TIMEOUT值从 15.0 改大一些,例如 1000000.0
如果上述尝试都不行,可以参考这里 https://blog.csdn.net/ysten618/article/details/109641794,使用https://ghproxy.com/ 代理网站下载 github 上相应的文件。
具体操作就是将下述几个文件中的网址加上代理网站前缀:
-
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
第72行附近
第311行附近,DEFAULT_SOURCES_LIST_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20- default.list'download_rosdep_data()函数内部开头:url="https://ghproxy.com/"+url -
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
第36行附近FUERTE_GBPDISTRO_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/' -
/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' -
/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' -
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py
第68行附近
第119行附近url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/package.xml'url = 'https://ghproxy.com/https://raw.githubusercontent.com/%s/%s/%s'
修改以上文件中的网址,然后再运行 sudo rosdep init 和 rosdep update 这两步就可以了。
安装 Gazebo (以 Gazebo 8 为例)
- 进入 Gazebo 官网的安装指导界面:http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install。
- 在右上角选择要安装的版本,这里选择 Version: 8.0.
- 我喜欢用 step by step 的安装方式。按照指示安装即可。
- 测试。在命令行中输入如下命令,看是否启动 Gazebo 窗口:
gazebo
安装 gazebo_ros_pkgs
前边安装的 ROS 与 Gazebo 是完全独立的两部分,要使他们之间互相通讯,还需要安装 gazebo_ros_pkgs 包。
- 进入官网安装界面:http://gazebosim.org/tutorials?tut=ros_installing
- 按照指导安装即可。我一般选择用 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
就可以解决问题。
- 测试。安装结束,用如下命令测试:
roscore # 启动 ros master
rosrun gazebo_ros gazebo # 用 rosrun 方式启动 Gazebo