Ubuntu16.04 安装ROS 过程中遇到的问题

本文详细记录了在Ubuntu16.04上安装ROS Kinetic的过程及遇到的各种错误解决方案,包括设置安装源、解决依赖问题、配置镜像源等步骤。

操作系统:Ubuntu16.04
ROS版本:Kinetic

纯入门,安装过程错误百出,几乎是一步一个报错,每执行一个命令就要各种查找解决方法,终于用一个下午加晚上的时间,看到了会划线的小龟。

计划将安装过程包括各种错误记录下来,仅作为学习笔记,文中肯定有不足之处,看不懂也正常,我自己就是一知半解的搜着教程才安装成功的。本来想着不关终端,保留所有执行记录,结果有部分执行操作被顶掉,终端还被我执行完小龟一激动关了,截取下来的部分问题和解决方法如下,第一次记录多有不足。

如果文章能有所帮助,实属万幸

1.设置安装源

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-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 3.更新Ubuntu软件包列表

国内镜像源选择一个即可,先开始中科大、清华、阿里云的镜像源全部启用了,结果更新巨慢还出错,最后把其他都禁用,只留下了中科大的镜像源。

 4.安装ROS

  • 执行如下指令:
sudo apt-get install ros-kinetic-desktop-full

从这一步开始,错误不断,

xin@ubuntu:~$ sudo apt-get install ros-kinetic-desktop-full
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 libalgorithm-merge-perl : 依赖: libalgorithm-diff-perl 但是它将不会被安装
 monodoc-manual : 依赖: monodoc-browser 但是它将不会被安装 或
                          monodoc-http 但是它将不会被安装 或
                          monodoc-viewer
 perl-modules-5.22 : 冲突: perl-modules
                     冲突: perl-modules:i386
 ros-kinetic-desktop-full : 依赖: ros-kinetic-desktop 但是它将不会被安装
                            依赖: ros-kinetic-perception 但是它将不会被安装
                            依赖: ros-kinetic-simulators 但是它将不会被安装
                            依赖: ros-kinetic-urdf-tutorial 但是它将不会被安装
E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。

 

xin@ubuntu:~$ sudo apt-get install ros-kinetic-desktop 但是它将不会被安装
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
E: 无法定位软件包 但是它将不会被安装
xin@ubuntu:~$                             依赖: ros-kinetic-perception 但是它将 不会被安装
依赖::未找到命令
xin@ubuntu:~$                             依赖: ros-kinetic-simulators 但是它将 不会被安装
依赖::未找到命令
xin@ubuntu:~$                             依赖: ros-kinetic-urdf-tutorial 但是它将不会被安装
依赖::未找到命令

解决此问题采用了ROS论坛中 问题Cannot install kinetic (unmet dependencies) 回答中vikas的方法 ,重新配置镜像源,发现可行。

重新配置镜像源后才可以往下进行。

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
  • Now, follow these steps from 1.2 in this link

5.初始化rosdep

又出现了如下错误:

xin@ubuntu:~$ sudo rosdep init
sudo: rosdep:找不到命令
xin@ubuntu:~$ sudo apt-get install ros-kinetic-desktop-full
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  linux-headers-4.13.0-36 linux-headers-4.13.0-36-generic linux-image-4.13.0-36-generic
  linux-image-extra-4.13.0-36-generic
使用'sudo apt autoremove'来卸载它(它们)。

#开始解包

重复执行命令,出现提示

xin@ubuntu:~$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

 按照提示添加源,执行如下命令,发现可行,但此句命令作用不太了解

sudo sh -c 'echo "deb https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list" > /etc/apt/sources.list.d/ros-latest.list'

通过文章sudo rosdep init报错的解决方式,解决了init报错问题

执行如下命令:

sudo gedit /etc/hosts

在最下面添加:

199.232.68.133 raw.githubusercontent.com

6.执行rosdep update

rosdep update报错

ERROR : error loading sources list :('The read operation timed out',),更换手机热点重复试验还是报错;

按更换域名,出现如下错误:

xin@ubuntu:~$ sudo  apt-get update
E: 文件 list 第 1 行的记录格式有误 /etc/apt/sources.list.d/ros-latest.list (Suite)
E: 无法读取源列表。

 执行如下解决:

xin@ubuntu:/$ sudo rm /etc/apt/sources.list.d/ros-latest.list

 再重新执行,加上了sudo结果提示不建议用sudo,按提示执行推荐的命令。

xin@ubuntu:~$ sudo rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Warning: running 'rosdep update' as root is not recommended.
  You should run 'sudo rosdep fix-permissions' and invoke 'rosdep update' again without sudo.

按照提示,执行命令:sudo rosdep fix-permissions 

xin@ubuntu:~$ sudo rosdep fix-permissions
Recursively changing ownership of ros home directory '/home/xin/.ros' to 'xin:xin' (current user)...
Done.

 最后多次执行 rosdep update

xin@ubuntu:~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: error loading sources list:
	('The read operation timed out',)

多试几次,WiFi下试,手机热点下试,通过。

7.添加ros环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

8.安装rosinstall

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

9.新问题:

xin@ubuntu:~$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
E: 文件 list 第 1 行的记录格式有误 /etc/apt/sources.list.d/ros-latest.list (Suite)
E: 无法读取源列表。
E: 文件 list 第 1 行的记录格式有误 /etc/apt/sources.list.d/ros-latest.list (Suite)
E: 无法读取源列表。

应该是第5步(按照提示添加源)造成的,执行如下命令解决:

xin@ubuntu:/$ sudo rm /etc/apt/sources.list.d/ros-latest.list

ROS中控制小乌龟移动(需要打开3个终端)

先在终端执行命令 ,开启ros,

score

再开一个终端执行,出现小龟,但是不会动,

rosrun turtlesim turtlesim_node

再再打开一个终端执行命令,并且这条指令位于最前,小龟才会动

rosrun turtlesim turtle_teleop_key

另外错误:

运行rosrun turtlesim turtlesim_node时
报出以下错误时

[ERROR] [1571614395.918484166]: [registerPublisher] Failed to contact master at [localhost:11311]

是因为没有开启ros服务。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值