机器人与机电一体化3D数字孪生机器-Day9

一、传送带物理效果

1. 更改重力设置
  • 重力调整入口:通过项目设置进入物理引擎,即可修改重力参数。
  • 重力与对象尺寸的关系:重力数值需要与场景中对象的尺寸相匹配,否则模拟效果会失真。
    • 重力值过小会导致下落呈现"慢动作"效果。
    • 重力值过大则会使物体下落过快,看起来不真实。
  • 调试过程:依次尝试了9、90、20、40等数值,最终将重力设置为60,下落效果最接近真实物理表现。
  • 碰撞检测模式:默认的离散碰撞检测在物体高速运动时可能发生穿透现象,开启连续碰撞检测可以避免该问题。
2. 创建圆柱体对象
  • 选择圆柱体的原因:立方体形状规则,容易保持平衡,无法充分测试物理引擎的模拟效果;圆柱体曲面结构更难保持平衡,更适合验证物理表现。
  • 碰撞器选择:创建圆柱体后,默认的胶囊碰撞器不适用,需直接删除
  • 添加网格碰撞器:为圆柱体添加网格碰撞器,并将其尺寸调整为比圆柱体本身稍大一些。
  • 开启凸形选项:在网格碰撞器中开启凸形(Convex)选项,否则物理模拟无法正常工作。
  • 调整位置:切换到顶视图和前视图,将圆柱体居中放置。
  • 添加刚体组件:为圆柱体添加刚体组件,使其受重力影响。
  • 重力设置注意事项:在播放状态下修改重力数值不会被保存,需退出播放模式后重新设置。
  • 测试结果:将传送带速度调至8后,圆柱体的下落和滚动效果比慢动作更真实,且能稳定站立。
  • 摩擦力观察:让圆柱体撞击障碍物后,发现场景中实际上没有摩擦力作用,无需额外修改其他参数。
3. 传送带方向检测脚本
1)返回旋转信息
  • 问题背景: 传送带脚本和物理脚本已被编程为在特定方向运行,若需改变传送方向,需要修改脚本。
  • 旋转读取思路: 传送带只能以垂直方式设置,y轴旋转值可能为0、90、180、270,然后回到0。通过读取旋转信息,相应地设置运动方向。
  • 读取旋转的方法: 在脚本开始时,通过 transform.rotation 获取物体的旋转信息。
  • 四元数(Quaternion): 是Unity中表示3D旋转的数学表示形式。
  • 欧拉角(EulerAngles): 通过 rotation.eulerAngles 获取包含X、Y、Z旋转角度的 Vector3 值,可单独访问各轴分量。
  • 代码实现: 定义一个四元数变量 rot,将其赋值为 transform.rotation。
  • 获取y轴旋转: 定义 float currentRot,通过 rot.eulerAngles.y 获取y轴旋转值。
  • 输出调试: 使用 Debug.Log(currentRot) 输出当前旋转值,验证是否成功获取旋转信息。
  • 代码位置调整: 将旋转读取和输出代码放在 Update() 方法中,而不是 Start() 方法中,以便持续检测旋转变化。
  • 验证结果: 运行模拟后,控制台输出旋转值为0,说明成功获取了旋转信息。
2)测试方向检测
  • 方向变量定义: 定义 private int orientation,用于存储方向状态(0、1、2、3)。
  • 方向判断逻辑: 通过判断 currentRot 的值来确定方向:
    • 如果 currentRot 为0,则 orientation = 0
    • 如果 currentRot 为90,则 orientation = 1
    • 如果 currentRot 为180,则 orientation = 2
    • 如果 currentRot 为270,则 orientation = 3
  • 取余判断的误区: 使用 currentRot % 90 == 0 判断会导致错误,因为180除以90的余数也是0,无法区分不同角度。
  • 测试过程: 依次将传送带旋转到0、90、180、270度,验证方向检测是否正确。
  • 测试结果: 0度对应方向0,90度对应方向1,180度对应方向2,270度对应方向3,检测逻辑正确。
  • 方向与运动关联: 将方向值与实际运动方向对应:
    • orientation = 0(0度):向右移动(Vector3.right)
    • orientation = 1(90度):向后移动(Vector3.back)
    • orientation = 2(180度):向左移动(Vector3.left)
    • orientation = 3(270度):向前移动(Vector3.forward)
  • 代码实现: 在 FixedUpdate() 中根据 orientation 的值,使用 conv.MovePosition(pos) 设置不同的移动方向。
  • 验证各方向: 分别测试0度、90度、180度、270度下的运动方向,确认所有方向均正确。
  • 最终效果: 传送带可以设置为任意方向,并自动进入正确的流动方向。
4. 传递产品
1)复制并调整传送带位置与角度
  • 复制传送带:选中已有一条传送带,复制并粘贴到目标位置,得到第二条传送带。
  • 调整角度:将新传送带旋转至0度,使其与第一条传送带平行。
  • 对齐操作:切换到顶视图,尽量对齐两条传送带的位置。
2)设置传送带高度差与平台
  • 高度差问题:两条传送带之间没有高度差,需要让其中一条比另一条高。
  • 解决方案:暂时让传送带悬浮,后续通过一个类似箱子的平台将其中一条传送带抬到另一条之上。
  • 位置调整:将两条传送带移动到合适位置,调整X轴坐标,使第一条传送带略高。
3)调整传送带间距与删除多余对象
  • 间距调整:将两条传送带靠近,确保物体到达第一条传送带末端时能被第二条传送带接住,不会掉落到框架上的障碍物。
  • 删除多余对象:删除为第二条传送带设置的传送带对象,只保留需要的物体。
4)测试传送带运输效果
  • 快速测试:运行场景,观察物体能否顺利从第一条传送带传递到第二条传送带。
  • 观察结果:物体到达传送带末端后掉落,被第二条传送带接住并带走。
5)设置传送带速度并启动
  • 速度设置:进入传送带控制系统,将第一条传送带速度设置为5,按下开始按钮。
  • 逐个激活:需要逐个激活传送带,在控制界面将第二条传送带速度也设置为5,然后启动。
  • 运行方向:传送带启动后,物体朝指定方向移动。6)添加并旋转第三个传送带
  • 复制第三个传送带:复制第二条传送带,粘贴得到第三条传送带。
  • 旋转90度:将第三条传送带旋转90度,切换到顶视图调整位置。
  • 空间利用:调整布局,避免浪费空间。
7)调整传送带布局并检查碰撞
  • 提升传送带:选中两条传送带,沿Y轴(igas轴)一起向上提升。
  • 碰撞检查:回到之前的状态,检查所有传送带是否正常,有无碰撞问题。
  • 微调处理:对第三条传送带进行位置和角度的微调,确保布局合理。
8)三个传送带协同运输测试
  • 协同运行:三个传送带依次传递物体,形成完整的运输链路。
  • 速度统一:将所有传送带速度设置为5,逐个启动。
  • 运行效果:物体依次经过三个传送带,顺利传递到终点,无掉落或卡顿现象。
5. 倾斜传送带物理效果
1)倾斜传送带的创建与初始设置
  • 创建倾斜传送带:在现有三条传送带的基础上,尝试创建第四条倾斜传送带。
  • 旋转角度设置:将传送带的旋转角度设置为 180°,而非默认的 0°。
    • 旋转角度决定了传送带的朝向,180° 表示与默认方向相反。
2)传送带倾斜角度与位置调整
  • 调整思路:通过修改传送带的 X 轴、Y 轴和 Z 轴 的位置与旋转参数,使其形成倾斜角度。
  • 调整过程:
    • 先尝试调整 Z 轴 位置,使传送带略微抬高。
    • 再调整 X 轴 位置,使传送带对准目标高度。
    • 反复微调位置参数,观察传送带在场景中的实际效果。
  • 调整限制:传送带不能抬得过高,否则物体会因落差过大而无法顺利过渡。
  • 最终方案:将所有传送带作为一个整体同时抬起,并在传送带之间增加倾斜度,使物体能够平滑过渡。
  • 倾斜度调整:在传送带之间增加倾斜角度,使物体能够从低处传送到高处。
  • 整体调整:将所有传送带一起抬起,保持相对位置不变,确保物体能够顺利通过。
3)传送带速度参数配置
  • 速度配置:为每条传送带设置不同的运行速度,以控制物体的传送节奏。
    • 最后一条传送带:速度设为 6,使其运行较快。
    • 中间传送带:速度设为 3,避免物体被弹射得太远。
    • 其他传送带:保持默认速度 5。
  • 启动按钮:设置启动按钮,用于控制传送带的启动与停止。
    • 部分传送带设置为"无启动",即不自动启动,需要手动触发。
4)倾斜传送带物理效果测试与问题分析
  • 测试过程:启动传送带,观察物体在倾斜传送带上的运动情况。
  • 测试结果:物体并没有爬上倾斜的传送带,而是直接掉落。
  • 问题分析:
    • 角度设置不正确:传送带的倾斜角度设置不合理,导致物体无法克服重力爬上斜坡。
    • 运动方向错误:物体在传送带上向右移动,但传送带的倾斜方向与运动方向不匹配,导致物体无法沿斜坡上升。
  • 根本原因:传送带的倾斜角度与物体的运动方向不一致,导致物体无法沿斜坡上升。
  • 解决方案:回到设计界面,重新调整传送带的倾斜角度和位置,使其与物体的运动方向匹配。
二、知识小结

|---------|----------------------------------|------------------------------------|-------------------------------|------|
| 知识点 | 核心内容 | 操作要点 | 易混淆点/常见问题 | 难度系数 |
| 重力参数调试 | 通过项目设置调整物理引擎重力值,影响物体下落速度 | 进入项目设置→物理引擎→调整重力值(尝试9、90、20、40、60) | 重力值与物体尺寸相关;9过慢、90过快、60最接近真实效果 | ⭐⭐ |
| 碰撞检测模式 | 离散碰撞检测可能导致物体穿透,连续碰撞检测可避免 | 需开启连续碰撞检测选项 | 未开启时物体高速运动可能穿透地面 | ⭐⭐ |
| 圆柱体物理模拟 | 圆柱体比立方体更难保持平衡,更适合测试物理引擎 | 创建圆柱体→删除胶囊碰撞器→添加网格碰撞器→开启凸形→添加刚体 | 网格碰撞器需开启凸形才能正常工作 | ⭐⭐⭐ |
| 摩擦力效果验证 | 测试物体碰撞障碍物时的摩擦力表现 | 切换顶视图→让物体撞击障碍物→观察翻倒行为 | 当前场景摩擦力几乎为零,需后续调整 | ⭐⭐ |
| 传送带方向控制 | 通过读取物体旋转信息(欧拉角)控制传送带运动方向 | 定义四元数→获取Y轴欧拉角→输出调试日志验证 | 旋转值需在Update中实时读取,Start中读取无法更新 | ⭐⭐⭐ |
| 方向状态映射 | 将旋转角度(0°/90°/180°/270°)映射为四个方向状态 | 定义方向变量(0-3)→条件判断角度→分配右/左/前/后方向 | 180÷90余数为0导致逻辑冲突,需简化判断条件 | ⭐⭐⭐ |
| 多传送带协同 | 多个传送带并排设置,实现物体连续运输 | 复制传送带→调整高度差→顶视图对齐→逐个启动 | 需逐个激活传送带,且速度需分别设置 | ⭐⭐⭐ |
| 倾斜传送带尝试 | 尝试倾斜传送带实现物体爬坡效果 | 复制传送带→旋转X轴→调整高度匹配 | 角度设置不正确导致物体无法爬坡,直接掉落 | ⭐⭐⭐⭐ |

相关推荐
聆思科技AI芯片1 小时前
【AI硬件开发上手教程】怎么使用AI编程实现小聆AI语音控制舵机
人工智能·嵌入式硬件·开源·ai编程·智能硬件
IT_陈寒1 小时前
深入理解SpringBoot:核心原理与最佳实践
前端·人工智能·后端
wdf80881 小时前
重型车辆、矿山装备、汽车研发、CAE、自动驾驶和沃尔沃重型车辆研发工作站配置与本地AI部署指南
人工智能·自动驾驶·cfd·creo机械设计
Jsundoku1 小时前
第四章 机器学习 -- 马尔可夫决策过程
人工智能·机器学习·马尔可夫决策过程
江苏久众新视1 小时前
SOP流程AI视觉检测实战案例:基于安防相机与本地AI的产线防错防漏方案落地分享
人工智能·数码相机·视觉检测
东离与糖宝1 小时前
LLM基础学习笔记:看懂BLEU、ROUGE、PPL与三大模型架构
人工智能
IT研究室1 小时前
最新大数据毕业设计选题推荐-基于大数据的AI助手系统性软件缺陷评论挖掘与可视化-大数据-Spark-Hadoop-Bigdata
大数据·人工智能·课程设计
u1301301 小时前
GitHub 热榜项目:日榜(2026-10-30)
人工智能·github
超级架构师2 小时前
让 Fortran 模型自己调用 Agent:原生 Fortran 2008 实现深度剖析
人工智能·python·架构·机器人·开源·fortran