04 / 05 · 2023.07 — 2024.07
广州辰创科技发展有限公司
在仿真推演产品线做后端与智能体开发:用 Go(Gin)实现战场仿真平台的业务主服务、引擎生命周期管理与多人协同编辑,并用 Python 对接 C++ 博弈平台,开发红蓝智能体与实时监控工具。
- 职位
- Python 开发工程师
- 行业
- 仿真推演(科研软件)
- 地点
- 北京
- 在职
- 1 年 1 个月
关键成果
约 100 个
业务主服务的接口,覆盖型号、实体、装备、数据字典、模板、想定版本等 17 个模块
38 个
基于 ZeroMQ + Protobuf 封装的博弈平台对接接口
16 个
部署评测的参赛智能体(规则 / 机器学习 / 深度网络)
在这里做的项目
PROJECTS · 22023.07 – 2024.07(1 年) · 后端开发(Go / Python)
战场平行仿真系统
公司核心产品,面向军工科研单位的 B/S 架构战场仿真平台。用户在三维数字地球上编排作战想定,一键下发到仿真引擎推演,实时回传态势进行三维展示、多人协同编辑、录制回放与效能评估。
- 负责业务主服务(Gin + MongoDB)设计开发,按 router / controller / service / model 分层,完成型号、实体、装备、数据字典、模板、想定版本等 17 个模块约 100 个接口
- 设计推演引擎生命周期管理:动态分配端口、想定导出为引擎输入、os/exec 拉起进程并登记,goroutine 监听退出自动回收资源,支持多场推演并行
- 基于 WebSocket Hub 实现按任务分房间的想定多人协同编辑:读写双协程 + 心跳保活,想定树扁平化索引缓存,增量指令实时广播
- 开发算子服务:想定 JSON → 外部仿真引擎 XML 转换(3000+ 行),GeoJSON 区域 / 交集 / 并集空间计算;实现态势按帧录制与暂停、倍速、时间轴回放
- 用 Go 开发引擎控制台,通过 TCP 对接调度服务并透传引擎命令,提供推演启停 / 暂停 / 恢复的 HTTP 接口
- 用 Tornado + SciPy 开发雷达信号生成服务(线性调频脉冲、杂波、回波),后台线程异步生成,Docker 部署
- Go
- Gin
- MongoDB
- MySQL
- Redis
- NSQ
- WebSocket
- Python
- Tornado
- SciPy
- Docker
系统架构
2023.07 – 2024.07(8 个月) · Python 开发 · 智能体与平台对接
智能博弈对抗推演
无人化空海对抗场景(岛礁防御 vs 航母编队进攻)下的智能体指挥决策项目。C++ 博弈推演平台负责仿真裁决,Python 侧实现平台对接、红蓝双方智能体以及对抗过程的实时监控。
- 基于 ZeroMQ(REQ + DEALER)与 Protobuf 实现平台对接层,封装推演控制、单位 / 任务 / 毁伤查询、航线、起飞、编组等 38 个接口;Runner 以固定步长驱动“观测 → 决策 → 指令”循环并完成胜负计分
- 开发红方防御智能体:感知 — 信息融合 — 导弹 / 火炮 / 激光火力分配 — 打击校验的分阶段决策;开发蓝方进攻智能体:多行动方案、无人机分队起飞与饱和突击
- 部署评测 16 个参赛智能体(规则 / 机器学习 / 深度网络),定位依赖与运行问题,拆解代表性策略并输出技术分享
- 智能体态势经 MQTT 外发,用 PyQt5 开发实时监控工具,多标签页展示红蓝方单位与毁伤,支持按轮次离线落盘复盘
- Python
- ZeroMQ
- Protobuf
- MQTT
- PyQt5
- NumPy
系统架构
系统数据流
抽象示意 · 不含内部细节想定编辑
Vue + Cesium · WebSocket 协同
Gin 主服务
17 个模块 · 约 100 个接口
▲ 我负责的部分
算子服务
想定 JSON → 引擎 XML
▲ 我负责的部分
引擎控制台
Go · TCP 透传命令
▲ 我负责的部分
仿真引擎
推演 · 态势回传
三维展示
态势 · 录制回放
团队与日常
照片均已征得同事同意,或对他人面部做了模糊处理
在这里学到了什么
在仿真推演这条产品线上,第一次用 Go 做服务端:用 goroutine 与 WebSocket Hub 做多人协同编辑,用 os/exec 管理仿真引擎进程的生命周期,并学会了按 router / controller / service / model 分层组织一个约 100 个接口的服务。
另一条线是用 Python 对接 C++ 推演平台,在 ZeroMQ + Protobuf 之上做智能体与实时监控;通过部署评测 16 个参赛智能体,拆解了规则、机器学习与深度网络几类代表性策略,并做了一次技术分享。
TECH STACK
- Go
- Gin
- Python
- Tornado
- MongoDB
- MySQL
- Redis
- NSQ
- WebSocket
- ZeroMQ
- Protobuf
- MQTT
- PyQt5
- Vue 2
- Cesium
- Docker