本仓库储存了在 RBK 中集成端到端导航的插件。添加并运行本插件即可使用端到端导航相关功能。
.xml)和权重文件(.bin),分别包括直接使用原图输入的 origin_model,和使用语义分割图的 mask_model,共四个文件(不包括在本仓库中)。3.4.6-datarecord 分支。end2end 分支。将本仓库文件夹和其他相关插件的对应版本放入 RBK 的 plugin 文件夹中,进行编译。
注意:
在控制器或个人电脑上,由于 CPU/GPU 型号和支持性不同,可能需要修改 E2EForkModel.cpp 中 initOpenVinoModel 函数的如下配置,以适配不同设备:
ov::AnyMap gpu_config = {
{"PERFORMANCE_HINT", "THROUGHPUT"}, // 优化吞吐量
{"GPU_ENABLE_LOOP_UNROLLING", "NO"}, // 禁用循环展开(*控制器需要有,PC 测试不能有*)
{"INFERENCE_PRECISION_HINT", "f16"} // 使用 FP16 加速
};
// 编译模型并应用 PPP
m_compiled_openvino_model = m_openvino_core.compile_model(ppp.build(), "GPU", gpu_config);
// m_compiled_openvino_model = m_openvino_core.compile_model(ppp.build(), "CPU", gpu_config);
RBK 完成启动后,首先正确配置相机(详见相机插件说明)。
对应 Movefactory 中提供了两个参数:
Manual_Control_Enable:若为 True,则无视另一个参数,在进入路径导航任务后等待手柄控制指令;若为 False,则根据另一个参数选择导航方式。E2E_Nav_Enable:若为 True,使用端到端导航(即本插件功能);若为 False,使用传统规则导航。本插件提供了一个参数 E2E_Nav_Use_Mask,若为 True,则使用分割图模型进行推理(需要同时打开相机插件的语义分割功能开关),若为 False,则使用原图模型推理。
参数设置完成后,使用路径导航即可进行导航。