Skip to content

编队飞行

Yuhua edited this page Dec 26, 2020 · 3 revisions

多机Gazebo仿真及编队飞行

本教程的目的:

  • 了解多机Gazebo仿真
  • 了解如何进行编队控制,并切换队形

编队控制程序

  • 目前提供的控制方式有: ( 此处欢迎感兴趣的小伙伴贡献代码或分布式控制算法 )
    • 集中式控制,由formation_flight节点发布各无人机期望位置 
    • 分布式速度控制,即一阶积分器模型,每一台无人机只接受虚拟领机和相邻两台无人机的位置信息,参考文献:Multi-Vehicle consensus with a time-varying reference state
  • 提供的示例为5架飞机,可扩展至更多架,但需要对代码进行一定的改动

swarm_controller.cpp(prometheus_control模块)

  • 订阅集群控制指令,包括控制方式、虚拟领机的位置、阵型等
  • 订阅本机及邻居位置信息
  • 利用command_to_mavros类进行控制

formation_flight.cpp(prometheus_mission模块)

  • 发布集群控制指令

Gazebo仿真流程

launch_swarm文件夹
  • 多无人机编队飞行(可实现切换阵型,编队飞行等)

    roslaunch prometheus_gazebo sitl_swarm_control_3uav.launch
    roslaunch prometheus_gazebo sitl_swarm_control_5uav.launch
  • 多无人机无人车混合编队飞行(开发测试阶段,功能不齐全)(需要安装turtlebot功能包)

    roslaunch prometheus_gazebo sitl_swarm_4uav_4ugv.launch
    roslaunch prometheus_gazebo sitl_swarm_control_5uav.launch
Clone this wiki locally