ubuntu安装ros一定会遇到网络问题,本方法稳定解决。适用于包括18,20等版本的ubuntu
ros的官网在这里可以参考安装kinetic/Installation/Ubuntu - ROS Wikikinetic/Installation/Ubuntu - ROS Wikikinetic/Installation/Ubuntu - ROS Wikihttp://wiki.ros.org/kinetic/Installation/Ubuntukinetic/Installation/Ubuntu - ROS Wikikinetic/Installation/Ubuntu - ROS Wiki自己选版本因为我用的是16.04所以对应的是kinetic这个版本的ros
下面安装开始
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'
2.设置密钥
sudo apt install curl # if you haven't already installed curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
3.更新源
sudo apt-get update
4.安装
sudo apt-get install ros-kinetic-desktop-full
到这里前四步实际上都是按照官网上的操作在走,我建议大家也按照官网上的操作走,因为说不定什么时候源就更新了,老命令不好用了。
5. 下载链接包
链接:https://pan.baidu.com/s/1019ywLqsDGcQdj9sjGBdXw
提取码:5zlv
这个包很重要一会ros初始化不了的网络问题 就是因为定位不了包,我现在直接把包下载过来,你们直接用就行,不需要在连外网了。
解压这个包,然后自己找个地方放一下我一般放在/opt/这个目录下面,目录不强制
解压后目录里头应该有这些东西
6.修改配置文件路径,要改的还挺多
6.1 在opt下创建一个叫20-default.list的文件,目录不强制,自己高兴在哪创建就行
sudo gedit /opt/20-default.list
6.2放入以下代码
# os-specific listings first
yaml file:///opt/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///opt/rosdistro/rosdep/base.yaml
yaml file:///opt/rosdistro/rosdep/python.yaml
yaml file:///opt/rosdistro/rosdep/ruby.yaml
gbpdistro file:///opt/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
注意以上编辑内容中所有/opt/rosdistro/都要改成你自己的路径。可以看到rosdep文件夹在步骤5的截图中可以找到
6.3编辑脚本sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
找到并注释
DEFAULT_SOURCES_LIST_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'
修改为以下,实际上就让系统找刚刚编辑的20-default.list这个脚本的路径
DEFAULT_SOURCES_LIST_URL = 'file:///opt/20-default.list'
6.4 编辑脚本rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
找到并注释
REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
修改为以下,其实还是找刚刚解压出来的包里的东西,自己改成自己的路径
REP3_TARGETS_URL = 'file:///opt/rosdistro/releases/targets.yaml'
6.5 编辑脚本__init__.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
找到并注释
DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
修改为以下,其实还是找刚刚解压出来的包里的东西,自己改成自己的路径
DEFAULT_INDEX_URL = 'file:///opt/rosdistro/index-v4.yaml'
7.到这一步网络问题就算被解决了,开始初始化
rosdep update
8.添加环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
9.安装剩余的依赖
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
10. 然后就可以启动了,第一次启动可以要重复直线步骤8一遍
11.正式开始启动命令,分别开三个终端,每个终端依次输入以下一个命令并执行
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
12.如果出现报错说Permission denied的权限问题
添加权限,命令如下
sudo chmod 777 -R ~/.ros/
再次启动
成功,小乌龟诞生,想移动小乌龟,鼠标必须点击最后一个终端,再按方向键才能操作。