Files
DronePlanning/backend_service/generated_reasoning_content/reasoning_content.md
2025-12-03 17:13:59 +08:00

5.7 KiB
Raw Blame History

好的我现在需要处理用户的任务指令生成一个符合要求的行为树JSON。首先我得仔细阅读用户的指令和参考知识确保理解所有要求。

用户的目标是搜索并锁定危险性最高的气球(红色>蓝色>绿色然后跟踪30秒后进行打击。参考知识中提到了三个地点但用户可能希望搜索的区域是这些地点附近或者需要根据这些坐标来规划路径。

首先,我需要确定无人机的起降点。参考知识中的地点坐标可能作为搜索区域的中心。比如,用户提到的“学生宿舍”坐标是(5,3,2)但可能需要选择一个合适的中心点进行搜索。不过用户没有明确指定搜索区域可能需要使用search_pattern来覆盖这些区域或者直接在某个中心点周围搜索。

接下来,任务流程应该是:起飞→飞往搜索区域→搜索目标→检测到目标后跟踪→打击。同时必须包含安全监控。

根据用户提供的参考知识,可能需要将搜索区域设置为某个中心点。比如,用户提到的“跷跷板”在(x:15, y:-8.5, z:1.2)但z坐标需要调整到至少1米所以可能设置为z=2。或者选择其他地点作为搜索中心。但用户没有明确说明可能需要假设搜索区域是这些地点的附近或者使用其中一个作为中心。

另外用户提到要搜索并锁定危险性最高的气球所以需要使用search_pattern或者object_detect。但因为是未知区域可能更适合使用search_pattern或者先飞到某个区域再进行检测。

根据任务范式可能需要先飞到某个坐标点然后进行搜索。例如使用fly_to_waypoint飞到某个中心点然后执行search_pattern。或者直接使用search_pattern覆盖多个区域。

不过参考知识中的三个地点可能作为搜索区域的中心,可能需要将搜索区域设置为这些点的附近。但用户没有明确说明,可能需要选择一个中心点,比如“学生宿舍”的坐标,或者综合考虑。

另外用户提到要锁定危险性最高的气球所以需要检测到红色气球。因此在search_pattern中target_class应为balloon并且description为“红色气球危险性高于蓝色气球高于绿色气球”或者在object_detect中设置description参数为“红>蓝>绿”。

但根据搜索模式search_pattern的参数需要target_class和description。所以可能需要设置target_class为balloondescription为“红>蓝>绿”。

接下来,流程应该是:

  1. 起飞到一定高度。
  2. 飞往搜索区域的中心点比如学生宿舍的坐标调整z到2
  3. 执行search_pattern搜索红色气球。
  4. 一旦检测到目标,进行跟踪。
  5. 跟踪30秒后打击。

同时安全监控必须包含电池和GPS检查以及紧急处理。

现在需要构建行为树结构。根节点是Parallel包含主任务和安全监控。主任务是Sequence包含起飞、飞往搜索点、搜索、跟踪、打击、降落。

在搜索部分可能需要使用search_pattern或者先飞到某个点再进行object_detect。但根据用户指令可能更适合使用search_pattern因为需要在未知区域搜索。

所以,主任务步骤:

  • preflight_checks
  • takeoff
  • fly_to_waypoint到某个中心点比如学生宿舍的坐标调整z为2
  • search_pattern参数为balloondescription为“红>蓝>绿”pattern_type可能是spiral或grid假设用spiral中心点为学生宿舍的坐标半径适当比如50米。
  • 然后当检测到目标后进行track_object跟踪30秒。
  • 然后strike_target打击。
  • 最后降落。

但需要确保在search_pattern之后检测到目标然后进入跟踪。或者可能需要使用Selector来选择直接检测或搜索。

但根据用户指令可能需要先飞到某个点再执行search_pattern。或者直接使用search_pattern覆盖多个区域。

参考知识中的三个地点可能作为搜索区域的中心,但用户没有明确说明,可能需要选择其中一个作为搜索中心。比如学生宿舍的坐标(x:5, y:3, z:2)调整z为2。

所以fly_to_waypoint的参数是x=5, y=3, z=2, acceptance_radius=2.0。

然后执行search_pattern参数为balloondescription为“红>蓝>绿”pattern_type为spiral中心点为学生宿舍的坐标半径比如50米。

之后当检测到目标后进行track_object参数为balloondescription为“红>蓝>绿”track_time=30.0min_confidence=0.7safe_distance=15.0。

然后strike_target参数为balloondescription为“红>蓝>绿”count=1。

最后降落。

同时安全监控需要包含电池和GPS检查以及紧急处理。

现在需要构建JSON结构确保所有参数符合约束并且流程正确。

可能的搜索中心是学生宿舍的坐标调整z为2。然后search_pattern的参数为balloondescription为“红>蓝>绿”pattern_type为spiralradius为50米center_x=5, center_y=3, center_z=2。

然后当检测到目标后进行track_object跟踪30秒然后打击。

在行为树中主任务Sequence的步骤包括

  • preflight_checks
  • takeoff (altitude=2.0)
  • fly_to_waypoint到学生宿舍的坐标调整z为2
  • search_pattern参数为balloondescription为“红>蓝>绿”pattern_type为spiralradius=50center_x=5, center_y=3, center_z=2
  • 然后当检测到目标后进行track_object
  • strike_target
  • land

同时安全监控的Selector包含电池和GPS条件以及紧急处理。

现在需要检查所有参数是否符合约束例如z=2符合≥1。

其他参数如radius=50符合[5,1000]。

所以生成的JSON结构应该符合这些要求并且流程正确。