Skip to content

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 操作系统的 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 的用户界面图

VSC 的用户界面图

1.3.1 安装

这里下载 VSC Linux 安装包(deb)
这里下载 VSC Windows(exe)

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 操作

关于 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的基础知识,为后续的进阶学习奠定坚实基础。实践是提升技能的关键,因此请在学习的同时多进行练习,以加深对所学知识的理解。