【2022ROS旋律版安装试错】
本章记录ROS系统的安装: 我们可以从 ROS 讲解的视频或书籍中了解更多目前主流的机器人框架平台 ROS(它不是一个真正的操作系统,而是一套类似于各种虚拟机或宿主机上运行的 docker 的环境框架。它的主要功能就是对执行器和传感器之间的消息进行关联和嫁接,从而使复杂的机器通信对接变得简单(可以这么说应该是),这个框架让我们的宿主操作系统能够调用接口来实现接口相关操作)。 <需要注意的是,开源的
本章记录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 桌面:~$
- 安装另一个公钥来验证签名:
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平台的安装。
接下来,后面的小乌龟怎么样~请自行百度!需要安装成功的环境。
未来人工智能之路,你我砥砺前行!
更多推荐
所有评论(0)