机器人与机电一体化3D数字孪生机器-Day10
一、倾斜输送带物理效果
1. 倾斜传送带脚本修改
- 问题现象:传送带未按预期上升,反而向错误方向移动。
- 问题根源:脚本中通过欧拉角(Euler angles)解释旋转方向存在困难。
- 当 y 为 180° 且其他值为 0 时,角度解释相对容易。
- 当引入 z 轴或 x 轴旋转时,会出现负数,导致整个结果改变。
- 实际后台代码中,该数字为负数,包含实部和虚部,由欧拉角计算得出。
- 解决方案:将旋转值恢复到 0(而非 -18),并测试方向变化。
- 设置为 0 时,得到方向二。
- 设置为 18 时,方向为三,即错误方向。
2. 创建新脚本
- 创建方法:进入项目(Project)窗口,创建新脚本,命名为“倾斜传送带”(Inclined Conveyor)。
- 脚本内容:复制原传送带脚本的全部内容,粘贴到新脚本中。
- 删除方向判断的条件逻辑(if/else 语句)。
- 保留其余所有代码不变。
- 保存并检查是否有编译错误
- 硬编码方向:对于倾斜传送带,直接硬编码方向更简单。
- 无需通过逻辑判断实现,因为直接进入欧拉角计算并不容易。
3. 移除脚本并添加新脚本
- 操作步骤:选中最后一个传送带,移除原有的传送带脚本,添加新的倾斜脚本。
- 原因:由于已经知道方向,直接硬编码即可,无需复杂的逻辑判断。
4. 调整启动与速度控制
- 参数设置:将传送带速度设置为 18,再微调降低一些。
- 测试结果:一切正常,效果更好。
5. 运行并观察模拟
测试过程:点击启动按钮,观察立方体是否正常爬升。
- 立方体成功爬升,说明倾斜脚本生效。
- 多传送带设置:将所有传送带的速度均设置为 5,启动速度也设置为 5。
- 运行结果:四个传送带互相传递所有对象,形成完整的传输链。
- 观察现象:立方体在传送带之间传递,形成无限循环。
- 平台添加:为传送带创建平台,避免物体悬空漂浮。
- 对于倾斜的传送带,挤出机需要更长,以便接触地面。
- 倾斜部分的挤出机需要以一定角度切割。
二、添加平台
1. 创建平台立方体
- 环境准备:进入 Unity 环境,准备添加平台模型。
- 模型来源:当前仅有 Fusion 360 中导出的挤出机模型,后续可随时返回 Fusion 360 调整模型,但目前先用简单的立方体(盒子)代替,以实现更好的可视化效果。
- 创建平台:新建一个立方体(Cube),命名为“平台”(Platform)。
2. 调整平台尺寸与位置
- 尺寸调整:将立方体适当扩展,作为平台的基础形状。
- 位置调整:
- 将 Y 轴数值增加到 15 或 16,确定平台的高度。
- 调整 Z 轴方向,使平台在场景中处于合适的位置。
- 设计思路:平台需要以一定角度固定在地面上,避免呈直线排列,使整体结构更稳固。
3. 复制并旋转平台
- 复制操作:由于需要多个平台,直接复制已创建的平台对象。
- 旋转调整:复制后旋转平台,使其朝向不同的方向。
- 视图切换:切换到顶视图(Top View),便于观察和调整各平台的位置关系。
4. 调整各平台高度与位置
- 高度调整:部分平台位于较低层级,需将 Y 轴数值调整为 15 左右,确保各平台处于合理的高度差。
- 位置微调:根据场景布局,逐个调整平台的位置,使其分布均匀、结构合理。
5. 复制并调整最后一个平台
- 复制来源:从已有的平台中复制,生成最后一个平台。
- 旋转与位置:对最后一个平台进行旋转,并在 X 轴上减少 Z 方向的偏移量,使其与其他平台形成合理的角度关系。
- 效果评估:整体布局虽然不是最优方案,但比没有模型要好,能够满足当前可视化需求。6. 为平台赋予不同颜色材质
- 材质区分:为每个平台赋予不同的颜色材质,便于在场景中清晰区分各个平台。
- 完成状态:平台搭建完成,多个转换器(Conveyor)已正常工作,整体结构可用于后续开发。
7. 传感器数字孪生介绍
- 传感器的重要性:传感器在任何生产线上都非常重要,是数字孪生系统中不可或缺的组成部分。
- 数字孪生目标:学习如何对传感器进行数字孪生,包括如何从传感器中读取反馈信号。
- 示例应用:以接近传感器(Proximity Sensor)为例,用于检测是否有物体从其前方经过,并在 Unity 中模拟这一功能。
- 模块特点:传感器模块虽然很小,但在数字孪生系统中具有关键作用,值得重点关注。
三、传感器
1. 导入传送带场景
- 传感器的作用:传感器存在于大多数工业机械中,用于检测物体状态,例如接近传感器会在物体靠近时激活,表示物体处于传感器视野中。
- 执行器与传感器的区别:此前创建的都是执行器(如电机、活塞等产生动作的装置),尚未创建任何可以读取状态的装置。
- 应用场景举例:传送带上有瓶子在运行,需要检测瓶子到达传送带上的某个位置,此时就需要使用传感器。
- 导入场景:课程附带了一个自定义包,直接双击即可导入所有内容。
- 简化场景:导入后只保留第一个传送带,删除其他所有内容和平台,使工作更轻松。
- 已有动画:场景中已经包含所有动画,点击模拟即可运行,跳转到转换控制可以看到启动和速度控制界面。
2. 创建传感器
1)传感器介绍
- 传感器的建模:在CAD中建模相当简单,它只是一个周围有一些节点的圆柱体。
- 传感器的工作原理:当传感器前方有物体时,会发送一个信号表示“我前面有东西”;如果什么都没有,则发送信号表示“什么都没有”。
- 信号类型:使用微控制器或PLC获取信号时,会得到高电压(如5伏或24伏,取决于设备)或零电压,零电压表示传感器前方没有任何东西,即信号为零。
2)创建传感器安装架
- 创建空对象:创建一个空对象,命名为“传感器”。
- 创建安装架:为传感器创建一个简单的立方体作为安装架,命名为“安装架”。
- 调整尺寸:将安装架放大一些,然后缩短,使其适合挂在铝型材上。
- 固定方式:利用铝型材上的槽口,钻孔并加上几个螺丝即可固定。
3)创建传感器
- 创建圆柱体:右键点击创建一个圆柱体,命名为“传感器”。
- 调整位置:将圆柱体移到安装架上,抬高到合适位置。
- 调整方向:在Z轴上旋转90度,使方向正确。
- 调整尺寸:将圆柱体稍微延长,两端各有一个节点用于固定。
- 可视化与检测分离:所有这些都是为了可视化,实际的传感器检测将通过一个不可见对象进行。
4)创建光束逻辑
- 检测原理:将传感器想象为发射激光,当物体切断这条激光时,就表明传感器前方有东西,会给出一个信号。
- 创建光束:复制传感器,重命名为“光束”,移除约束,使其更小,然后重新应用约束并让它更长。
- 调整光束尺寸:光束需要比物体稍微大一点,在X轴上扩展,使其看起来像一个矩形,厚度设为0.05左右。
- 隐藏光束:移除Mesh Renderer使光束不可见,但碰撞检测仍然有效。
-
- 应用场景:创建一个应用来统计有多少物体经过传感器附近,这是一个很好的演示案例。
- 物体间距要求:物体之间需要有间距,因为如果两个物体靠得很近,光束会将它们检测为一个。这在机械设计中很重要,当需要计数物体时,总是会在物体之间留出间距。
- 计数原理:利用OnCollisionEnter和OnCollisionExit进行计数,这类似于控制系统中的上升沿——当检测到箱子时进行计数。
- 编写检测脚本
20:51
- 创建脚本:在Scripts文件夹中创建新脚本,命名为“SensorDetect”或“传感器检测/计数”。
- 定义变量:
- public bool isDetected = false;:检测到某样东西的标记,作为复选框使用。
- public int count = 0;:计数器,初始值为零。
- 编写触发方法:
- OnTriggerEnter:当箱子与光束发生碰撞时,设置isDetected = true,并执行count = count + 1,表示检测到新物体需要计数。
- OnTriggerExit:当箱子离开光束时,设置isDetected = false。
- 使用触发器:需要勾选碰撞体的“Is Trigger”选项,使用触发类型的碰撞。
- 运行测试:将脚本挂载到光束上,运行场景,监控计数结果,可以看到物体一个接一个通过时计数正常增加。
- 隐藏光束:移除Mesh Renderer后重新运行,物体不可见但计数功能仍然正常。
- 视野范围调整:光束的形状可以改变,可以根据传感器规格创建更大或更窄的视野范围,实现任何所需的视野范围。
- 传感器的基本知识:这些就是传感器的基本知识,后续在PLC课程中,将设计实际的控制算法,把传感器的反馈信号连接到PLC上。
四、单轴线性导轨
1. 应用场景
- 核心用途: 单轴线性导轨用于实现精确运动。
- 典型场景:将末端执行器从一个位置精确移动到另一个位置。
- 它是三轴线性导轨的基础,掌握单轴导轨对后续学习至关重要。
2. 本节学习目标
- 学习内容: 本节将学习单轴线性导轨的动画制作与物理交互。
- 动画制作:让导轨模型按预期运动。
- 物理交互:模拟真实运动中的碰撞与约束。
- 综合应用: 本节结束时,将综合运用传送带、气缸和线性导轨,创建一个完整的包装线迷你项目。
- 知识铺垫: 单轴线性导轨是后续学习笛卡尔机器人的基础,需牢固掌握。
3. 应用领域
- 常见应用: 线性导轨广泛应用于拾取和放置操作、3D打印设备及其他众多工业项目中。
五、知识小结
|
知识点 |
核心内容 |
考试重点/易混淆点 |
难度系数 |
|
欧拉角旋转问题 |
Unity中欧拉角存在实部/虚部计算,当多个轴同时旋转时角度解释会出错 |
y=180°时角度易解释,但引入z轴或x轴后结果会改变;硬编码方向比逻辑计算更可靠 |
★★★★ |
|
倾斜传送带脚本处理 |
为倾斜传送带创建独立脚本,直接硬编码旋转方向,避免欧拉角复杂计算 |
删除方向条件判断,保留速度控制逻辑;硬编码方向是倾斜场景的推荐方案 |
★★★ |
|
传送带系统集成 |
四个传送带互相传递物体形成无限循环,需设置平台支撑避免悬空 |
各传送带速度需协调(示例中均设为5);平台需按层级调整y轴高度 |
★★★ |
|
传感器数字孪生 |
使用虚拟传感器(圆柱体+不可见光束)检测物体通过,实现接近传感器功能 |
光束需设置为触发器(Is Trigger);物体需有刚体和碰撞体才能触发检测 |
★★★★ |
|
传感器计数逻辑 |
通过OnTriggerEnter/Exit实现物体计数,检测状态用布尔变量表示 |
物体间距不足时多个物体会被计为1个;计数依赖上升沿(Enter事件) |
★★★★ |
|
传感器物理配置 |
光束碰撞体尺寸需大于被测物体,确保可靠检测;Mesh Renderer可移除实现不可见 |
光束形状可自定义(宽/窄视野);碰撞体尺寸与检测可靠性直接相关 |
★★★ |
|
单轴线性导轨 |
用于精确运动定位,是笛卡尔机器人的基础,需掌握动画与物理交互 |
与三轴线性导轨的关联;拾取和放置应用场景;精确运动是核心特性 |
★★★★ |
|
PLC控制接口 |
传感器反馈信号将连接到PLC,用于实际工业控制算法设计 |
传感器信号(高/低电压)与PLC输入对应关系;后续课程衔接点 |
★★★★ |
|
对比项 |
传送带系统 |
传感器系统 |
线性导轨 |
|
核心功能 |
物料运输与循环 |
物体检测与计数 |
精确定位与运动 |
|
实现复杂度 |
中(需多设备协调) |
低(单触发器逻辑) |
高(需动画+物理) |
|
关键风险 |
欧拉角旋转错误 |
物体间距不足导致误计数 |
运动精度不足 |
|
调试要点 |
方向硬编码 |
触发器碰撞检测 |
动画与物理同步 |
|
工业应用 |
包装线物料输送 |
生产计数与位置检测 |
拾取放置、3D打印 |
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)