AirSim多台无人机控制封装

多台无人机控制封装
文章目录总结
前言闲谈
拖了很久也没有更新文章,一个是因为项目紧急,当前做的仿真工作是为论文服务的,好消息是实验部分已经完成验证,有望在一个月左右完成初稿,届时仿真部分的代码工程会在开源,有兴趣的小伙伴记得关注哈;另外就是博主之前写的时候没什么人看,所以没有动力继续写博客 。该专栏大概半个月更新一次,大家学习过程有疑问积极在评论区留言(一般不看私信),我有时间就会回复的 。
本文实现的效果
在一个进程里通过类封装创建实例对象,利用多线程进行多台无人机的"并行"控制

AirSim多台无人机控制封装

文章插图
一、修改.json配置文件
为了方便在线程中对多个无人机进行相应绑定操作,如一号子线程控制一号无人机,5号子线程控制所有无人机起飞降落,销毁代理以及停止仿真等,对于每台无人机的名称,我们可以用基本名称和索引来组合,如
{"SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md","SettingsVersion": 1.2,"SimMode": "Multirotor","PawnPaths": {"Default": {"PawnBP": "Class'/Game/Matrice200/BP_FlyingPawn.BP_FlyingPawn_C'"}},"ClockSpeed": 1.0,"Vehicles": {"Drone0": {"VehicleType": "SimpleFlight","X": 10,"Y": 0,"Z": -0,"Yaw": 0,"EnableTrace": false},"Drone1": {"VehicleType": "SimpleFlight","X": 0,"Y": -6,"Z": -0,"Yaw": 0,"EnableTrace": false},"Drone2": {"VehicleType": "SimpleFlight","X": 0,"Y": -2,"Z": -0,"Yaw": 0,"EnableTrace": false},"Drone3": {"VehicleType": "SimpleFlight","X": 0,"Y": 2,"Z": -0,"Yaw": 0,"EnableTrace": false},"Drone4": {"VehicleType": "SimpleFlight","X": 0,"Y": 6,"Z": -0,"Yaw": 0,"EnableTrace": false}},"CameraDefaults": {"CaptureSettings": [{"ImageType": 0,"Width": 480,"Height": 360,"FOV_Degrees": 90}]}}
二、Base类封装 1.建立.yaml配置文件
为了方便配置实验时使用的无人机,以及设置一些基本参数,比如无人机的,控制的速度,角速率以及PID参数
等等,我们尽量将其写在.yaml文件中,不需要在程序中逐个查找修改 。
#****base configs **** #basic_rate: 0.05basic_velocity: 0.2yaw_ctrl_ratio: 0.02basic_throttle: 0.595base_name: 'Drone'show_trace_line: Falsetarget_vehicle_index: 0vehicle_index: [0, 1, 2, 3, 4]#****weather ctrl **** #weather_fog: 0.0weather_snow: 0.0weather_wind: [0, 0, 0]enable_weather_ctrl: False# NED axis, (0, 15, 0) --> right 15m/s
AirSim多台无人机控制封装

文章插图
2.类封装
代码如下:
等待整理上传
工程结构
我们在工程的根目录下建立data 以及 文件夹 。其中,data 文件夹用来存放 文件,保存数据集和视频等程序自动生成的数据,文件及用来存放各个模块的源代码
【AirSim多台无人机控制封装】总结