简历技术栈全面复习总结

一、总目录

整个技术栈,本质上可以分成 8 层

复制代码
                         机器人软件工程
                               │
       ┌───────────────────────┼───────────────────────┐
       ↓                       ↓                       ↓
   ① 编程基础              ② Linux/构建              ③ 通信
       │                       │                       │
   C++ / Python            Linux / CMake           UDP/TCP/CAN
   OOP / RAII              CTest / Git             ZMQ/Protobuf
   多线程 / 锁              SSH / systemd
   设计模式
       │
       └───────────────────────┬───────────────────────┘
                               ↓
                    ④ 机器人软件中间层
                               │
                            ROS2
                               │
                    ros2_control / Controller
                               │
                               ↓
                    ⑤ 机器人实时控制
                               │
                     Hardware Interface
                               │
                       EthercatDriver
                               │
                         IgH Master
                               │
                        CiA402 / CSP
                               │
                               ↓
                         电机 / 编码器
                               │
                               ↓
                    ⑥ 动捕 / 运动控制
                               │
                  MotionInput / GMR / WBC
                               │
                        MuJoCo验证
                               │
                               ↓
                    ⑦ 测试与工程化
                               │
             pytest / Flask-SocketIO / SQLite
                               │
                    日志 / 报告 / SSH
                               │
                               ↓
                    ⑧ 部署与交付
                               │
                  PyInstaller / Ubuntu
                  SOP / 验收 / 故障排查

二、① 编程基础层

这是所有上层技术的基础。

C++

复制代码
C++17
 │
 ├── OOP
 │    ├── 类
 │    ├── 封装
 │    ├── 继承
 │    └── 多态
 │
 ├── Interface / Abstract Class
 │
 ├── RAII
 │
 ├── 智能指针
 │    ├── unique_ptr
 │    ├── shared_ptr
 │    └── weak_ptr
 │
 ├── 异常
 │
 ├── 生命周期
 │
 └── 并发
      ├── Thread
      ├── Mutex
      ├── Condition Variable
      ├── Queue
      └── Backpressure

然后再往上:

复制代码
设计模式
 │
 ├── Strategy
 ├── Adapter
 ├── Factory
 └── Observer

你已经不应该把这些看成独立知识点。

应该理解成:

C++负责把机器人软件组织成可靠、可扩展、可并发运行的程序。


三、② Linux + 构建系统

这是你的机器人软件真正运行的环境。

复制代码
Linux
 │
 ├── 文件系统
 ├── 权限
 ├── 用户
 ├── 环境变量
 ├── Bash
 ├── Process
 ├── Thread
 ├── PID
 ├── Signal
 ├── Pipe
 ├── Socket
 ├── File Descriptor
 ├── Log
 ├── SSH
 └── systemd

然后:

复制代码
Linux
  ↓
gcc / g++
  ↓
CMake
  ↓
编译
  ↓
Executable / Library
  ↓
CTest
  ↓
测试
  ↓
部署

所以你以后看到:

复制代码
CMakeLists.txt

不要只想到:

"这是编译配置文件。"

而应该想到:

复制代码
项目组织
 ↓
依赖管理
 ↓
编译
 ↓
测试
 ↓
安装
 ↓
部署

四、③ 通信层

可以分成:

复制代码
                 通信
                   │
       ┌───────────┼───────────┐
       ↓           ↓           ↓
      UDP          TCP         CAN
       │           │           │
       └───────────┼───────────┘
                   ↓
                  ZMQ
                   ↓
               Protobuf

但是要注意:

它们不是同一个层次。

UDP/TCP/CAN

属于:

底层通信/传输机制。

ZMQ

属于:

消息通信框架/通信模型。

Protobuf

属于:

数据序列化/消息格式。

所以:

复制代码
MotionFrame
    ↓
Protobuf
    ↓
ZMQ
    ↓
TCP/UDP
    ↓
Socket
    ↓
Linux

这个结构你应该已经熟悉。


五、UDP

不是只记:

复制代码
socket
bind
recvfrom
sendto

而是:

复制代码
UDP
 │
 ├── IP
 ├── Port
 ├── Datagram
 │
 ├── 丢包
 ├── 乱序
 ├── 重复
 ├── 超时
 ├── 心跳
 └── Frame ID

再往你的项目连接:

复制代码
双路UDP
   ↓
帧号
   ↓
窗口重排
   ↓
跨路合并
   ↓
去重
   ↓
共同缺口判断
   ↓
完整MotionFrame

你简历中确实把双路容错、帧号重排、跨路合并去重以及 280,586 帧测试写进了项目。


六、④ ROS2层

ROS2不要再拆成一堆孤立概念。

你已经学过:

复制代码
Node
Topic
Service
Action
Launch
Parameter
TF
URDF
RViz2
Gazebo
Controller Manager
ros2_control

现在应该把它们放进:

复制代码
ROS2
 │
 ├── Application
 │
 ├── Controller
 │
 ├── Hardware Interface
 │
 └── Communication

你真正需要记住的工程链:

复制代码
上层应用
   ↓
ROS2
   ↓
Controller
   ↓
Hardware Interface
   ↓
具体硬件

七、⑤ EtherCAT实时控制层

这是你简历的核心技术之一。

总结构:

复制代码
ROS2 Controller
       ↓
Hardware Interface
       ↓
EthercatDriver
       ↓
IgH Master
       ↓
EtherCAT
       ↓
Slave / Drive
       ↓
CiA402
       ↓
Motor

其中:

IgH

复制代码
Master
Domain
PDO
SDO
Process Data
Cyclic Task

EtherCAT

复制代码
Master
Slave
ESI
PDO
SDO
DC
AL State

CiA402

复制代码
Shutdown
   ↓
Switch On
   ↓
Enable Operation

运动模式:

复制代码
CSP
 ↓
Target Position
 ↓
Motor
 ↓
Actual Position

这三个东西不要混:

复制代码
EtherCAT
→ 网络

IgH
→ Linux Master实现

CiA402
→ 驱动器控制规范

八、⑥ 动捕 + 运动控制层

这是你现在机器人方向最有特色的一层。

复制代码
动捕设备
 │
 ├── Xsens
 ├── Axis
 ├── Noitom
 └── PNLink
       ↓
MotionInput
       ↓
MotionFrame
       ↓
GMR
       ↓
Retargeting
       ↓
Robot Joint Targets
       ↓
ROS2

这里的核心软件架构:

复制代码
MotionInput
    ↑
 ┌──┼───────────┐
 │  │           │
Xsens Axis    Noitom

再配:

复制代码
Factory
Strategy
Adapter
Observer

形成完整的多源输入框架。


九、GMR之后连接到什么?

你不要把 GMR 当成孤立算法。

应该记成:

复制代码
Human Motion
     ↓
Motion Capture
     ↓
MotionFrame
     ↓
GMR / Retargeting
     ↓
Robot Joint Target
     ↓
Controller
     ↓
Hardware

也就是说:

GMR负责"人体动作 → 机器人动作"。

而:

ROS2 + ros2_control + EtherCAT负责"机器人动作 → 电机执行"。

这是两个不同层。


十、MuJoCo在这里是什么位置?

MuJoCo不是控制链里的硬件。

它是:

验证环境。

所以:

复制代码
GMR
 ↓
Robot Joint Target
 ├──────────────→ MuJoCo
 │
 └──────────────→ Real Robot

先在仿真中验证:

复制代码
动作是否正确
关节范围是否合理
运动是否稳定

再进入实机。


十一、⑦ 测试工程层

这一层把前面的所有东西串起来。

复制代码
需求
 ↓
测试点
 ↓
测试用例
 ↓
自动执行
 ↓
数据采集
 ↓
判断
 ↓
日志
 ↓
结果
 ↓
SQLite
 ↓
报告
 ↓
回归

测试对象:

复制代码
通信
 │
 ├── UDP
 ├── CAN
 ├── ZMQ
 └── Protobuf

机器人
 │
 ├── ROS2
 ├── Controller
 ├── EtherCAT
 └── CiA402

系统
 │
 ├── 正常
 ├── 异常
 ├── 边界
 ├── 超时
 ├── 断连
 └── 恢复

十二、pytest在这里的位置

复制代码
pytest
 │
 ├── assert
 ├── fixture
 ├── parametrize
 ├── Mock
 ├── monkeypatch
 └── exception test

然后:

复制代码
pytest
  ↓
测试执行
  ↓
结果
  ↓
日志
  ↓
SQLite
  ↓
PDF

你的简历中实际写到了 pytest、Mock/monkeypatch、SocketIO 测试客户端,以及 34 项测试中的通过情况。


十三、Flask-SocketIO在哪里?

它属于:

测试平台的人机交互层。

结构:

复制代码
浏览器
   ↕
SocketIO
   ↕
Flask
   ↕
Python Test Framework
   ↕
Robot

可以实现:

复制代码
开始测试
停止测试
查看进度
查看状态
异常通知
结果显示

十四、SQLite在哪里?

复制代码
测试执行
   ↓
Test Result
   ↓
SQLite

保存:

复制代码
测试名称
时间
输入参数
实际结果
Pass/Fail
错误信息
统计数据

然后:

复制代码
SQLite
 ↓
统计
 ↓
PDF报告

十五、⑧ 部署与交付

最终不是:

复制代码
代码写完

而是:

复制代码
开发
 ↓
编译
 ↓
测试
 ↓
打包
 ↓
部署
 ↓
验收
 ↓
SOP
 ↓
故障排查

相关工具:

复制代码
CMake
CTest
Git
SSH
PyInstaller
Ubuntu
Shell

所以你之前学的:

复制代码
Linux
CMake
Python
SSH
日志
测试

最终都是为了:

把软件真正交付到机器人上。


十六、把你的简历压缩成一张"核心技术地图"

你以后复习,实际上只需要先看这一张:

复制代码
                         我的机器人软件技术栈
                                  │
        ┌─────────────────────────┼─────────────────────────┐
        │                         │                         │
      编程                      系统                      通信
        │                         │                         │
 C++17 / Python               Linux                    UDP / TCP
 OOP / RAII                   CMake                    CAN
 Smart Pointer                CTest                    ZMQ
 Thread / Lock                SSH                      Protobuf
 Queue / Backpressure         Log
        │                         │                         │
        └─────────────────────────┼─────────────────────────┘
                                  ↓
                                ROS2
                                  │
                       ┌──────────┴──────────┐
                       ↓                     ↓
                  动捕/算法                控制
                       │                     │
                 MotionInput             Controller
                       ↓                     ↓
                     GMR              Hardware Interface
                       ↓                     ↓
                 Joint Target         EthercatDriver
                       │                     ↓
                       │                  IgH
                       │                     ↓
                       │                  EtherCAT
                       │                     ↓
                       │                 CiA402/CSP
                       │                     ↓
                       └────────────→      Motor
                                             ↓
                                         Feedback

                                  ↓
                              测试工程
                                  │
                    ┌─────────────┼─────────────┐
                    ↓             ↓             ↓
                  pytest       Flask          SQLite
                    ↓         SocketIO           ↓
                 Mock/自动化     Web            Report
                    └─────────────┼─────────────┘
                                  ↓
                            部署 / 验收 / SOP

十七、再进一步:你真正的"能力主线"

如果不看技术名词,你这套简历实际上是在证明 6种能力:

① 底层能力

复制代码
Linux
C/C++
Socket
CAN
EtherCAT

↓

② 实时并发能力

复制代码
Thread
Mutex
Condition Variable
Queue
Backpressure
Frame processing

↓

③ 机器人系统能力

复制代码
ROS2
ros2_control
Hardware Interface
EtherCAT
CiA402

↓

④ 算法/运动能力

复制代码
Motion Capture
GMR
Retargeting
WBC/Policy相关调试
MuJoCo

↓

⑤ 软件工程能力

复制代码
Interface
Strategy
Adapter
Factory
CMake
CTest
pytest
Mock

↓

⑥ 测试与交付能力

复制代码
自动化测试
日志
SQLite
Web测试平台
SSH
部署
报告
SOP
相关推荐
AIUCE1 小时前
都说Muse开源了,其实开源的是 gadget SDK,不是 Muse
人工智能
郝学胜-神的一滴1 小时前
C++ Templates 03:手写一个Stack看透模板核心机制
开发语言·c++·产品运营·软件工程·产品经理
lucas_AI1 小时前
100 个 AI 组队做数学,27 分钟集体沦陷:DeepMind 记录了一场教科书级多智能体事故
人工智能
hetao17338371 小时前
2026-10-03 hetao1733837 的刷题记录
c++·算法
七七安1 小时前
标准卷积和转置卷积
人工智能
kaixin_learn_qt_ing1 小时前
Qt&C++软件开发工程师
c++
nhdh1 小时前
Higress:AI时代云原生网关新选择
人工智能·云原生
UIU1141 小时前
-7 / 2 在 C 里是 -3,在 Python 里是 -4,谁算错了?
c++·学习·c#
BenedictHook1 小时前
技能商店 SkillHub:Windows端 AI Skill 管理工具,支持搜索、查看与安装
c++·agent·桌面应用·skill·windows开发·skillhub