跳转到内容

导论

分割万物

兵者,诡道也。

现代工业设备和零售电子产品主要的发展方向是:让其变得更像人,或者更能理解人类。人类作为生物,收集周围环境的方式中,眼睛所看到的信息是最主要的;让自己在自然环境中生存下去,思考收集到信息的能力是最重要的。人类作为生物是有极限的,因此我们发动了人所独有的改造世界的能力,将无机物质改造为替代我们进行劳动的工具,来解放我们的劳动。本组需要研究的是这些工具的两个部分:摄像机等传感器的数据处理,以及根据这些传感器做出决策的计算方法。

依笔者所见,当前世界生产力的发展必然要求我们的生产工具要代替更多先前只能由人类完成的工作,但已有的生产工具在形态、技术上进行迭代的经济效益阻力依然很大,因此将机器赋予人的智能来操作机器而不是将已有机器升级的需求是必然的,RMUL、RMUC中的哨兵这类考验依据环境情况自主行动的兵种在各类机器人比赛中是很少见的,但与目前的行业发展有很大接轨。

在RM比赛中,规则无禁止皆可为,例如为普通步兵/英雄机器人添加自瞄、弹道计算功能等。


我们现在以RM比赛作为我们学习掌握相关技能的机会,以下列表介绍我们需要的工具以及考核前的学习目标。这些教程是零散的,但对于学习一个单独的技能或软件来说足够。培训的目的是了解将各个部分之间的关联方式,真正将他们合起来使用。

这个话其实有点问题,因为现在有些软件已经是全部大语言模型生成了……

本知识库文章会对各个部分之间的衔接处和难点作补充性的讲解,同时将实操时遇到的问题尽可能多地补充完整。因此,至于各个技能的细节掌握,靠一周一次的培训当然是杯水车薪,请各位在闲暇时多看多练习。

  1. Visual Studio Code,宇宙最强文本编辑器,用来编写我们的源代码

https://code.visualstudio.com/

  1. 解决网络问题(见下一篇文章)(极度关键,打开下述某些网站的必要技能)

  2. Markdown 基本语法,用于传递笔记和软件自述文档

https://www.bilibili.com/video/BV1bK4y1i7BY

  1. CLI(命令行界面)的使用方法

https://www.bilibili.com/video/BV1Nx4y147n3

  1. Linux,一类操作系统,用它来开发程序的体验比 Windows 好得多,我们可以用 Ubuntu 发行版来学习它的基本操作方法(包括远程操作方法)

https://101.lug.ustc.edu.cn/

  1. (可选)Windows Subsystem for Linux,WSL,在 Windows 系统中安装使用 Linux 系统的一种好方法

https://www.bilibili.com/video/BV1cq421w72c

  1. C++,一种编程语言,可以用VSCode来编写开发,我们需要学习它的语法来开发具体的软件

https://learncpp-chinese.github.io/introduction-to-these-tutorials.html

  1. Python,一种编程语言,可以用VSCode来编写开发,语法比C++简单,是解释型语言,用它来编写原型再用C++重写会更方便

https://liaoxuefeng.com/books/python/introduction/index.html

  1. uv,Python 代码包及 Python 版本管理工具

https://www.bilibili.com/video/BV1Stwfe1E7s

  1. GCC/Clang 编译器工具链,用于将我们用 C++ 写的源代码编译为可以直接运行的程序

https://zhuanlan.zhihu.com/p/1889846272816566639

  1. CMake,一种编译构建工具,当你的一个项目中需要编译的代码文件很多时,它能帮上很大的忙

虽然 CMake 依然是目前 C/C++ 项目构建的事实标准,但在包管理和构建配置上,它还是太过繁重。目前 SR 的大部分项目正在向 XMake 迁移,请参考OpenCV 库与计算机视觉一文或者 XMake 文档 学习使用 XMake。

https://xmake.io

https://cmake.org/

  1. Git,一种代码版本管理工具,可以分布式管理备份你的代码

https://git-scm.com/

  1. OpenCV,开源的计算机视觉工具库,提供C++/Python版本(及其使用方法)

  2. ultralytics/YOLO 系列图像识别人工智能算法的训练与使用方法

  3. (可选)自由软件、开源软件、专有软件的区别与源代码发行许可证(如GPL许可证)是什么

  1. 计算机的组成部件(最好知道如何装机)

  2. 系统安装介质(如U盘)的制作方法

  3. 电子相机的构成部件、原理、参数的测量和使用方法

  4. 高算力计算机与嵌入式控制板的连线、通信方法

  5. 计算机上各类输入输出接口(如USB)的区别与使用方法


在了解以上内容后,你应当能够使用所学知识在你电脑中养一只自动行进探索环境的虚拟生物,或是控制机器人/游戏角色按照特定决策方式自主行动。

高智能 AI Vtuber NeuroSama

或者,你甚至可以写出一份CSGO等FPS游戏的视觉AI外挂(如果你不怕被封号和网暴的话)。

自动瞄准示意