无人机Leader follower集群编队实现

../_images/swarm_sitl_3uav_leader_follower.png

Leader-Follower 模型是多智能体系统中普遍接受的研究范式,其中一个智能体被指定为 Leader (领队者),而其他智能体则充当 Follower (跟随者)并与其邻域保持相对距离以实现编队。 在本教程中,我们将向读者展示一个执行无人机 Leader-Follower 集群编队实现的示例。

1.任务说明

根据 Leader-Follower 模型,可以通过控制 Leader 飞到指定位置来实现无人机群飞行任务。Leader 可以接受自主服务呼叫的命令或仅来自手动控制的命令。 该演示是在状态机的基础上构建的,S_FORMATION_LEADER_FOLLOWER 子任务枚举表示无人机集群处于 leader-follower 机动状态。

2.如何运行

Hint

DASA 代码库正在快速开发迭代中,因此建议用户参考我们产品随附的最新用户手册。

2.1 SITL 虚拟仿真

SITL仿真可以在基于虚拟环境的Gazebo引擎中进行(参考 DASA Simulation Environment for Heterogeneous Robot Swarm)。 在目录 ~/DASA_space/catkinws_swarmdemo/scripts 中提供了3 台无人机集群虚拟仿真的启动脚本。

首先必须使用 Gazebo 引擎启动 SITL 节点:

cd  ~/DASA_space/catkinws_swarmdemo/scripts/sitl
bash start_sitl_nodes_3uavs.sh

用户只有在Gazebo界面出现后才能启动其他swarm节点:

cd  ~/DASA_space/catkinws_swarmdemo/scripts/sitl
bash start_leaderfollower_mission_swarm_nodes_3uavs.sh

然后无人机群将自动启动任务。 用户可以使用 RequestLeaderVehicleCmd 服务向 Leader 发送请求。 以下命令将请求 Leader (uav1) 移动到位置 [5.0, 5.0, 5.0]。

cd ~/DASA_space/catkinws_swarmdemo/
source devel/setup.bash
rosservice call /uav1/swarm_mission/request_leader_cmd "leader_behavior_id: 1
params:[5.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]"

2.2 飞行测试

首先在飞行测试之前完成定位设置(参考 Start Localization Process in Indoor DASA System:)。用户远程登录这些飞行器后,可以使用以下脚本启动 3 架无人机的 leader-follower 任务节点:

cd  ~/DASA_space/catkinws_swarmdemo/scripts/test
bash start_indoor_leaderfollower_mission_3uavs.sh

然后可以通过将这些机器设置为offboard和解锁状态来启动任务。

3.视频演示

以下视频包含 SITL 虚拟仿真 和飞行测试的演示: