操作系统: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服务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)