课程规划#

另见招新要求

课程介绍#

“对牛弹琴”系列课程基于网络已有的学习材料,结合 Robomaster 比赛的真实案例,旨在引导听众认识工程开发流程,了解软件开发规范,应用基础算法。学生完成基础任务和进阶任务后,预期能形成独立学习的能力,应对嵌软算法组开发的不同挑战,掌握维护并更新框架应用的必备技能。

课程准备#

课前请务必点击课程实用链接,阅读相关内容并下载资料。

本课程建议使用 GNU/Linux 工具链,并配合 Visual Studio Code 进行工程开发实践。 利用 Windows Subsystem for Linux 2 平台,安装相关工具链、编辑器和插件的具体步骤,请见环境安装。以下实现方式可作为替代方案:

  • 虚拟机,或完整的 GNU/Linux 发行版。前者需考虑专利软件、性能问题。后者需考虑引导、电脑硬件支持问题。WSL 对完整桌面环境和跨剪贴板支持不完善,无systemd支持。若未安装 ROS 对应的发行版,也可以考虑 Debootstrap (不推荐)或是 Docker 。

  • Docker。在 Windows 中使用仍需安装 WSL 平台。是 macOS 系统(其工具链为 llvm )中实现 ROS 开发最便捷的方案。

  • Minimalist GNU for Windows (MinGW)。部分软件易出现兼容性问题,使用不当易造成环境污染。可使用 scoop / choco / winget 等软件包管理器下载 MinGW 工具链,也可使用 msys2 获得完整的 unix shell 环境并下载 MinGW 工具链。不推荐使用 MinGW Installation Manager 或 MinGW-w64 等渠道下载,因为包安装信息和环境变量(PATH)难以维护。

  • Clion 代替 VSCode 。需注意 Clion 不支持快速配置 WSL 的远程连接,仅能调用其工具链。

课程平台#

课程将以以下形式开展:

  1. 本文档和相关的链接。

  2. 钉钉群聊。将在群聊内进行直播并提供回放,听众可通过群作业提交任务成果,并下载不方便从网上获取的资源。

    想参与招新的同学,请务必加入钉钉群聊并实名。群号请见相关海报,或先加入招新 QQ 群聊。

  3. 邮件列表。作为课程内容或扩展问题的讨论空间。

    邮件列表是 #

    什么是邮件列表?

课程鼓励:遇到问题,敢于发问,勤于思考。

  1. 请首先使用恰当的搜索引擎,搜寻相关关键词,细化问题,去伪求真。

  2. 如果遇到简单的操作问题,无法通过搜索引擎、问答社区答案解决,可以在钉钉群聊内提问。

  3. 如果涉及到某概念知识,或有所分享,请使用邮件列表。

课程安排#

各课程详细内容,见幕布上的软件组培训计划

课程时间安排如下:

  1. 标准与实现

    需在课前掌握流程结构(顺序、分支、循环)、常见数据类型、函数及递归、面向对象的基本概念。最好能熟悉某种编程语言的使用,注意或了解到相应现代标准,如 Python typing , ECMAScript 6+, C11 / C++14 (如智能指针)。

    已于 2022/07/18 上课。

  2. 硬件入门

    需在课前完成开发环境 1 和 2 的安装。开发环境 1 可暂时跳过,或暂时可用 Keil 代替。

    时间待定。

    任务时间待定。

  3. 框架入门( 2 课时)

    需在课前完成开发环境 1 - 3 的安装。

    时间待定。

    任务时间待定。

  4. 持续集成

    需在课前完成开发环境 4 - 5 的安装。

    时间待定。

    任务时间待定。

  5. 信号控制(一)

    需在课前完成开发环境 6 的安装。可使用 Matlab 代替。

    时间待定。

    任务时间待定。

  6. 信号控制(二)

    需在课前完成开发环境 3 的安装。可使用 Matlab 代替。

    时间待定。

    任务时间待定。

  7. 运动控制

    坏了我没想好。这节课将会很枯燥??江湖救急。

    时间待定。

    任务时间待定。