无人机控制封装"/>
AirSim多台无人机控制封装
AirSim多台无人机控制封装
文章目录
- AirSim多台无人机控制封装
- 前言闲谈
- 本文实现的效果
- 一、修改settings.json配置文件
- 二、Base类封装
- 1.建立configs.yaml配置文件
- 2.类封装
- 工程结构
- 总结
前言闲谈
拖了很久也没有更新文章,一个是因为项目紧急,当前做的仿真工作是为论文服务的,好消息是实验部分已经完成验证,有望在一个月左右完成初稿,届时仿真部分的代码工程会在Github开源,有兴趣的小伙伴记得关注哈;另外就是博主之前写的时候没什么人看,所以没有动力继续写博客。该专栏大概半个月更新一次,大家学习过程有疑问积极在评论区留言(一般不看私信),我有时间就会回复的。
本文实现的效果
在一个进程里通过类封装创建实例对象,利用多线程进行多台无人机的"并行"控制
一、修改settings.json配置文件
为了方便在线程中对多个无人机进行相应绑定操作,如一号子线程控制一号无人机,5号子线程控制所有无人机起飞降落,销毁AirSim代理以及停止仿真等,对于每台无人机的名称,我们可以用基本名称和索引来组合,如
{"SeeDocsAt": ".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.建立configs.yaml配置文件
为了方便配置实验时使用的无人机,以及设置一些基本参数,比如无人机的base_name,控制的速度,角速率以及PID参数
等等,我们尽量将其写在configs.yaml文件中,不需要在程序中逐个查找修改。
# **** base configs **** #
basic_rate: 0.05
basic_velocity: 0.2
yaw_ctrl_ratio: 0.02
basic_throttle: 0.595base_name: 'Drone'
show_trace_line: Falsetarget_vehicle_index: 0
vehicle_index: [0, 1, 2, 3, 4]# **** weather ctrl **** #
weather_fog: 0.0
weather_snow: 0.0
weather_wind: [0, 0, 0]
enable_weather_ctrl: False
# NED axis, (0, 15, 0) --> right 15m/s
2.类封装
代码如下:
等待整理上传
工程结构
我们在工程的根目录下建立data 以及uav_swarm 文件夹。其中,data 文件夹用来存放 configs文件,保存数据集和视频等程序自动生成的数据,uav_swarm 文件及用来存放各个模块的源代码
总结
更多推荐
AirSim多台无人机控制封装
发布评论