从代码到产线:我们如何用软件参与智能制造

admin 2026-09-06 04:52:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 复旦大学学生团队参加智能制造赛,用机器视觉与Python控制机械臂完成无人机抓取放置任务。通过YOLO分割与FoundationPose实现目标定位,利用深度数据与几何条件识别支撑架,经坐标标定与空间计算生成动作,配合Unity3D仿真理解产线流程,最终获全国一等奖。经验表明软件需结合具体机械结构与作业条件,从整线视角设计控制逻辑。 综合评分: 85 文章分类: 实战经验,解决方案,安全开发


从代码到产线: 我们如何用软件参与智能制造

原创

郭朝宇、司至荣 郭朝宇、司至荣

CodeWisdom

2026年9月5日 09:00 上海

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

机器视觉、Python 控制与 Unity3D 仿真的一次实践

让机械臂把无人机从一个支撑架搬到另一个支撑架上,看起来只是简单的一抓一放,但是在实现的过程中,我们需要把这个动作拆开,解决无人机在哪里、朝向如何,夹爪应该怎样接近,又该把它放到哪里的问题。

这个暑假,由复旦大学计算与智能创新学院的25级郭朝宇、司至荣组成的CodeWisdom 队参加了2026中国大学生机械工程创新创意大赛智能制造赛。在李敏波老师的指导下,我们从软件工程、计算机科学与技术的学习背景出发,用约一个月的时间接触视觉识别、机械臂控制和产线仿真,并最终完成比赛项目。

面对比赛要求的固定位置抓放和随机位置抓放,我们首先要想清楚:软件能在哪些地方发挥作用?固定位置的搬运可以预先示教,让机械臂记住关键点;当无人机和目标支架的位置发生变化,就需要重新获取现场信息、计算动作。我们选择从视觉引导抓取与放置入手,让相机提供目标信息,再由程序引导机械臂抓取无人机、转运并放到目标支撑架上。

图1  比赛现场,围绕无人机搬运任务进行演示与交流

先让机械臂知道,东西在哪里

机械臂要抓住无人机需要知道它在空间中的位置和朝向。我们使用深度相机,同时获取彩色画面和距离信息,让图像识别的结果能够进一步用于空间定位。

具体来说,我们用 YOLO 分割模型负责找出无人机轮廓,FoundationPose 再结合深度数据与无人机三维模型,估计它的位置和旋转方向。两种方法衔接起来,给后续抓取提供所需的信息。

把这些方法用起来,离不开数据准备。通过采集画面、标注无人机轮廓、训练模型,再回到实际场景中检验。光照、背景和拍摄角度的变化,都会影响识别效果。这个过程让我们对“训练数据”有了更具体的理解:画面是否接近实际使用条件,标注是否准确,都关系到程序能否在设备旁真正跑起来。

白色支撑架,带来另一种解法

要完成视觉抓放,除了定位无人机,还要找到放置它的目标支撑架。这一环节并没有顺着无人机的识别方法直接做下去。支撑架比较小,整体是白色,又与桌面颜色接近。前期尝试训练分割模型时,出现过漏检和轮廓不完整;降低识别门槛,又容易把背景认成目标。

我们重新梳理任务条件。支撑架的尺寸已知,顶面距桌面的高度相对固定,摆放范围也有限定。这些信息原本就在现场,只是还没有充分进入算法。

有了这个思路,我们先标定桌面,再利用深度数据寻找规定区域内、符合支撑架顶面高度的部分,结合尺寸判断,估计它的中心和朝向。颜色相近让图像识别变得困难,但空间中的高度差提供了另一条定位线索。

图2  比赛程序保存的定位结果:绿色标示无人机,黄色标示目标支撑架顶面,彩色轴线表示方向

这次调整让我们意识到,设计工业软件时,理解物体本身和作业条件很重要。无人机适合结合学习模型与三维位姿估计,支撑架则可以利用已知几何条件。选择方法的依据,是眼前的问题和能获得的信息。机械结构、尺寸和摆放要求,都能成为程序判断的依据。

用 Python,实现视觉引导抓取与放置

视觉定位完成后,接下来要让机械臂读懂这个结果。相机和机械臂各有自己的坐标系,就像两张起点和方向不同的地图。我们通过标定建立两者之间的关系,把相机看到的位置换算为机械臂能够使用的位置。

放置动作还有一个细节:支撑架的中心,并不等于夹爪应该到达的位置。无人机被夹住以后,与夹爪之间存在相对的位置和方向关系。计算放置动作时,需要把这层关系和接近高度一并考虑,才能让无人机对准支架。

视觉定位的结果决定这一轮从哪里抓、朝哪个方向抓,以及放到哪里。我们用 Python 计算相应的抓取与放置动作,再调用机械臂接口,将接近、抓取、抬升、转运、放置和撤离串成流程,配合夹爪开合。

图3  实机作业单元中的机械臂夹爪、无人机与支撑架

在调试设备的过程中,我们也逐渐体会到,程序发出指令和设备完成动作之间,还有许多工作要做。下一步何时开始,识别失败后怎样停止流程,某次抓放出了问题该从哪里查起,都需要明确安排。

这也改变了我们两个人合作时看问题的方式。共同参与开发与调试,就需要一起理解整个流程:调整识别方法,要考虑它怎样影响抓取;修改放置动作,也要确认视觉结果和空间计算能否配合。接口设计、状态管理和异常处理,在这里都有了具体的使用场景。

在 Unity3D 中,把视线放到整条产线

比赛还包含独立的虚拟仿真任务。我们使用 Unity3D 呈现设备布局、机械臂抓放和传送带输送等环节。物料怎样移动、设备之间怎样衔接,能够通过三维场景直观地展示出来。

图4  Unity3D 场景中的抓放作业单元,展示机械臂、无人机与支撑架的空间布局

实机抓放让我们关注一个动作怎样完成,仿真则把视线带向多个环节之间的关系。把程序中的动作顺序放进空间场景里,有助于理解物料流转,也便于讨论控制逻辑。我们开始从整条产线的角度思考:某台设备的动作,怎样接上前后环节?

这次完成的是独立仿真,没有与实机实时同步或双向控制。今后若进一步接入设备状态,让虚拟场景辅助监测和调试,才有条件继续探索数字孪生在现场的应用。

软件怎样走进制造现场

7月,我们通过上海赛区初赛选拔,晋级全国总决赛。8月25日,我们赴江汉大学参加2026中国大学生机械工程创新创意大赛智能制造赛全国总决赛(第一阶段),在机器视觉识别辅助机械臂抓取无人机摆放支架任务获得60分满分,虚拟仿真任务获36分,总分94分名列前茅,最终获得本科生组“智能装备与产线开发方向”全国一等奖。

图5  本科生组“智能装备与产线开发方向”一等奖名单,复旦大学队伍在列

回看这段经历,我们对软件参与制造有了更清晰的认识。图像数据与视觉算法提供现场信息,空间计算把信息转成动作目标,控制程序协调设备,仿真帮助理解流程。它们要与具体的机械结构和作业要求配合,才能共同完成任务。

这次比赛让我们迈出了接触制造现场的一步。今后,我们也将吸取比赛的经验教训,继续从软件与智能的角度切入传统工业智能控制领域。

作者简介

郭朝宇,复旦大学计算与智能创新学院软件工程专业25级本科生,智能制造赛CodeWisdom队队长。关注软件工程、机器视觉与智能制造,参与本次项目中的无人机目标识别、三维位姿估计、机械臂抓放控制和系统联调,希望在真实工程场景中继续探索软件、算法与制造设备的协同应用。

司至荣,复旦大学计算与智能创新学院计算机科学与技术专业25级本科生,智能制造赛CodeWisdom队队员。参与本次项目中的无人机及支撑架目标识别、机械臂控制与系统联调等工作,将会继续探索软件与AI在智能制造中的应用。

李敏波,复旦大学计算与智能创新学院软件工程实验室副教授,智能制造赛CodeWisdom队指导老师。主要负责本科生《工业软件技术》、研究生《工业数据分析》、《AI赋能智能制造前沿与实践》课程教学,研究方向:工业大数据、企业数智化技术。

撰稿:郭朝宇、司至荣

指导教师:李敏波


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:CodeWisdom 郭朝宇、司至荣 郭朝宇、司至荣《从代码到产线: 我们如何用软件参与智能制造》

评论:0   参与:  0