Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说室内导航--机器视觉、ROS、Goseek(三)ROS Noetic Ninjemys 准备「建议收藏」,希望能够帮助你!!!。
在上一章中,简单介绍了使用 Ubuntu 20.04 LTS Desktop 的原因,以及如何简单安装的问题。在这一章将会介绍 ROS Noetic Ninjemys 。
如果不知道 ROS 是什么,或者没有用过 ROS 的,建议先去了解和学习一下 ROS。
在 ROS 的 官方网站 的 About 板块中对 ROS 有一个非常详细的介绍,建议将其全部阅读。
简单来说:ROS
(Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件
。它提供了硬件抽象
、设备驱动
、库函数
、可视化
、消息传递
和软件包管理
等诸多功能。ROS遵守BSD开源许可协议。
上面文字的描述可能有些苍白,相信读者通过 ROS 的官方介绍会对齐有一个比较全面的认识。
但 ROS 如何使用呢?这里介绍一个 ROS 学习视频 给读者参考学习。这是 B 站的一个视频,原教学视频是中科院软件所在中国大学MOOC平台发布的一门 机器人操作系统入门 课程。
相信以上的学习会给读者带来一个新的世界,迫不及待地想通过编程夯实一下自己的学习成功,建议教学视频多看几遍(不同的时段:蒙昧,入门,掌握)!
为什么选择 Noetic
版本呢?最重要的原因是它支持 Python3
开发,往回旧的版本都只是支持 Python2。
使用 Python3 开发会带来很多很多便利,而使用 Python2 开发会有很多阻碍,需要花费更多的时间解决 Python 模块适配问题。
还有一个原因就是它是支持 R1
的最后一个版本,对我来说比较熟悉,因为我很早以前便使用过 R1 版本的 ROS,不需要再花费过多的学习成本。
最新的 ROS Foxy Fitzroy 支持的是 R2,使用上会有一些不一样,感兴趣的读者可以自行去学习。
对于 ROS 的安装,ROS 官网都会给出非常详细的安装的步骤,根据步骤来即可。
ROS Noetic Ninjemys 的安装 ROS 也提供了 详细的安装步骤,这里不再进行详细叙述。
提醒:
英文不好的读者更要沉住气阅读,慢慢来,必须要养成阅读英文文档的习惯!
注意:
安装的是 Desktop 桌面版本
,最好还是安装完整的桌面版,以防日后需要再次安装依赖包。
按照官方的步骤来是不会出现太大的问题,如果 下载速度较慢
,那需要 科学上网
。
在最后,执行 ROS 初始化的命令时,也许会大概率出现域名被污染的问题。
sudo rosdep init
rosdep update
类似于:
xxx@xxx:~$ 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.
解决方法:
在 hosts 文件中指定 raw.githubusercontent.com 的 ip 地址。
185.199.108.133
。sudo gedit /etc/hosts
。185.199.108.133 raw.githubusercontent.com
添加到最后一行,保持退出即可。如果报:下载的 20-default.list
(类似)出现问题,找到其所在位置并 删除
,重新执行 sudo rosdep init
下载即可。
当走完 ROS 官方安装教程后,在终端执行 roscore
,出现以下类似情况,恭喜你,你已经成功安装了 ROS Noetic Ninjemys。
xxx@xxx:~$ roscore
... logging to /home/liangda/.ros/log/f1ae7f4e-c6a1-11eb-a338-0dd7d7a37778/roslaunch-liangda-ubuntu-39061.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://liangda-ubuntu:41895/
ros_comm version 1.15.9
SUMMARY
========
PARAMETERS
* /rosdistro: noetic
* /rosversion: 1.15.9
NODES
auto-starting new master
process[master]: started with pid [39084]
ROS_MASTER_URI=http://liangda-ubuntu:11311/
setting /run_id to f1ae7f4e-c6a1-11eb-a338-0dd7d7a37778
process[rosout-1]: started with pid [39094]
started core service [/rosout]