完善修改

This commit is contained in:
2026-01-19 13:41:59 +08:00
parent 5d1c02fb5b
commit b68883e4e0
4 changed files with 31 additions and 33 deletions

View File

@@ -50,4 +50,5 @@
```
# 需要辨析的情况
1. "无人机当前在空中往东边飞50米,停个20s就好返航了。"这样的指令应该被判定为复杂,因为需要多步执行。
1. "无人机当前在空中往东边飞50米,停个20s就好返航了。"这样的指令应该被判定为复杂,因为需要多步执行。
2. 到某地执行某动作,这样的任务应该是复杂。

View File

@@ -171,25 +171,15 @@
"params": { "duration": 300 }
},
{
"name": "拍照循环永不成功",
"name": "SuccessIsFailure",
"type": "decorator",
"child": {
"name": "DetectAndShoot",
"name": "check_and_photo",
"type": "Sequence",
"children": [
{
"name": "SuccessIsFailure",
"type": "decorator",
"child": {
"name": "check_and_photo",
"type": "Sequence",
"children": [
{"name": "object_detect", "type": "action", "params": { "target_class": "person" }},
{"name": "object_detected", "type": "condition", "params": { "target_class": "person" }},
{"name": "take_photos", "type": "action", "params": { "target_class": "person" }}
]
}
}
{"name": "object_detect", "type": "action", "params": { "target_class": "person" }},
{"name": "object_detected", "type": "condition", "params": { "target_class": "person" }},
{"name": "take_photos", "type": "action", "params": { "target_class": "person" }}
]
}
}
@@ -205,6 +195,25 @@
}
```
#### 场景 4交互式确认任务Sequence + Manual Confirmation
**指令**:“无人机当前在空中,搜索小汽车,搜索到了我确认后再决定要不要拍照。”
**思路**:无人机已在空中,无需起飞,直接进行搜索。首先使用`rotate_search`主动搜索目标,配合`object_detected`条件节点确认目标是否被检测到。检测到后,执行`manual_confirmation`节点等待用户确认。只有用户确认通过返回Success才会继续执行后续的`take_photos`动作。
**结构**Sequence
```json
{
"root": {
"type": "Sequence",
"name": "SearchConfirmPhoto",
"children": [
{"type":"action","name":"rotate_search","params":{"target_class":"car","description":"小汽车"}},
{"type":"condition","name":"object_detected","params":{"target_class":"car","description":"小汽车"}},
{"type":"action","name":"manual_confirmation","params":{}},
{"type":"action","name":"take_photos","params":{"target_class":"car","description":"小汽车"}}
]
}
}
```
## 六、高频错误规避
1. 控制流节点的 `type` 必须是 `"Sequence"`, `"Selector"` 或 `"Parallel"`
2. 当用户指令中要求执行动作前增加人工确认时比如“我确认后拍照”则必须在拍照动作前增加manual_confirmation节点
@@ -214,7 +223,7 @@
6. **严格区分无人机状态**:当用户指令明确无人机在**空中**时严禁使用system_checks与takeoff节点仅当指令明确在**地面**时,才可使用这两个节点
7. **重点关注**fly_to_waypoint与return_emergency节点辨析当指令包含具体目的地如“紧急回到广场”、“飞回大门”**必须**使用fly_to_waypoint节点**绝对禁止**使用return_emergency节点该节点仅用于无目的地的“紧急返航”指令
8. 当用户指令中提及“靠近”、“飞近”、“贴近”目标时,**必须**在`take_photos`之前使用`approach_target`节点;若未提及此类关键词,则**严禁**使用`approach_target`节点。
9. **方向移动优先原则**:当指令仅要求“往/向/去往 + 东/西/南/北/前/后/左/右 + 飞/移动 + X米”基于当前位置相对移动且**未提及具体参照地点名词**(如“广场”、“大门”)时,**必须**使用`move_direction`节点**严禁**计算坐标使用`fly_to_waypoint`。
9. **方向移动优先原则**:当指令为“快速去往东边100米”直接使用 `move_direction` 节点+距离参数,严禁使用fly_to_waypoint
## 七、坐标计算规则(东北天坐标系 ENU
本系统统一使用东北天ENU坐标系
@@ -223,18 +232,6 @@
- **Z轴**:正方向为**天** (Up),负方向为**地** (Down)
**仅当指令涉及前往“具体地点”(如广场、大门)的偏移位置时,才需计算绝对坐标并使用`fly_to_waypoint`**
假设参照点坐标为 $(x_0, y_0, z_0)$,偏移距离为 $d$
- **"去广场东边 $d$ 米"**:目标坐标 $(x_0 + d, y_0, z_0)$ (使用 `fly_to_waypoint`
- **"去广场西边 $d$ 米"**:目标坐标 $(x_0 - d, y_0, z_0)$ (使用 `fly_to_waypoint`
- **"去广场北边 $d$ 米"**:目标坐标 $(x_0, y_0 + d, z_0)$ (使用 `fly_to_waypoint`
- **"去广场南边 $d$ 米"**:目标坐标 $(x_0, y_0 - d, z_0)$ (使用 `fly_to_waypoint`
- **"往上/升高 $d$ 米"**:目标坐标 $(x_0, y_0, z_0 + d)$
注意比如指令为“飞往东边100米”请直接使用 `move_direction` 节点,无需计算坐标)
**示例**
若"广场"坐标为 $(-17, 360, 3)$
- "去广场**东边**20米" -> 目标点 $(3, 360, 3)$
- "去广场**南边**30米" -> 目标点 $(-17, 330, 3)$
## 八、输出要求
仅输出1个严格符合上述所有规则的JSON对象。

View File

@@ -22,7 +22,7 @@ LLAMA_SERVER_DIR="${LLAMA_SERVER_DIR:-~/llama.cpp/build/bin}"
INFERENCE_MODEL_DIR="${INFERENCE_MODEL_DIR:-/home/a/models/AWQ/Qwen3-4B-Instruct-2507}"
VLLM_CONDA_ENV="${VLLM_CONDA_ENV:-VLLM}"
VLLM_SPECULATIVE_CONFIG="${VLLM_SPECULATIVE_CONFIG:-}"
VLLM_GPU_MEMORY_UTILIZATION="${VLLM_GPU_MEMORY_UTILIZATION:-0.6}"
VLLM_GPU_MEMORY_UTILIZATION="${VLLM_GPU_MEMORY_UTILIZATION:-0.5}"
VLLM_SERVED_MODEL_NAME="${VLLM_SERVED_MODEL_NAME:-local-model}"
EMBEDDING_MODEL="${EMBEDDING_MODEL:-~/models/gguf/Qwen3/Qwen3-Embedding-4B/Qwen3-Embedding-4B-Q5_K_M.gguf}"
VENV_PATH="${VENV_PATH:-${PROJECT_ROOT}/backend_service/venv}"

View File

@@ -1,10 +1,10 @@
无人机当前在地面,到广场查找穿黄色衣服的男子,找到后近距离拍照。
无人机当前在空中,回到广场,对戴帽子的人进行拍照。
无人机当前在空中去广场西边200米对过往的公交车拍张照然后返航。
无人机当前在空中,到广场查找绿色公交车,看见了拍个照片。
无人机当前在地面,到广场查找绿色公交车,看见了拍个照片。
无人机当前在空中,搜索小汽车,搜索到了我确认后再决定要不要拍照。
无人机当前在空中往广场西边飞200米持续监控5分钟发现人就拍照告诉我到时间可以返航。
无人机当前在空中,到广场边上的施工区域内,发现有没带安全帽的飞近后拍照。
无人机当前在地面,到广场边上的施工区域内,发现有没带安全帽的飞近后拍照。
无人机当前在空中,紧急回到广场,看见了红绿灯之后直接降落。
无人机当前在空中快速去往东边100米有身穿黑色衣服头戴帽子的男子在挟持他人对其进行拍照。
无人机当前在地面快速去往东边100米有身穿黑色衣服头戴帽子的男子在挟持他人对其进行拍照。
无人机当前在空中离黑色衣服戴帽子的人太远了照片看不清贴近到3米距离拍拍完可以直接返航。