# 越野领航播报(Nav Copilot)集成说明 目标:先“带着AI跑一遍”录制赛道轨迹并标记风险点;下次再跑同一路线时,服务端根据实时 GNSS + 车速,提前语音播报预警(不做在线地图规划)。 ## 前置条件 1. 车载端(ESP32)需要能向服务端提供 GNSS 定位数据。 2. 推荐方式:车载端开启设备端 MCP 工具 `self.gnss.get_fix`(到服务端会被自动净化成 `self_gnss_get_fix`)。 返回建议为 JSON 字符串,例如: ```json {"ok":true,"lat":31.2304,"lon":121.4737,"speed_mps":7.2,"heading_deg":88.0,"fix":1,"t":1710000000} ``` ## 开始使用(语音工作流) ### 1)录制路线(带跑一遍) 对小智说: - “开始录制路线” 跑完整条赛道后,对小智说: - “结束录制路线” ### 2)标记风险点(随时) 在赛道上遇到需要提示的地方,对小智说(示例): - “标记急转弯” - “标记大坑” - “标记跳台” - “标记陡坡” - “标记涉水” - “标记障碍” 服务端会把当前位置写入风险点库。 ### 3)领航播报(再跑一遍) 对小智说: - “开始领航” 当接近前方风险点(默认约 50m)时,会自动播报类似: > 注意前方 50 米急转弯,当前 30 公里每小时,预计 3 秒抵达。 结束时说: - “停止领航” ## 工具(函数)说明 本功能通过服务端插件函数实现,已在 `main/xiaozhi-server/config.yaml` 的 `Intent.function_call.functions` 中启用: - `nav_start_record` / `nav_stop_record` - `nav_mark_hazard` - `nav_start_run` / `nav_stop_run` - `nav_status` - `nav_list_routes` / `nav_set_active_route` 数据存储默认在: - `main/xiaozhi-server/data/nav_copilot.sqlite3`