> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mrdvs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PalletPro 托盘识别部署

> 使用 M 系列相机和 PalletPro 完成托盘识别安装、标定、通信集成与故障排查。

> [!TIP]
>
> 查看[完整图文操作说明](https://docs.mrdvs.com/developers/deployment/legacy/palletpro)，包含原版配置截图和参数表。安装条件和接口需求另见[专项问答](https://docs.mrdvs.com/resources/faq/palletpro)。

> [!NOTE]
>
> 文档归档版本 V1.0 · 2026-10-15。适用工具：PalletPro 独立上位机。此版本为知识社区本次整理编号，不代表原始发布日期或软件版本。请勿与 AW3 的部署步骤混用。

> [!NOTE]
>
> 本页保留原知识社区的历史操作资料，原文修订记录标注 V1.1（2026-02-12）。当前方案和附件请查看[算法页面](https://docs.mrdvs.com/solutions/warehouse/pallet-recognition.md)，按实际软件界面与交付版本选用。

PalletPro 用于配置 M 系列相机的托盘识别与对接参数。相机在端侧执行算法，PalletPro 用于连接设备、检查成像、标定外参、调整识别范围并读取结果。

> [!NOTE]
>
> 本页的标准托盘、距离和参数范围仅适用于本页所述的标准识别流程。异形、无腿或高反射托盘应先进行现场评估。

## 部署前准备

### 标准托盘和安装要求

本流程使用三腿或双腿标准托盘进行标定。原始流程中的标准托盘尺寸为 `1.2 m × 0.8 m` 或 `1.2 m × 1.0 m`；非标准尺寸请先与 MRDVS 确认。

| 项目 | 要求 |
| - | - |
| 相机位置 | 尽量位于两叉齿中心，左右偏差不超过 `50 mm`。 |
| 相机姿态 | 镜面与地面垂直，尽量无俯仰和横滚。 |
| 视野 | 最近识别距离下，叉臂不得遮挡完整托盘。 |
| 随动式安装 | 相机安装在叉臂根部面板，与叉臂随动。 |
| 下坠式安装 | 相机安装在叉臂下方；完全下坠后与叉臂随动。 |

叉臂长度不超过 `1.2 m` 时，经验安装高度为 `0.35–0.4 m`；叉臂长度超过 `1.2 m` 时，经验高度为 `0.4–0.8 m`。实际高度应以现场视野、托盘腿成像和对接距离为准。

![叉臂随动式托盘识别相机安装示例](https://mintcdn.com/mrdvs/YGY7ZL7PZ7ENJc3f/images/developers/deployment-palletpro-follow-up-installation.avif?fit=max\&auto=format\&n=YGY7ZL7PZ7ENJc3f\&q=85\&s=960f1a066469f7a688a8835675a8f958)

### 设备与软件

* 使用 `24 VDC` 为相机供电，通过七类网线连接相机和计算机。
* 推荐上位机：Windows 10 或更高版本、Intel® Core™ i5（第 7 代）或更高版本、`8 GB` 内存，以及 Intel® UHD Graphics 或更高性能显卡。
* 安装 PalletPro 时，接受安装程序提示的 C++ 运行库；缺少运行库可能导致软件无法启动。

> [!WARNING]
>
> 仅使用与项目匹配的相机固件和托盘算法包。升级期间相机会重启并暂时从设备列表消失；升级前备份已验证的标定配置。

## 快速部署

**1. 配置网络并打开相机**

将电脑配置到 `192.168.100.xxx / 255.255.255.0` 网段。启动 PalletPro，扫描并打开目标相机。

**2. 确认版本与成像**

在 LxCameraViewer 中确认软件、相机固件和托盘算法版本符合项目交付要求；检查托盘腿在点云中完整可见。

**3. 设置初始高度**

在 **参数设置** 中使用 **高度自适应** 获取初始值，再按地面水平线微调。设置后点击 **保存参数**。

**4. 执行近端标定**

使用标准托盘，保持托盘居中且周围无遮挡。托盘距离相机约 `1.3 m` 时，执行 **托盘示教（近端）**。

**5. 执行远端标定**

保持托盘位置不变，使车辆沿直线后退约 `600–1000 mm`，托盘距相机约 `2.0–2.4 m` 时，执行 **托盘示教（远端）**。

**6. 保存并验证**

保存参数，在近端和远端来回验证 X、Y、角度输出及识别稳定性。

> [!TIP]
>
> 远端标定用于标定相机俯仰角。近端和远端标定之间不可发生横向移动或转向。

## 使用 PalletPro

### 主界面

| 区域 | 用途 |
| - | - |
| 基础操作 | 外参标定、保存参数和相机操作。 |
| 高级应用 | 高级参数、3D 显示、离线测试。 |
| 相机设置 | 扫描、打开 / 关闭相机、实时显示、检测和投影。 |
| 参数设置 | 相机名称、安装高度、姿态和安装方式。 |
| 文件导入 | 导入标定文件、单张图片或图片文件夹用于离线测试。 |
| 日志与图像 | 查看运行日志、版本和实时识别结果。 |

### 外参标定

在 **基础操作 → 外参标定** 中先阅读 **标定须知**，再执行示教。填写客户名称时建议使用项目名和车辆编号。必须填写相机光心到叉车旋转中心的距离。

| 标定步骤 | 结果 |
| - | - |
| 近端示教 | 标定安装高度、横向偏移、航向角和横滚角。 |
| 远端示教 | 在近端结果基础上标定俯仰角。 |
| 保存参数 | 将当前标定参数下发到相机。 |

![PalletPro 托盘近端示教界面](https://mintcdn.com/mrdvs/YGY7ZL7PZ7ENJc3f/images/developers/deployment-palletpro-tray-teaching-near-end-explanation.avif?fit=max\&auto=format\&n=YGY7ZL7PZ7ENJc3f\&q=85\&s=d5a8e9eb22057bad381613d669f1a09c)

### 高级参数

仅调整与项目需求相关的字段。修改后必须点击 **保存参数**。

| 参数 | 用途 |
| - | - |
| `R` | 相机姿态：俯仰、航向、横滚。 |
| `t` | 相机偏移；第一个值为横向偏移。 |
| `ground_y` | 相机安装高度，单位为 `mm`。 |
| `orientation` | 安装方式：`0` 正装、`2` 倒装，`1` / `3` 为侧装。 |
| `multi_level` | 多托盘识别：`0` 关闭、`1` 开启。 |
| `quad` | 四腿托盘识别：`0` 关闭、`1` 开启。 |
| `min_z` / `max_z` | 相机距离的有效范围。 |
| `min_x` / `max_x` | 水平方向的有效范围。 |
| `two_leg` | 双腿托盘识别：`0` 关闭、`1` 开启。 |

> [!NOTE]
>
> 未列出的高级参数通常不应修改。若需要调整腿宽、横梁检测或检测范围，请保留原配置并逐项验证识别结果。

### 离线测试和日志

在 **高级应用 → 离线测试** 中拖入：

* `pallet_settings.json` 标定文件；
* 单张 PNG 图像，或包含结果图的文件夹。

选择单文件或文件夹测试后点击 **开始检测**。日志区域可显示相机 API 版本、固件版本、算法版本和识别结果；通过 **相机操作** 可获取软件日志用于排查。

## 通信集成

### TCP 和 UDP

在 LxCameraViewer 中选择 **托盘定位** 并设为 **常开模式**。TCP Server 默认端口为 `5501`，UDP 默认端口为 `8000`。通信采用 Big-Endian 字节序，标准帧长度为 `16` 字节。

| 方向 | 十六进制命令 | 作用 |
| - | - | - |
| 客户端 → PalletPro | `60 04 00 00` | 启动识别任务。 |
| 客户端 → PalletPro | `60 04 00 01` | 结束识别任务。 |

返回帧包含返回码、长度、X / Y / theta / Z 符号、托盘前部中心 X / Y、角度 theta 和托盘高度。当前协议中的扩展字节应置为 `0`。

### RS485（仅 M4 Pro）

使用 Modbus RTU：波特率 `9600`、`8N1`。默认 Modbus 地址为 `0x17`，可通过 SDK 配置为 `1–247`。

| 操作 | 功能码 | 寄存器 | 值 |
| - | - | - | - |
| 启用 / 停止识别 | `0x06` | `120`（`0x0078`） | `1` 启用，`0` 停止 |
| 读取结果 | `0x04` | `122`（`0x007A`） | 读取 `8` 个寄存器 |

结果字段依次为 X、Y、yaw、返回值和高度，均为 4 字节字段。

### CANopen（M4 / M4 Mega）

CAN 使用标准帧，CAN ID 为 `11` 位，波特率为 `250 Kbit/s`。控制器向设备发送 `COB ID 0x212`，其中 `MODE CTRL` 为 `0` 表示关闭、`1` 表示开启。设备通过 `0x192`、`0x292`、`0x392` 和 `0x492` 返回识别状态、姿态、位置、高度和托盘尺寸字段。

### Modbus TCP

该接口仅支持算法版本 `0.8.1` 及以上。默认端口为 `6601`，监听所有网络接口，寄存器起始地址为 `0x100`。

| 偏移 | 寄存器 | 内容 |
| -: | - | - |
| 0 | `0x100` | 返回值绝对值；`0` 表示识别成功。 |
| 1–4 | `0x101–0x104` | X、Y、yaw、高度的符号；`0` 正、`1` 负。 |
| 5–8 | `0x105–0x108` | 托盘前部中心 X / Y、yaw、高度。 |
| 9 | `0x109` | 托盘宽度。 |
| 10 | `0x10A` | 托盘腿数量。 |
| 11–19 | — | 保留。 |

## 验证和排查

### 标定验收

在近端和远端标定位置往返测试。若 X、Y 误差处于 `10 mm` 范围内，且识别稳定无漏检，可视为标定完成。示例 `x = -2000`、`y = 100`、`yaw = 2.3` 表示托盘距相机光心 `2000 mm`、向右偏 `100 mm`，俯视逆时针角度偏差为 `2.3°`。

### 常见错误码

| 错误码 | 说明 | 优先检查 |
| -: | - | - |
| `0` | 识别正常 | — |
| `-1` | 图像无数据或数据不足 | 确认相机正常出图。 |
| `-2` / `-6` | 点云过少或未检测到托盘腿 | 检查安装高度、叉臂姿态、遮挡和托盘腿成像。 |
| `-3` | 托盘腿尺寸不符合条件 | 调整腿宽或托盘宽度范围。 |
| `-4` | 未设置相机安装高度 | 设置并保存安装高度。 |
| `-5` | 横梁检测异常或托盘倾斜过大 | 检查横梁成像、飞行像素和对接距离。 |
| `-7` | 托盘腿宽度差异过大 | 检查反光柱、墙面等对边缘腿成像的影响。 |
| `-8` | 托盘角度过大 | 调整托盘姿态。 |

### 识别条件与现场限制

* 标准识别条件：托盘宽和长 `800–2000 mm`，高度 `80–200 mm`，腿宽 `40–200 mm`，孔宽 `300–600 mm`，横梁厚度不小于 `30 mm`，识别距离 `1200–3000 mm`。
* 托盘必须完整位于视野内，避免叉臂、货物或周边物体遮挡。
* 黑色、低反或高反托盘应进行现场测试。原始测试条件中，`5%` 反射率黑色托盘的成像距离为 `2 m`；可调整积分时间和低信号阈值改善成像。
* 高位叉取场景中，反光柱与托盘腿的相对间距建议不小于 `200 mm`。
* 使用实时对接时，应用层应按结果时间戳判断数据是否更新，避免延迟引发误纠偏。

如需识别非标准托盘或无腿托盘，请联系 MRDVS 评估定制算法。

## 故障排查

以下问题沿用旧知识社区的部署记录，适用于本页所述独立上位机。参数和固件版本请按实际交付核对；修改前备份配置，验证后保存。

> **黑色托盘识别失败**
>
> **可能原因**
>
> 黑色托盘的点云成像不完整。
>
> **处理方法**
>
> 1. 在上位机的 **3D 设置** 中将 **高曝光** 设为 `1400`。\
>    2\. 在 **滤波** 中将 **低信号阈值** 设为 `20`。\
>    3\. 将 **小信号检测** 设为 `1`。

> **PalletPro 检测正常，但车体收到的结果异常或失败**
>
> **可能原因**
>
> 软件与嵌入式算法固件版本不一致。
>
> **处理方法**
>
> 更新嵌入式算法固件

> **外参标定报错显示未检测到地面**
>
> **可能原因**
>
> 地面点云未成像
>
> **处理方法**
>
> 打开相机后，在 **3D 设置** 中将 **高曝光** 设为 `1400`，在 **滤波** 中将 **低信号阈值** 设为 `10`，完成外参标定后恢复原参数。

> **近端外参标定失败**
>
> **处理方法**
>
> 1. 检查托盘点云是否完整。\
>    2\. 检查托盘与相机的距离是否约为 `1300 mm`。

> **托盘识别结果返回 failed-1 或 failed-11**
>
> **可能原因**
>
> 无数据或数据不足
>
> **处理方法**
>
> 通过上位机软件确认相机是否正常出图，或是否滤波较大过滤掉较多点云

> **托盘识别结果返回 failed-2、failed-12 或 failed-16**
>
> **可能原因**
>
> 点云数据过少，未检测到托盘腿
>
> **处理方法**
>
> 可能存在原因\
> 1、相机或叉臂抬升高度发生变化\
> 2、腿部被遮挡\
> 3、相机或叉臂发生较大俯仰\
> 4、腿部成像不足\
> 5、反光柱靠托盘腿过近影响相机成像\
> 建议通过 palletpro 软件确认后进行配置参数调整、调整反光柱，或调整叉车姿态

> **托盘识别结果返回 failed-3 或 failed-13**
>
> **可能原因**
>
> 托盘腿尺寸不满足配置要求，或未检测到托盘腿。
>
> **处理方法**
>
> 托盘腿部特征超出识别范围；可调整腿宽或托盘宽度范围。

> **托盘识别结果返回 failed-4 或 failed-14**
>
> **可能原因**
>
> 相机安装高度未设置
>
> **处理方法**
>
> 设置安装高度参数或进行外参标定

> **托盘识别结果返回 failed-5 或 failed-15**
>
> **可能原因**
>
> 托盘校验未通过；托盘横梁检测异常或托盘倾角过大
>
> **处理方法**
>
> 横梁未识别到，建议通过上位机关闭去飞行像素，或调整对接距离使相机更接近托盘，或更改横杆检测比例

> **托盘识别结果返回failed-7**
>
> **可能原因**
>
> 视野中托盘腿宽度差异过大
>
> **处理方法**
>
> 检查托盘附件是否有反光柱或者靠近墙面影响边缘腿成像

> **托盘识别结果返回failed-8**
>
> **可能原因**
>
> 视野中托盘航向角偏差过大（> 30°）。
>
> **处理方法**
>
> 摆正托盘检测


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.