查看“识别料框并堆垛拆垛”的源代码
←
识别料框并堆垛拆垛
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
<languages/> == 概述 / Overview == "识别料框并堆垛拆垛"是面向 ''金属 / 塑料料框'' 的自动化动作集合:识别料框上沿与开口、堆码到指定高度、按节拍拆垛到指定层。料框相比标准托盘特征更复杂(边沿薄、四角圆滑、可能堆叠 4–6 层),因此需要 3D 感知 + 多帧融合。 "Kit-bin stacking / de-stacking" handles ''metal / plastic kit-bins'' — pickup, stack to a target height, or remove top bins to a target tier. Bins are harder than pallets to detect (thin lips, rounded corners, stacks up to 4–6 layers), so we use 3D sensing + multi-frame fusion. == 与料架 / 托盘的区别 / Difference from racks / pallets == {| class="wikitable" ! 项 / Item !! 标准托盘 / Pallet !! 料框 / Kit-bin |- | 几何特征 / Features || 两个叉孔 + 边沿 || 上沿矩形 + 内空腔 + 边沿圆弧 |- | 叉齿可入位 / Fork pockets || 是 / Yes || 否(叉齿夹外沿或抓取)/ No (clamp or grab) |- | 堆叠层数 / Stack height || 2–3 层 / 2–3 || 4–6 层 / 4–6 |- | 主用感知 / Sensing || 2D 激光 || 3D 激光 / 深度相机 + 2D 辅助 |- | 主用 Detector || `LidarDetectPallet` || `LidarDetect3DBin`, `CamDetectBinRim` |} == 工作流程 / Pipeline == === 堆垛 / Stack === # 巡线到 ''下层 Anchor'' 站点(距堆位约 1.5 m)。 # 3D 激光扫描堆区,提取 ''最顶层料框''的上沿矩形(4 个角点 + 1 个朝向)。 # 计算放置位姿 = 最顶层上沿姿态 + 设计层高(典型 250 mm)。 # 升叉到 ''计算放置高度 + 30 mm'';可升降激光重新检测目标层确认。 # 横向 + 朝向精对位(≤ ±10 mm / ±0.5°)。 # 缓慢降叉直到接触检测信号(如 `forkLoadDetected` 反转)。 # 倒车离开。 === 拆垛 / De-stack === # 巡线到 ''下层 Anchor'' 站点。 # 3D 扫描 → 选定 ''要取的层''(默认最顶层;可指定)。 # 升叉到 ''目标层下沿 - 10 mm''。 # 抓取机构闭合 / 叉齿前推;触发 `binGripDetected`。 # 升叉 50 mm 提离堆。 # 倒车离开。 # 巡线到目标释放位 → 落料 → 完成。 <syntaxhighlight lang="csharp"> // Stacking step 3 sketch var top = new LidarDetect3DBin { expectedWidth = 600, expectedDepth = 400, minConfidence = 0.7f }.Detect(latest3DCloud); var placeX = top.X; var placeY = top.Y; var placeZ = top.Z + binLayerHeight + 30; // 30 mm safety margin await Lift(placeZ); await DriveTask.WaitDriveTask(new BinPlaceMovement { targetX = placeX, targetY = placeY, targetTheta = top.Theta }.Get()); await Lift(placeZ - binLayerHeight - 30); // settle await OpenGrip(); await Reverse(1.5); </syntaxhighlight> == 多帧融合 / Multi-frame fusion == 单帧 3D 激光的上沿点云因遮挡 / 反射常有缺失。MDCS 采用 ''K 帧合并 + 矩形拟合'': A single 3D frame often misses bin rims due to occlusion / reflection. MDCS uses ''K-frame merge + rectangle fit'': # 在 Approach 站点静态停车,连续读 K 帧(典型 K = 5)。 # 合并点云后去除地面 + 远处点 ROI 过滤。 # 在 ROI 内做矩形 RANSAC 拟合,输出矩形中心 + 朝向 + 平面高度。 # 若 ''confidence < 0.7'',把车前进 100 mm 再扫一轮(避免遮挡)。 == 关键 Detector / Key detectors == {| class="wikitable" ! Detector !! 文件 / File !! 用途 / Use |- | `LidarDetect3DBin` || `Clumsy\ClumsyDance\Detectors\LidarDetect3DBin.cs` || 3D 激光:从单 / 多帧扫描中提 bin |- | `CamDetectBinRim` || `Clumsy\ClumsyDance\Detectors\CamDetectBinRim.cs` || 深度相机 + 2D 辅助 |- | `LidarDetect2DTier` || `Clumsy\ClumsyDance\Detectors\LidarDetect2DTier.cs` || 升降 2D 激光:按高度切层 |} == 调试要点 / Tuning == * '''3D 点云稀疏 / 3D cloud too sparse''' → 增加 K 帧合并数,或检查 3D 雷达 [[Special:MyLanguage/3D激光雷达适配|适配]] 中的扫描频率。 * '''料框边沿反光强烈 / Rim glints''' → 调高强度阈值,过滤 specular spike。 * '''抓取后晃动 / Bin swings after grab''' → 检查抓爪夹紧力;落料前留 2 s 稳定时间。 * '''层高漂移 / Tier-height drift over many stacks''' → 每次堆完做一次重新 3D 扫描,更新堆顶基准。 == 安全 / Safety == * 堆叠中倒塌风险随堆高指数上升;4 层以上必须 ''每次堆完都重新读 IMU 与上沿姿态'',姿态偏差 > 1° 立即停。 * 料框拆垛过程中下层料框可能因震动错位,必须在 ''每次拆垛后''重新扫一次堆顶。 == 相关页面 / See also == * [[Special:MyLanguage/自动识别工位并取放货|自动识别工位并取放货]] * [[Special:MyLanguage/使用叉车料架堆叠功能|使用叉车料架堆叠功能]] * [[Special:MyLanguage/托盘识别|托盘识别]] * [[Special:MyLanguage/3D激光雷达适配|3D激光雷达适配]] [[Category:特殊技术方案]] [[Category:运动控制使用手册]]
返回
识别料框并堆垛拆垛
。
导航菜单
个人工具
中文(中国大陆)
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息