一、前期准备工作
1、修改ubuntu镜像源
在安装好ubuntu16.04后,我们需要将系统默认的软件源改成其它软件源。这里是将软件源改为清华镜像源
进入这个网站后,它会提示你如何修改,这里将步骤写了下来:
第一步:先备份原来source.list的内容
sudo cp /etc/apt/sources .list /etc/apt/sources_copy_default.list
第二步:sources.list文件的可写权限
cd /etc/apt
sudo chmod 777 sources.list
第三步:将清华镜像源给的内容复制进去
gedit sources.list //用gedit打开,将内容粘贴进去即可
第四步:更新
sudo apt-get update
2、添加谷歌服务器
sudo gedit /etc/resolv.conf
将原来的nameserver注释掉,将下面的内容添加进去
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
保存并退出,然后执行以下命令
sudo apt-get update
前期的准备工作就做好了,接下来就可以按照官方教程先走一波~
二、安装ROS Kinetic
1、添加ROS软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'122
2、添加密钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
3、更新软件包
sudo apt-get upgrade -y
4、更新结束后,开始安装ROS Kinetic(完整包版本)
sudo apt-get install ros-kinetic-desktop-full
PS:安装结束后,可以根据个人需求按照下面步骤安装ROS其它的功能包
4.1、安装ROS功能包
(1)查询所有的ROS功能包
apt-cache search ros-kinetic
(2)安装指定的功能包
sudo apt-get install ros-kinetic-[功能包名称]
5、初始化rosdep(这一步非常关键,虽然简单,但是一定要仔细看好每一步!!)
(1) 初始化rosdep
sudo rosdep init
很多人会在这一步提示无法下载,原因是因为需要翻墙下载资料,我们可以通过下载到本地的方式完成初始化步骤。方法如下
第一步:git clone命令将raw.githubusercontent.com内的yaml文件下载下来
git clone https://github.com/ros/rosdistro
第二步:在/etc下新建一个ros目录,然后将上一步下载下来的名称为rosdistro的文件夹复制进去
sudo mkdir -p /etc/ros
sudo mv [这里是rosdistro的下载路径] /etc/ros
第三步:修改rosdistro包中rosdep/source.list.d/下的文件20-default.list,然后将文件内所有的下载地址都指向本地文件的地址。修改效果如下:
# os-specific listings first
yaml file:///etc/ros/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///etc/ros/rosdistro/rosdep/base.yaml
yaml file:///etc/ros/rosdistro/rosdep/python.yaml
yaml file:///etc/ros/rosdistro/rosdep/ruby.yaml
gbpdistro file:///etc/ros/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
看仔细,上面的file:后面的内容都是表示本地文件的地址,我们可以根据上面路径依次查找到base.yaml python.yaml ruby.yaml 等文件
第四步:完成上面的步骤后,我们还需要修改这两个路径下的.py文件里面的代码,其实也就是修改代码将其指向本地文件地址。在修改之前,一定要先修改这几个.py文件的可写权限。用chmod命令,具体可以自行百度一下关于chmod的使用方法。
(1)修改/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
# location of targets file for processing gbpdistro files
REP3_TARGETS_URL = 'file:///etc/ros/rosdistro/releases/targets.yaml'
(2)修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
# index information
DEFAULT_INDEX_URL = 'file:///etc/ros/rosdistro/index-v4.yaml'
第四步:修改完成后再次执行初始化,系统若提示你进执行rosdep update命令,那么恭喜你,已经成功完成了上面的修改步骤,如果仍然提示你无法下载,那一定是你的路径下载出现错误,返回上面的步骤仔细修改即可。如果你想具体了解修改的原因,可以参考一下这个大佬的博客,解释的很详细。
第五步:执行rosdep update
rosdep update
当出现以下内容时,说明你已经成功安装好ROS系统了!
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Add distro "dashing"
Add distro "eloquent"
Add distro "foxy"
Skip end-of-life distro "groovy"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Add distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
updated cache in /home/gcx/.ros/rosdep/sources.cache
然后继续执行以下命令完成安装:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6、验证
执行以下命令可验证是否安装成功:
打开终端,执行:
roscore
再打开一个终端,执行:
rosrun turtlesim turtlesim_node
这时会出现小海龟的界面。接着再打开一个终端,执行:
rosrun turtlesim turtle_teleop_key
使用键盘上的方向键可以控制小海龟的运动。至此,你已经成功安装好ROS Kinetic!