流程节点完善

This commit is contained in:
2026-02-26 19:37:55 +08:00
parent 5d8412bcb6
commit c7f6a0da17
3059 changed files with 4975 additions and 71239 deletions

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "on_ground",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "无人机当前在地面,起飞"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "无人机当前在空中,飞到广场"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "无人机当前在空中飞到广场北边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,17 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": true,
"entities": {
"raw_prompt": "无人机当前在空中,飞到面前的大楼"
},
"risk_flags": [
"relative_reference_detected"
],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene4",
"drone_state": "on_ground",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "无空中,飞到广场"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "on_ground",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "起飞"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "in_air",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到南广场"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到大楼"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "in_air",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到学校"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到学校北边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "in_air",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到宿舍"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到宿舍北边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到宿舍南边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到宿舍南边60米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "in_air",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到广场"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到广场北边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到广场南边"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到广场南边40米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到广场南边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到广场西边"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "in_air",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到建筑物A"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到建筑物A南边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "in_air",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到研究所东侧30米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到研究所东边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到研究所东边60米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到研究所东边60米的施工场所"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "scene1",
"drone_state": "in_air",
"intent_type": "generic_mission",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到研究所南边50米"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,15 @@
{
"target_stage": 1,
"stage_name": "TaskUnderstanding",
"output": {
"scene_mode": "simple",
"drone_state": "in_air",
"intent_type": "single_action",
"requires_relative_target": false,
"entities": {
"raw_prompt": "飞到研究院"
},
"risk_flags": [],
"constraints": {}
}
}

View File

@@ -0,0 +1,43 @@
{
"target_stage": 2,
"stage_name": "ContextBinding",
"output": {
"location_context": "{\"property\": \"location\", \"information\": {\"name\": \"广场\", \"coordinates\": {\"x\": 100, \"y\": 260, \"z\": 0}}}\n\n{\"property\": \"location\", \"information\": {\"name\": \"飞行场地\", \"coordinates\": {\"x\": 0, \"y\": 0, \"z\": 0}}}\n\n{\"property\": \"location\", \"information\": {\"name\": \"大楼外围四个点东南天坐标系坐标\", \"coordinates\": {\"A\": {\"x\": -24.0, \"y\": 241.8, \"z\": 0}, \"B\": {\"x\": -108.5, \"y\": 241.8, \"z\": 0}, \"C\": {\"x\": -108.5, \"y\": 289.8, \"z\": 0}, \"D\": {\"x\": -24.0, \"y\": 292.8, \"z\": 0}}}}",
"pattern_context": "无人机当前在空中往广场西边飞200米持续监控5分钟发现人就拍照告诉我到时间可以返航。\n\n无人机当前在地面去研究所正大门搜索扎辫子女子找到后拍照。\n\n地面起飞后到面前大楼约12米高度沿外围巡查打开窗户如发现窗户则拍照回传。",
"rules_context": "",
"citations": {
"location": [
"{\"property\": \"location\", \"information\": {\"name\": \"广场\", \"coordinates\": {\"x\": 100, \"y\": 260, \"z\": 0}}}",
"{\"property\": \"location\", \"information\": {\"name\": \"飞行场地\", \"coordinates\": {\"x\": 0, \"y\": 0, \"z\": 0}}}",
"{\"property\": \"location\", \"information\": {\"name\": \"大楼外围四个点东南天坐标系坐标\", \"coordinates\": {\"A\": {\"x\": -24.0, \"y\": 241.8, \"z\": 0}, \"B\": {\"x\": -108.5, \"y\": 241.8, \"z\": 0}, \"C\": {\"x\": -108.5, \"y\": 289.8, \"z\": 0}, \"D\": {\"x\": -24.0, \"y\": 292.8, \"z\": 0}}}}"
],
"pattern": [
"无人机当前在空中往广场西边飞200米持续监控5分钟发现人就拍照告诉我到时间可以返航。",
"无人机当前在地面,去研究所正大门,搜索扎辫子女子,找到后拍照。",
"地面起飞后到面前大楼约12米高度沿外围巡查打开窗户如发现窗户则拍照回传。"
],
"rules": []
},
"resolved_refs": {},
"precomputed_waypoints": [
{
"x": 150.0,
"y": 260.0,
"z": 0.0
}
],
"relative_refs": [],
"required_actions": [
"Selector",
"Sequence",
"fly_to_waypoint",
"land",
"move_direction",
"object_detect",
"object_detected",
"rotate_search",
"take_photos",
"takeoff"
]
}
}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@@ -0,0 +1,4 @@
Prompt: 无人机当前在地面,起飞
Status: 200
Latency: 1.738889217376709
Response: {"root": {"type": "action", "name": "takeoff", "params": {"altitude": 10.0}}, "plan_id": "aad1912a-c27d-4abd-bf62-3179fd61d6aa", "visualization_url": "/static/py_tree.png", "final_prompt": "=== System Prompt (Macro) ===\n你是一个无人机简单指令执行规划器。\n假设输入一定是“单一原子动作即可完成”的简单指令。你的任务是输出一个严格的JSON对象。\n\n输出要求必须遵守\n- 只输出一个JSON对象不要任何解释或多余文本。\n- JSON结构固定为\n{\"root\":{\"type\":\"action\",\"name\":\"<action_name>\",\"params\":{...}}}\n- root 节点必须是 action禁止输出 Sequence/Selector/Parallel 等控制流节点。\n- params 只能包含该动作定义内的字段,禁止自定义字段。\n- 数值请使用数字类型(例如 10.0)。\n\n可用动作simple 模式只允许从下列动作中选择其一):\n1) takeoff: {\"altitude\": float[1,100]}(仅当地面起飞)\n2) land: {\"mode\": \"current\"|\"home\"}\n3) fly_to_waypoint: {\"x\": number, \"y\": number, \"z\": number, \"acceptance_radius\": number(可选)}\n4) move_direction: {\"direction\": \"north\"|\"south\"|\"east\"|\"west\"|\"forward\"|\"backward\"|\"left\"|\"right\"|\"up\"|\"down\", \"distance\": number}\n5) rotate: {\"angle\": number, \"angular_velocity\": number(可选)}\n6) loiter: {\"duration\": number}\n7) system_checks: {\"check_level\":\"basic\"|\"comprehensive\"}(仅当指令明确在地面且用户要求自检)\n\n示例\n- “起飞到10米” → {\"root\":{\"type\":\"action\",\"name\":\"takeoff\",\"params\":{\"altitude\":10.0}}}\n- “往北飞50米” → {\"root\":{\"type\":\"action\",\"name\":\"move_direction\",\"params\":{\"direction\":\"north\",\"distance\":50.0}}}\n- “飞到(120,80,20)” → {\"root\":{\"type\":\"action\",\"name\":\"fly_to_waypoint\",\"params\":{\"x\":120.0,\"y\":80.0,\"z\":20.0,\"acceptance_radius\":2.0}}}\n\n\n=== User Prompt ===\n无人机当前在地面起飞\n\n---\n参考知识\n【地点知识】\n{\"property\": \"location\", \"information\": {\"name\": \"飞行场地\", \"coordinates\": {\"x\": 0, \"y\": 0, \"z\": 0}}}\n\n{\"property\": \"rules\", \"information\": {\"name\": \"紧急返航\", \"description\": \"当指令中要求紧急返航到某地时必须使用fly_to_waypoint节点严禁使用return_emergency节点。\"}}\n\n{\"property\": \"location\", \"information\": {\"name\": \"大楼外围四个点东南天坐标系坐标\", \"coordinates\": {\"A\": {\"x\": -24.0, \"y\": 241.8, \"z\": 0}, \"B\": {\"x\": -108.5, \"y\": 241.8, \"z\": 0}, \"C\": {\"x\": -108.5, \"y\": 289.8, \"z\": 0}, \"D\": {\"x\": -24.0, \"y\": 292.8, \"z\": 0}}}}\n---"}

View File

@@ -0,0 +1,12 @@
{
"root": {
"type": "action",
"name": "takeoff",
"params": {
"altitude": 10.0
}
},
"plan_id": "aad1912a-c27d-4abd-bf62-3179fd61d6aa",
"visualization_url": "/static/py_tree.png",
"final_prompt": "=== System Prompt (Macro) ===\n你是一个无人机简单指令执行规划器。\n假设输入一定是“单一原子动作即可完成”的简单指令。你的任务是输出一个严格的JSON对象。\n\n输出要求必须遵守\n- 只输出一个JSON对象不要任何解释或多余文本。\n- JSON结构固定为\n{\"root\":{\"type\":\"action\",\"name\":\"<action_name>\",\"params\":{...}}}\n- root 节点必须是 action禁止输出 Sequence/Selector/Parallel 等控制流节点。\n- params 只能包含该动作定义内的字段,禁止自定义字段。\n- 数值请使用数字类型(例如 10.0)。\n\n可用动作simple 模式只允许从下列动作中选择其一):\n1) takeoff: {\"altitude\": float[1,100]}(仅当地面起飞)\n2) land: {\"mode\": \"current\"|\"home\"}\n3) fly_to_waypoint: {\"x\": number, \"y\": number, \"z\": number, \"acceptance_radius\": number(可选)}\n4) move_direction: {\"direction\": \"north\"|\"south\"|\"east\"|\"west\"|\"forward\"|\"backward\"|\"left\"|\"right\"|\"up\"|\"down\", \"distance\": number}\n5) rotate: {\"angle\": number, \"angular_velocity\": number(可选)}\n6) loiter: {\"duration\": number}\n7) system_checks: {\"check_level\":\"basic\"|\"comprehensive\"}(仅当指令明确在地面且用户要求自检)\n\n示例\n- “起飞到10米” → {\"root\":{\"type\":\"action\",\"name\":\"takeoff\",\"params\":{\"altitude\":10.0}}}\n- “往北飞50米” → {\"root\":{\"type\":\"action\",\"name\":\"move_direction\",\"params\":{\"direction\":\"north\",\"distance\":50.0}}}\n- “飞到(120,80,20)” → {\"root\":{\"type\":\"action\",\"name\":\"fly_to_waypoint\",\"params\":{\"x\":120.0,\"y\":80.0,\"z\":20.0,\"acceptance_radius\":2.0}}}\n\n\n=== User Prompt ===\n无人机当前在地面起飞\n\n---\n参考知识\n【地点知识】\n{\"property\": \"location\", \"information\": {\"name\": \"飞行场地\", \"coordinates\": {\"x\": 0, \"y\": 0, \"z\": 0}}}\n\n{\"property\": \"rules\", \"information\": {\"name\": \"紧急返航\", \"description\": \"当指令中要求紧急返航到某地时必须使用fly_to_waypoint节点严禁使用return_emergency节点。\"}}\n\n{\"property\": \"location\", \"information\": {\"name\": \"大楼外围四个点东南天坐标系坐标\", \"coordinates\": {\"A\": {\"x\": -24.0, \"y\": 241.8, \"z\": 0}, \"B\": {\"x\": -108.5, \"y\": 241.8, \"z\": 0}, \"C\": {\"x\": -108.5, \"y\": 289.8, \"z\": 0}, \"D\": {\"x\": -24.0, \"y\": 292.8, \"z\": 0}}}}\n---"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long