ROS系统

目录

在这里插入图片描述
主要面对分布式的控制

ROS通信系统

UAV1在话题中开辟(subscibe)一个话题(topic),将位置P1和速度V1发送到话题中; UAV2可以去订阅(advertise)UAV1的话题来进行通信
在这里插入图片描述

如图,UAV1提交信息到话题,UAV2订阅UAV1的话题;UAV2提交话题,UAV3订阅UAV2的话题,并提交UAV3的话题;UAV4订阅UAV1和UAV2的信息

ROS控制

无人机的协同控制本质就是协同执导
因此可将连续的控制器 转换成 离散的控制器
在这里插入图片描述
如图是连续系统的位置P,速度v的控制器。u是加速度
转为离散系统的控制器:
在这里插入图片描述
通过设计Ui来进行输入
转成离散系统的控制器方便编程

因此可以通过订阅自己的位置信息Pi,其他无人机的位置信息Pj,通过输入到控制器ctrler,获得下一个位置Pi(t+▲t),然后回馈
在这里插入图片描述
控制器采用的是PX4,PX4可以将控制信息输入到无人机中来控制无人机
先考虑多智能体系统MAS,不考虑PX4

所以重点考虑以下公式:
图1
在这里插入图片描述
UPi(t)=▲t*Vi(t)是设计的速度
ai(t)=uvi是设计的加速度
在这里插入图片描述
上图中第一个式子是一致性跟踪,第二个式子是加入了领导者
在这里插入图片描述

上式是领导者编队,收敛到hij等

通过将ai(t)输入到图1中的(2)式,获取Pi和Vi,然后提交话题,然后被订阅
在这里插入图片描述
因此在编程中,需要关注①提交和订阅谁,②实现(2)式,③实现控制器
在这里插入图片描述
在ROS中的main函数中会把上述的三个内容包含在while循环中一直进行循环

代码实现

在这里插入图片描述
launch:把MAS启动打包了,不用一个一个的启动
msg:相关信息,比如时间戳
output:中间产生的数据记录在此文件夹,生成matlab文件
param:存放和群相关的参数
src:源代码,包含领导者,跟随着,控制器
在这里插入图片描述

readme

cd uav_ws:进入工作空间
catkin_make:编译文件
roslaunch uavs_package multi_agent.launch:一个例子,(1领导者3跟随者),运行文件(打包了很多ROS指令)
roslaunch uavs_package multi_agent_1l5f.launch:一个例子(1领导者5跟随者),运行文件
运行完成,output文件夹中生成matlab文件,导入matlab,运行,结果如下:
在这里插入图片描述
在这里插入图片描述

main

在这里插入图片描述
第一行:控制器,公式2、提交和订阅集成到network中
if循环:输出到控制台,方便调试
rate.sleep:每20ms一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值