2024 无人系统部介绍
嗨,你好啊。欢迎加入 HUAT FSAC 无人系统部👏,在这里开始你的第一步学习吧。
请注意:本教程指南仍在编写阶段,内容随时可能更新。
序
首先介绍一下无人系统部所用的软件与开发平台。我们的软件开发主要基于 Robot Operating System(ROS),你可以把它理解为有着各种工具的工具箱。我们依托于这个“平台”来开发各种各样的功能包,比如视觉的图像处理,对路径的计算与规划等。
由于 ROS 一般运行在 Linux 操作系统上,所以掌握部分 Linux 知识是必须的。在日常代码的编写上我们会使用 Visual Studio Code,当然你也可以使用你熟悉的编辑器/集成开发环境。而在开发语言上 ROS 限定了两种:C++ 与 Python,你也可以按照喜好自由选择。
而在你的学习过程中,我们希望你能自己搜索/了解没听说过的软件和领域,遇到问题时能自己先搜索下报错信息,看到教程指南时也能自己分析是否与所搜寻的相符。最重要的是——对未知的领域保持探索欲与求知欲。
当然我们也非常乐意回答你在学习时提出的问题,只要它们是在你真的努力尝试搜寻答案却仍然无果之后——我们不希望提问被滥用为快速解决问题的“捷径”。
最后,培训不仅仅是完成任务,我们更乐意看到你在不断尝试的过程中学到真东西,而非只是按部就班草草完成了事。
—— NekoRectifier
如果你不怎么习惯用电脑
-
搜索的时候别忘了看一下页面的日期,有时候过时的信息反而会误导你。
-
本文中所说的 “参考”,指的是在不会/不懂的时候可以优先将该链接作为可靠信源,而非强制性的要求全部学完。
1. 基础环境配置
我们先从接触全新的系统环境开始,既然 ROS 运行在 Linux 之上。我们就得先安装一个 Linux 操作系统。
目前与 ROS 兼容性最好的是 Ubuntu 操作系统,你可以自行搜索安装方式。
Ubuntu 操作系统的 LOGO
一般来说有以下几种安装方案:
-
在物理真机上安装 Ubuntu 系统,好处是不会像虚拟机一样有性能损耗
-
在 Windows 上借助 WSL 部署 Ubuntu 系统,好处是方便与现有 Windows 融合度高
-
使用 docker 镜像来部署 Ubuntu,好处是即刻完成
-
在 Android 上跑 proot 环境运行 Ubuntu,…不做推荐
我们对 Ubuntu 系统的部署方式不做限制,但如果你没什么主意💡,你可以参考如下内容。
通过 VMWare Workstation 来部署 Ubuntu 虚拟机,你可以搜索vmware ubuntu 18.04 安装。
以下是几点提示:
- 你可以在这里下载 VMWare 虚拟机最新版本并进行安装
- Ubuntu 系统要求/建议安装为 Ubuntu LTS 18.04,因为这个版本与我们使用的 ROS 版本 (ROS1 Melodic)搭配
- VMWare Workstation 的版本并没有严格要求,16/17/18 都是可以的
1.2 Linux 命令行操作
我们假定你已经成功完成了 Ubuntu 18.06 的安装,下面还要介绍的是它的基础操作。
关于 Linux 基础操作你可以参考Linux 漫游指南 这篇教程。
尽管现代 Linux 操作系统大多都搭配了方便易用的图形界面(如偏向 Mac 风格的 Gnome3 与类似 Windows 的 KDE 等),但便捷的 CLI 指令依然是必不可少的。
我应该在哪里输入命令?
在你已经启动了的 Ubuntu 系统桌面上:
- 按下键盘上的 ctrl 和 alt 和 T 键;
- 按下 windows 键并输入 terminal 最后按回车键;
就会打开 Ubuntu 的命令行窗口,从这里输入你的命令就好。
如果你使用 WSL,那么打开的命令窗口就是 Ubuntu 中的终端。
什么是命令,有哪些,我要怎么学习?
由于能力限制,我们无法在这里直接讲述开发中最常见的 Linux 命令以及该如何学习/使用他们。但我们推荐这份教程。
同时你也可以通过按这样的格式 linux 命令 ls 是什么 进行搜索来解答你在使用命令是产生的疑问。
1.3 Visual Studio Code 安装及其配置
说到集成开发环境(IDE),相信大多数人接触到的都是 Dev C++、Clion(IDEA) 或者 Visual Studio。但你对以上所列举的软件并不熟悉或不怎么上手的话,可以考虑学习一下 Visual Studio Code(下称 VSC)。
VSC 的用户界面图
1.3.1 安装
Windows 安装的过程不多复述,双击 exe 文件并进行安装就好。
至于 dpkg 的安装,你可以搜索 ubuntu 安装 deb 包 来获取相关信息。
完成后,你可以在终端内执行 code
或者在应用列表内找到 VSC 图标来打开它。
1.3.2 配置
参考这篇教程来配置在 VSC 上进行 ROS 开发。
参考这篇教程来配置在 VSC 上进行 C/C++ 开发。
2. 编程语言基础概念
如果你是大一新生,那么你很可能在学习公共课——大学 C 语言。如果你觉得跟上课程内容很容易而且有意思,那么跟着听没问题。
但如果你觉得听不懂/没意思/想拓展,这些有一些书可以帮到你。
-
Essential C++
-
C++ Primer Plus
3. git使用
git 是一个分布式的代码版本控制系统。
通过使用 git 你可以一键将自己的代码回退至任意版本。而且借助 git 的“分支”功能,你可以在不影响主要代码的情况下向代码添加新的功能并测试。
学习并尝试使用 git 进行代码管理。在 HUAT-FSAC 团队开发项目中,用 git 托管代码是必不可少的。
关于 git 的详细教程请参考这个。
4. ROS 架构熟悉
4.1 ROS 介绍
ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。 详情参考
-->4.2 了解 ROS 节点通信
参考以下链接,尝试理解 ROS 节点间是以何种方式实现通信。
[1] https://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes
[2] https://wiki.ros.org/cn/ROS/Tutorials/UnderstandingTopics
[3] https://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29
通过以上学习步骤,你将逐步掌握机器人操作系统ROS的基础知识,为后续的进阶学习奠定坚实基础。实践是提升技能的关键,因此请在学习的同时多进行练习,以加深对所学知识的理解。