记录一次Ubuntu 16.04 + ROS kinetic 安装记录
第一次安装各种失败,尝试了卸载后重新安装,成功
第一次用的阿里云源服务器,第二次我直接换成了“中国服务器”,在“系统设置”里面找到“软件与更新”,进行相关的设置。
一 查看Ubuntu版本号:
**
关键代码:
lsb_release -a
**
july@july-ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
二 配置资源库
设置软件源
关键代码:
设置软件源
sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’
设置密钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
july@july-ubuntu:~$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
july@july-ubuntu:~$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Executing: /tmp/tmp.uLY7sHcjhZ/gpg.1.sh --keyserver
hkp://ha.pool.sks-keyservers.net:80
--recv-key
421C365BD9FF1F717815A3895523BAEEB01FA116
gpg: 下载密钥‘B01FA116’,从 hkp 服务器 ha.pool.sks-keyservers.net
gpg: 密钥 B01FA116:“ROS Builder <rosbuild@ros.org>”未改变
gpg: 合计被处理的数量:1
gpg: 未改变:1
三 安装
关键代码:
sudo apt-get update
sudo apt install ros-kinetic-desktop-full
注意:我第二次安装忘记sudo apt-get update,直接下一个代码了,不过我建议按部就班来,我可能是因为第一次安装失败的时候已经更新成最新的版本了,所以第二次忘记update才没有报错的
如果出现如下错误
cW: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
解决办法:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
july@july-ubuntu:~$ sudo apt-get install ros-kinetic-desktop-full
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
blt bzip2-doc cmake cmake-data comerr-dev curl debhelper dh-strip-nondeterminism fltk1.3-doc fluid fonts-lato fonts-lyx freeglut3 freeglut3-dev gazebo7
..............................
此处省略下载过程,建议使用手机热点
..............................
x11proto-scrnsaver-dev x11proto-xext-dev x11proto-xf86vidmode-dev x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
下列软件包将被升级:
libcurl3 libcurl3-gnutls
升级了 2 个软件包,新安装了 833 个软件包,要卸载 0 个软件包,有 63 个软件包未被升级。
需要下载 2,071 kB/490 MB 的归档。
解压缩后会消耗 2,486 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 freeglut3-dev amd64 2.8.1-2 [123 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 liblapack-dev amd64 3.6.0-2ubuntu2 [1,948 kB]
已下载 2,071 kB,耗时 11秒 (181 kB/s)
正在从软件包中解出模板:100%
正在预设定软件包 ...
正在选中未选择的软件包 cmake-data。
(正在读取数据库 ... 系统当前共安装有 190342 个文件和目录。)
正准备解包 .../cmake-data_3.5.1-1ubuntu3_all.deb ...
正在解包 cmake-data (3.5.1-1ubuntu3) ...
正准备解包 .../libcurl3_7.47.0-1ubuntu2.16_amd64.deb ...
正在将 libcurl3:amd64 (7.47.0-1ubuntu2.16) 解包到 (7.47.0-1ubuntu2.15) 上 ...
正在选中未选择的软件包 libjsoncpp1:amd64。
正准备解包 .../libjsoncpp1_1.7.2-1_amd64.deb ...
正在解包 libjsoncpp1:amd64 (1.7.2-1) ...
正在选中未选择的软件包 cmake。
..............................
此处省略下载过程,建议使用手机热点
..............................
正在设置 ros-kinetic-desktop-full (1.3.2-0xenial-20200907-172644+0000) ...
正在处理用于 libc-bin (2.23-0ubuntu11.2) 的触发器 ...
正在处理用于 systemd (229-4ubuntu21.29) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19.1) 的触发器 ...
四 初始化
关键代码:
sudo rosdep init
rosdep update
如果失败出现错误:
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 gedit /etc/hosts
解决办法:古月居
#打开hosts文件在文件末尾添加
151.101.84.133 raw.githubusercontent.com
#保存后退出再尝试
sudo rosdep init
rosdep update
如果再出现错误:
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
解决办法:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
#然后再重新运行命令
sudo rosdep init
july@july-ubuntu:~$ sudo rosdep init
[sudo] july 的密码:
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run
rosdep update
#再执行代码 rosdep update
july@july-ubuntu:~$ rosdep update
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"
Add distro "rolling"
updated cache in /home/july/.ros/rosdep/sources.cache
五 配置环境变量
我第一次安装就是在这里死掉的,嘤嘤嘤
关键代码:
echo “source /opt/ros/melodic/setup.bash” >> ~/.bashrc
source ~/.bashrc
#为了构建和管理开发者自己的ROS工作空间,还需安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
出现问题:
source/opt/ros/kinetic/setup.bash: 没有那个文件或目录
#网上的解决办法一:
#这个可能是因为bashrc有问题,使用
gedit .bashrc
#打开文件,直接找到最后一行,查看拼写错误:
source/opt/ros/kinetic/setup.bash
#source后面没有空格导致source时出了问题,修改回来即可。
#正确的应该是:
source /opt/ros/kinetic/setup.bash
#网上的解决办法二:
参考一篇博客添加链接描述
#主题思想就是进入目标文件上一级目录看一下是不是存在要找的目录
cd opt/ros/kinetic/
ls
#如果没有setup.bash这个文件,执行下面的:
sudo apt-get install ros-kinetic-turtlesim
#安装完之后可以再次进入/opt/ros/kinetic/目录看一下:
#setup.bash就出现了,可以继续测试一下,输入:
source ~/.bashrc
但是上面的两种方法,对我的问题貌似没有用,我 cd opt/ros/kinetic/ 检查发现没有setup.bash这个文件,我又查找它上一级目录cd …,发现我opt下面根本就没有ros这个文件夹,所以我就放弃挣扎,卸载–>重新安装
重新卸载安装的参考博客:添加链接描述
添加链接描述
添加链接描述
正确的如下:
july@july-ubuntu:~$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
july@july-ubuntu:~$ source ~/.bashrc
july@july-ubuntu:~$ sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
build-essential 已经是最新版 (12.1ubuntu2)。
python-rosinstall 已经是最新版 (0.7.8-1)。
python-rosinstall-generator 已经是最新版 (0.1.22-1)。
python-wstool 已经是最新版 (0.1.17-1)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 63 个软件包未被升级。
july@july-ubuntu:~$ roscore
... logging to /home/july/.ros/log/fa074d8c-05eb-11eb-8ecc-04d3b0cb6e3e/roslaunch-july-ubuntu-31123.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://july-ubuntu:44489/
ros_comm version 1.12.16
SUMMARY
========
PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.16
NODES
auto-starting new master
process[master]: started with pid [31134]
ROS_MASTER_URI=http://july-ubuntu:11311/
setting /run_id to fa074d8c-05eb-11eb-8ecc-04d3b0cb6e3e
process[rosout-1]: started with pid [31147]
started core service [/rosout]
六 测试
参考博客添加链接描述