本章记录ROS系统的安装:

我们可以从 ROS 讲解的视频或书籍中了解更多目前主流的机器人框架平台 ROS(它不是一个真正的操作系统,而是一套类似于各种虚拟机或宿主机上运行的 docker 的环境框架。它的主要功能就是对执行器和传感器之间的消息进行关联和嫁接,从而使复杂的机器通信对接变得简单(可以这么说应该是),这个框架让我们的宿主操作系统能够调用接口来实现接口相关操作)。

<需要注意的是,开源的ROS框架一般每个稳定版本最长官方维护周期为5年>;

好了,现在最重要的一步就是先安装这个通用的机器框架。去做吧!

本章遵循官方安装教程

“https://wiki.ros.org/noetic/Installation/Ubuntu”

使用 Ubuntu aarch 版本的操作系统。

1.首先,我们需要创建一个文件来读取相关的ros软件源(写有索引软件源地址路径的文件):

顺便说一下,你可以检查这个命令生成的文件。可以看到创建了一个ROS最新的List文件,其中输入了一个条目 http://mirrors.tuna.tsinghua.edu.cn/ 网站的索引信息。我这里使用的网站是中国清华大学的软件源地址。

ubuntu@ubuntu-desktop:~$ sudo sh -c 'sh /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu $(lsb_release -sc)主要" > /etc/apt/sources.list.d/ros-latest.list'

ubuntu@ubuntu-desktop:~$ll /etc/apt/sources.list.d/

cuda-l4t-10-2-local.list ros-latest.list visionworks-sfm-repo.list

nvidia-l4t-apt-source.list visionworks-repo.list visionworks-tracking-repo.list

ubuntu@ubuntu-desktop:~$ cat /etc/apt/sources.list.d/ros-latest.list

deb http://mirrors.ustc.edu.cn/ros/ubuntu 仿生主

1.接下来,添加一个可以授权软件下载的秘钥:

ubuntu@ubuntu-desktop:~$ sudo apt-key adv --keyserver hkp://keyserver. Ubuntu的。 COM: 80 -- 接收密钥 421c365bd9ff1f717815a3895523baeeb01fa116 -- 自定义

gpg:密钥 5523BAEEB01FA116:公钥“ROS Builder rosbuild@ros.org”已导入

gpg:处理的总数:1

gpg:进口:1

ubuntu@ubuntu 桌面:~$

  1. 安装另一个公钥来验证签名:

ubuntu@ubuntu-desktop:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

执行:/tmp/apt-key-gpghome.Xg2moig1B0/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

gpg:密钥 F42ED6FBAB17C654:公钥“Open Robotics info@osrfoundation.org”已导入

gpg:处理的总数:1

gpg:进口:1

ubuntu@ubuntu 桌面:~$

1、由于是刚刚添加的ROS软件的源地址,目前ubuntu系统不包含ROS软件,所以需要更新系统的软件包列表。通过本次更新软件包列表,可以将ROS软件包一起更新到系统软件列表中:也OK

sudo apt-get 更新 && sudo apt-get 升级

1.接下来,安装旋律系统:

安装Rosdep工具(ros依赖包检查工具):

ubuntu@ubuntu-desktop:~$ sudo rosdep init

[sudo] ubuntu 的密码:

sudo:rosdep:找不到命令

ubuntu@ubuntu-desktop:~$ sudo rosdep init

sudo:rosdep:找不到命令

1.这里提示找不到rosdep,所以在网上看到需要安装一个python rosdep:

ubuntu@ubuntu-desktop:~$ sudo apt-get install python-rosdep

阅读包裹清单...完成

构建依赖树

读取状态信息...完成

python-rosdep 已经是最新版本(0.21.0-1)。

以下软件包已自动安装,不再需要:

apt-克隆 archdetect-deb bogl-bterm busybox-静态 cryptsetup-bin dpkg-repack gir1.2-timezonemap-1.0 gir1.2-xkl-1.0

grub-common kde-window-manager kinit kio kpackagetool5 kwayland-data kwin-common kwin-data kwin-x11

libdebian-installer4 libkdecorations2-5v5 libkdecorations2private5v5 libkf5activities5 libkf5attica5

libkf5completion-data libkf5completion5 libkf5declarative-data libkf5declarative5 libkf5doctools5

libkf5globalaccel-data libkf5globalaccel5 libkf5globalaccelprivate5 libkf5idletime5 libkf5jobwidgets-data

libkf5jobwidgets5 libkf5kcmutils-数据 libkf5kcmutils5 libkf5kiocore5 libkf5kiontlm5 libkf5kiowidgets5

libkf5newstuff-data libkf5newstuff5 libkf5newstuffcore5 libkf5package-data libkf5package5 libkf5plasma5

libkf5quickaddons5 libkf5solid5 libkf5solid5-data libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5

libkf5textwidgets-data libkf5textwidgets5 libkf5waylandclient5 libkf5waylandserver5 libkf5xmlgui-bin

libkf5xmlgui-data libkf5xmlgui5 libkscreenlocker5 libkwin4-effect-builtins1 libkwineffects11 libkwinglutils11

libkwinxrenderutils11 libqgsttools-p1 libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediaquick-p5

libqt5multimediawidgets5 libxcb-composite0 libxcb-cursor0 libxcb-damage0 os-prober python3-dbus.mainloop.pyqt5

python3-icu python3-pam python3-pyqt5 python3-pyqt5.qtsvg python3-pyqt5.qtwebkit

qml-module-org-kde-kquickcontrolsaddons qml-module-qtmultimedia qml-module-qtquick2 rdate tasksel tasksel-data

使用“sudo apt autoremove”删除它们。

0 升级,0 新安装,0 删除,0 未升级。

相关Python rosdep安装完成,但是rosdep init的错误信息是什么?读取操作超时

读取超时...

ubuntu@ubuntu-desktop:~$ sudo rosdep init

错误:Rosdep 遇到错误:('读取操作超时',)

请转到 rosdep 页面 [1] 并使用下面的堆栈跟踪提交错误报告。

[1]:http://www.ros.org/wiki/rosdep

rosdep 版本:0.21.0

Traceback(最近一次通话最后一次):

文件“/usr/lib/python2.7/dist-packages/rosdep2/main.py”,第 146 行,在 rosdep_main

退出\代码 u003d \rosdep\main(args)

文件“/usr/lib/python2.7/dist-packages/rosdep2/main.py”,第 441 行,在 _rosdep_main

返回 _no_args_handler(命令、解析器、选项、参数)

文件“/usr/lib/python2.7/dist-packages/rosdep2/main.py”,第 450 行,在 _no_args_handler

返回命令_handlers[命令](options)

文件“/usr/lib/python2.7/dist-packages/rosdep2/main.py”,第 594 行,在 command_init 中

数据 u003d 下载\默认\来源\列表()

文件“/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py”,第 340 行,在下载_default_sources_list

f u003d urlopen(url, timeoutu003dDOWNLOAD_TIMEOUT)

文件“/usr/lib/python2.7/urllib2.py”,第 154 行,在 urlopen

返回 opener.open(网址、数据、超时)

文件“/usr/lib/python2.7/urllib2.py”,第 429 行,打开

响应 u003d self._open(req, 数据)

文件“/usr/lib/python2.7/urllib2.py”,第 447 行,在 _open

'_open',要求)

文件“/usr/lib/python2.7/urllib2.py”,第 407 行,在 _call_chain

结果 u003d 函数(*args)

文件“/usr/lib/python2.7/urllib2.py”,第 1248 行,在 https_open

上下文u003d自我。_上下文)

文件“/usr/lib/python2.7/urllib2.py”,第 1208 行,在 do_open

r u003d h.getresponse(缓冲u003d真)

文件“/usr/lib/python2.7/httplib.py”,第 1178 行,在 getresponse 中

响应.开始()

文件“/usr/lib/python2.7/httplib.py”,第 452 行,开始

版本、状态、原因 u003d self._read_status()

文件“/usr/lib/python2.7/httplib.py”,第 408 行,位于 _read_status

line u003d self.fp.readline(_MAXLINE + 1)

文件“/usr/lib/python2.7/socket.py”,第 480 行,在 readline

数据 u003d self._sock.recv(self._rbufsize)

文件“/usr/lib/python2.7/ssl.py”,第 754 行,在 recv

返回 self.read(buflen)

文件“/usr/lib/python2.7/ssl.py”,第 641 行,正在读取

v u003d self._sslobj.read(len)

SSLError: ('读取操作超时',)

ubuntu@ubuntu 桌面:~$

1.于是我根据里面的错误信息登录官方,按照官方提示重新执行sudo apt get install Python rosdep

然后 sudo rosdep init 又OK了...... 真是一头雾水(后来应该是我所处的环境和网络不好造成的):

ubuntu@ubuntu-desktop:~$ sudo rosdep init

写了 /etc/ros/rosdep/sources.list.d/20-default.list

推荐:请跑

罗斯德更新

ubuntu@ubuntu 桌面:~$

1.这里官方说init命令只需要调用一次,不用太频繁。在下一次 rosdep 更新中

使用ubuntu操作系统时,习惯上在每条命令前加'sudo'来执行命令。不过这里官方提示是不建议sudo运行这个命令。据说授权运行更新会导致部分权限出错,所以直接输入rosdep就可以了

更新:

ubuntu@ubuntu-desktop:~$ rosdep 更新

从 /etc/ros/rosdep/sources.list.d 读取源列表数据

点击 https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml

点击 https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml

点击 https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

点击 https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml

点击 https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml

查询rosdistro索引 https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml

跳过报废发行版“热情”

跳过报废发行版“有弹性”

跳过报废发行版“水晶”

跳过报废发行版“dashing”

跳过报废发行版“雄辩”

添加发行版“foxy”

添加发行版“银河”

跳过报废发行版“groovy”

跳过报废发行版“hydro”

跳过报废发行版“靛蓝”

跳过报废发行版“jade”

跳过报废发行版“动力学”

跳过报废发行版“lunar”

添加发行版“旋律”

添加发行版“noetic”

添加发行版“滚动”

更新了 /home/ubuntu/.ros/rosdep/sources.cache 中的缓存

可以看到已经更新了sources缓存文件(*请注意!请注意!本次更新成功之前,笔者测试了2天。为什么?为什么启动更新失败,告诉我什么超时?什么我在想的是MMP,你可以用你当前的浏览器,一个一个加载20个默认列表文件中的几个yaml链接文件,看看下面的图片内容是否可以正常加载,如果可以,执行rosdep update,有小概率出错。如果网页加载不出来~咳咳。。作者建议你找个网速比较快的地方,更新后带走。。。我去公司才更新这个使用企业带宽)。

1、接下来,在本地bashrc文件中添加如下环境变量:

ubuntu@ubuntu-desktop:~$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

ubuntu@ubuntu-desktop:~$ tail -n 1 .bashrc

源 /opt/ros/melodic/setup.bash

ubuntu@ubuntu 桌面:~$

1.在我的最后一行中,我已经添加了环境变量,然后使用source ~/bashrc 刷新了bashrc 文件。

安装相关python依赖包:再次初始化python rosdep

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

ubuntu@ubuntu-desktop:~$ sudo apt install python-rosdep --可以说这一步纯属画蛇添足,因为上面已经实现了。

[sudo] ubuntu 的密码:

阅读包裹清单...完成

构建依赖树

读取状态信息...完成

python-rosdep 已经是最新版本(0.21.0-1)。

0 个已升级,0 个新安装,0 个要删除,10 个未升级。

ubuntu@ubuntu 桌面:~$

1、然后,因为我安装完成后执行roscore,并没有这个命令,但是有一个rosco命令。应该是环境变量没有刷成功。我直接给sudo

reboot 重启主机......(是的,所有问题都可以通过重启来解决)重启后会有roscore:

ubuntu@ubuntu-desktop:~$roscore

...记录到/home/ubuntu/.ros/log/c066cf20-856b-11ec-9508-82771950a190/roslaunch-ubuntu-desktop-8154.log

检查日志目录以了解磁盘使用情况。可能还要等一下。

按 Ctrl-C 中断

完成检查日志文件磁盘使用情况。使用量 <1GB。

启动 roslaunch 服务器 http://ubuntu-desktop:43551/

ros_comm 版本 1.14.12

总结

u003du003du003du003du003du003du003du003d

参数

* /rosdistro:旋律

* /ros版本:1.14.12

节点

自动启动新主机

进程[master]:以 pid [8164] 开始

ROS_MASTER_URIu003dhttp://ubuntu-desktop:11311/

将 /run_id 设置为 c066cf20-856b-11ec-9508-82771950a190

进程[rosout-1]:以 pid [8177] 开始

启动核心服务[/rosout]

好的!作者在每一步的步骤中都标上了序号,总共大概11个步骤就可以完成ros平台的安装。

接下来,后面的小乌龟怎么样~请自行百度!需要安装成功的环境。

未来人工智能之路,你我砥砺前行!

Logo

Ubuntu 社区为您提供最前沿的新闻资讯和知识内容

更多推荐