基于 MindSpore+OpenCV 的锂电池柔性化焊点识别与自动化焊接系统
一、项目简介
本项目是昇思锂焊 - 基于 MindX_SDK 的边缘驱动锂电池模组智能生产平台核心开源子模块,聚焦锂电池焊接生产中「传统设备柔性差、多规格适配难、人工干预多」的行业痛点,依托MindSpore 深度学习框架与OpenCV 计算机视觉技术,联合海康 SDK 工业相机、PLC 控制系统,实现从图像自主采集→焊点智能识别→焊接路径生成→PLC 联动焊接的端到端全流程自动化,无需调整硬件结构,即可适配不同规格、型号锂电池组的柔性化焊接需求,适配 3C 消费电子、新能源汽车、储能设备等领域的锂电池智能制造产线。
本项目采用模块化架构 + 全参数可配置设计,工业级稳定性强,支持二次开发与多硬件适配,可直接部署于工业生产环境,大幅提升锂电池焊接生产效率与精度。
二、核心功能
- 工业相机自动化采集:兼容海康 SDK 工业相机,支持网口 / USB 连接,实现锂电池模组图像自主拍照、分辨率自定义,采集参数可配置;
- 图像智能预处理:集成灰度化、中值滤波、二值化、Canny 边缘检测等功能,自动过滤工业场景噪声,精准突出焊点特征,预处理参数可灵活调整;
- 焊点高精度识别:基于霍夫圆变换算法,针对锂电池焊点圆形特征实现精准识别,自动提取焊点像素坐标,支持焊点半径、间距等识别参数定制;
- 坐标智能转换:实现「像素坐标→PLC 物理坐标」一键映射,支持相机标定参数、坐标偏移量修正,适配工业控制的物理坐标要求;
- 焊接路径自动生成:支持顺时针、逆时针、自定义三种路径规则,基于焊点物理坐标自动生成最优焊接路径,路径规则可按需配置;
- PLC TCP 无缝通讯:采用 TCP/IP 协议实现焊接路径与焊点坐标的实时、稳定传输,支持 JSON / 文本双数据格式,兼容主流品牌 PLC(西门子、三菱、汇川等);
- 全流程日志监控:记录设备连接、图像采集、焊点识别、通讯传输等全流程运行日志,支持日志级别、保存路径配置,方便工业场景故障排查;
- 高度柔性化适配:所有核心参数均通过配置文件定义,无需修改代码,即可适配不同规格锂电池、不同工业生产场景,大幅降低产线调整成本。
三、技术架构
本项目采用分层解耦的模块化架构,各模块独立运行、单向调用,无循环依赖,便于维护与二次开发,整体技术架构如下:
plaintext
海康SDK工业相机 → 图像自动化采集 → OpenCV图像预处理(灰度化/二值化/边缘检测) → MindSpore计算优化 → 霍夫圆变换焊点识别 → 像素坐标→物理坐标转换 → 焊接路径自动生成 → TCP/IP通讯 → PLC控制系统 → 锂电池模组自动化焊接核心技术栈
表格
| 模块 | 核心技术 / 工具 | 版本建议 |
|---|---|---|
| 深度学习框架 | MindSpore | ≥2.0 |
| 计算机视觉 | OpenCV | ≥4.8.0 |
| 工业相机对接 | 海康威视工业相机 SDK | 最新版 |
| 工业控制对接 | PLC 控制系统(支持 TCP/IP) | 主流品牌均可 |
| 通讯协议 | TCP/IP Socket | - |
| 开发语言 | Python | ≥3.8 |
| 依赖管理 | pip | ≥21.0 |
四、快速部署
1. 软硬件准备
硬件要求
- 工业计算机:酷睿 i5 / 锐龙 5 以上、8G + 内存、512G + 固态硬盘,支持 Windows 10/11 工业版、Ubuntu 20.04/22.04;
- 工业相机:海康威视 SDK 兼容相机(面阵相机推荐 500 万像素以上),网口 / USB 连接;
- 控制系统:支持 TCP/IP 通讯的 PLC,已接入锂电池焊接机执行机构;
- 辅助硬件:锂电池固定工装台、工业交换机(可选),保证所有设备在同一局域网。
软件要求
- 基础环境:Python 3.8+(64 位),已添加系统环境变量;
- 依赖库:MindSpore≥2.0、OpenCV≥4.8.0、numpy≥1.24.0 等(见依赖清单);
- 硬件驱动:海康相机官方驱动 / SDK、PLC 品牌官方通讯驱动;
- 环境配置:关闭无用防火墙 / 后台程序,开放 PLC 通讯端口、相机 IP 访问权限。
2. 环境搭建
bash
运行
# 1. 克隆项目到本地 git clone https://atomgit.com/[你的用户名]/lithium-weld-mindspore.git # 2. 进入项目根目录 cd lithium-weld-mindspore # 3. 一键安装核心依赖 pip install -r requirements.txt3. 配置文件修改
项目所有核心参数均集中在<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">config/config.ini</font>文件中,无需修改代码,根据实际工业场景调整以下关键配置即可:
- 「CAMERA」节:配置相机 IP、采集分辨率、拍照模式;
- 「IMAGE_PROCESS」节:配置二值化阈值、边缘检测参数、滤波核大小;
- 「WELD_DETECT」节:配置霍夫圆变换参数、焊点半径范围、预期焊点数量;
- 「PLC_TCP」节:配置 PLC IP、通讯端口、数据传输格式、超时时间;
- 「WELD_PATH」节:配置焊接路径规则、坐标误差容忍度、焊接速度;
- 「SYSTEM」节:配置日志级别、日志保存路径、系统运行模式。
配置文件中所有参数均添加详细注释,明确参数含义、取值范围,可直接参考注释调整。
4. 项目运行
bash
运行
# 项目根目录下执行,一键启动全流程 python main.py程序启动后,将自动完成「相机连接→图像采集→预处理→焊点识别→坐标转换→路径生成→PLC 通讯」全流程,控制台实时输出运行日志,焊接路径与坐标将自动传输至 PLC,触发锂电池自动化焊接。
5. 运行验证
- 日志验证:控制台无报错,依次输出「相机连接成功→图像采集成功→焊点识别完成→PLC 通讯成功」;
- 硬件验证:PLC 成功接收数据,焊接机按生成路径执行焊接动作,无漏焊、错焊;
- 结果验证:锂电池焊点焊接精准,符合工业生产工艺要求,日志自动保存至
<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">logs/</font>目录。
五、项目目录结构
本项目采用标准化开源目录结构,文件分类清晰,便于查找与二次开发,核心目录结构如下:
plaintext
lithium-weld-mindspore/ # 项目根目录 ├── README.md # 项目开源说明文档(本文件) ├── main.py # 项目主程序(一键启动,调用所有核心模块) ├── requirements.txt # 项目依赖清单(一键安装) ├── core/ # 核心功能模块目录(模块化解耦,单模块单功能) │ ├── camera.py # 工业相机调用与图像采集模块 │ ├── image_process.py # 图像预处理模块(灰度化/二值化/边缘检测) │ ├── weld_detect.py # 焊点识别模块(霍夫圆变换+坐标提取) │ ├── coordinate.py # 坐标转换模块(像素→物理坐标) │ ├── path_generate.py # 焊接路径生成模块(多规则支持) │ └── plc_tcp.py # PLC TCP通讯模块(数据传输/连接管理) ├── config/ # 配置文件目录(全参数集中管理) │ └── config.ini # 全局核心配置文件(所有参数可配置) ├── docs/ # 详细文档目录(含技术、部署、二次开发指南) │ ├── 技术文档.md # 核心算法、技术实现、参数优化指南 │ ├── 部署文档.md # 工业场景软硬件对接、部署步骤、常见问题解决 │ └── 二次开发.md # 模块拓展、硬件适配、算法优化指南 └── logs/ # 日志目录(自动生成,保存全流程运行日志)六、核心亮点
- 高度柔性化,适配多规格生产:打破传统焊接机「单一规格适配」的局限,仅通过修改配置文件,即可适配不同型号、规格锂电池组的焊接需求,无需调整硬件结构,大幅提升产线柔性;
- 工业级稳定,适配工厂环境:兼容工业相机、PLC 等主流工业硬件,TCP 通讯支持超时重试、数据校验,图像预处理过滤工业场景噪声,全流程异常捕获与日志记录,满足工厂生产的高稳定性、高可靠性要求;
- 全流程自动化,降本提效:从图像采集到焊接执行,无人工干预,替代传统人工焊接 / 半自动化焊接,大幅提升生产效率,降低人工操作误差,提升锂电池焊接一致性;
- 模块化设计,易二次开发:核心功能按模块解耦,单模块单功能,模块间单向调用,预留丰富拓展接口,可快速适配新相机、新 PLC、新焊接规则,支持算法优化与功能新增;
- 全参数可配置,零代码适配:所有核心参数均集中在配置文件中,无需掌握编程知识,仅通过修改配置参数,即可适配不同工业场景、不同生产工艺,降低工业部署门槛;
- 开源可商用,无版权限制:基于 Apache-2.0 开源协议发布,可自由进行二次开发、修改、商业部署,仅需在衍生项目中注明原项目出处,无任何版权限制。
七、工业软硬件对接说明
1. 工业相机对接
- 兼容品牌:海康威视所有支持 SDK 的工业相机(面阵 / 线阵均可);
- 连接方式:网口 / USB,需保证相机 IP 与工业计算机、PLC 在同一局域网;
- 配置要点:在海康官方软件中配置相机 IP、分辨率、曝光时间,与
<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">config.ini</font>中相机配置保持一致; - 拓展性:预留相机拓展接口,可快速适配基恩士、巴斯勒等其他品牌工业相机。
2. PLC 对接
- 兼容品牌:西门子、三菱、汇川、松下等所有支持 TCP/IP 通讯的主流 PLC;
- 通讯要求:PLC 需开放指定通讯端口,编写简单数据解析程序,支持 JSON / 文本格式数据接收;
- 配置要点:在 PLC 编程软件中配置 IP 与通讯端口,与
<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">config.ini</font>中 PLC 配置保持一致; - 数据格式:支持焊接路径、焊点坐标、误差容忍度等信息的封装传输,PLC 可直接解析执行。
3. 焊接机与工装台对接
- 焊接机:需与 PLC 完成联动调试,支持 PLC 控制执行机构的运动与焊接动作;
- 工装台:需保证锂电池固定精准、水平,相机可清晰拍摄到所有焊点,预留定位基准点,便于坐标偏移修正。
八、问题反馈与贡献
1. 问题反馈
若在项目部署、运行、二次开发过程中遇到问题,可通过以下方式反馈:
- 提交 Issue:在 AtomGit 项目仓库直接提交 Issue,注明问题场景、软硬件配置、运行日志、报错信息,便于快速定位解决;
- 日志排查:优先查看
<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">logs/</font>目录下的运行日志,根据日志中的错误信息,参考<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">docs/部署文档.md</font>中的「常见问题与解决方法」自行排查。
2. 代码贡献
欢迎广大开发者参与项目优化与功能拓展,贡献流程如下:
- Fork 本项目到个人 AtomGit 仓库;
- 基于
<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">dev</font>分支创建新分支,进行功能开发 / BUG 修复; - 开发完成后,提交 PR 到本项目
<font style="color:rgb(0, 0, 0);background-color:rgba(0, 0, 0, 0);">dev</font>分支,注明修改内容、功能说明、测试场景; - 项目维护者审核通过后,合并至主分支,完成贡献。
贡献要求:
- 遵循项目现有代码风格与模块化设计原则;
- 新增功能需添加详细日志与配置注释,保证向下兼容;
- 新增 / 修改功能需附带测试用例,保证功能稳定性。
九、开源协议
本项目基于Apache License 2.0开源协议发布,具体权利与义务如下:✅ 自由使用:可免费用于个人、企业、商业等所有场景;✅ 自由修改:可根据自身需求修改项目代码、优化算法、拓展功能;✅ 自由分发:可自由复制、分发、传播项目源码与衍生作品;✅ 商业部署:可直接将项目部署于工业生产环境,用于商业生产,无任何授权费用;⚠️ 署名要求:在衍生项目、产品、论文中引用本项目时,需注明原项目出处与作者信息。
十、原项目与相关说明
- 本项目为昇思锂焊 - 基于 MindX_SDK 的边缘驱动锂电池模组智能生产平台核心开源子模块,聚焦锂电池柔性化焊点识别与自动化焊接环节;
- 原项目依托华为昇腾 MindX_SDK、MindSpore 框架,打造锂电池模组智能制造全流程解决方案,涵盖焊接、检测、运维、追溯等全环节;
- 本项目可独立部署使用,也可与原项目其他模块联动,构建锂电池模组智能制造完整产线。
十一、免责声明
本项目为开源技术解决方案,仅提供技术参考与开发框架,开发者在工业部署、商业使用前,需根据自身生产场景进行充分测试与验证;项目维护者不对因项目使用、二次开发导致的任何生产损失、设备损坏、安全事故承担责任,使用本项目即表示认可本免责声明。
