简历技术栈全面复习总结

一、总目录

整个技术栈,本质上可以分成 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
相关推荐
王老师青少年编程23 分钟前
2025年6月GESP真题及题解(C++三级): 选择题和判断题(题解)
c++·真题·gesp·答案·csp·三级·信奥赛
陈 洪 伟34 分钟前
Transformer彻底剖析(9):归一化演进——BatchNorm、LayerNorm、RMSNorm、Post-LN / Pre-LN、DeepNorm
人工智能·深度学习·transformer
Kari1136 分钟前
AI 手写 OCR 在教育场景的工程化:为什么准确率从 82% 做到 99% 这么难
人工智能·深度学习·机器学习
数聚天成DeepSData38 分钟前
两批标注数据合并前要核对什么
人工智能·深度学习·机器学习·数据集·deepsdata
正经教主1 小时前
【FDE系列】阶段3:Day 77:LangChain 基础 — LCEL 管道与三件套
人工智能·langchain·agent·fde
Navigator_Z1 小时前
LeetCode //C - 1301. Number of Paths with Max Score
c语言·算法·leetcode
AI办公探索者1 小时前
从“岗位为中心”到“任务为中心”:企业级Agent Hub的架构演进
人工智能·架构
fly-iot1 小时前
【下一个 AI 方向】:中小企业的数字化建设,物联网解决方案思考,使用开源项目快速搭建降低成本。
人工智能·物联网
卡卡~~1 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法
方芯半导体1 小时前
2026工业机器人控制芯片赛道:竞争格局与关键选型指标深度解析
大数据·人工智能·机器人