多机型混合仿真支持
多机SITL配置文件的生成
启动python脚本生成多机launch文件
cd ~/XTDrone/coordination/launch_generator
python3 generator.py
注意,多机仿真非常消耗CPU,CPU性能较好的笔记本,能完成10架的仿真,如果再多,您可能需要更强的台式机甚至工作站。
进入到launch生成脚本界面,输入0-7选择机型,enter确认后输入该机型的数量,之后输入该机型占据的行数(这样可以构成矩形阵列)。添加结束后输入f进行launch文件的生成。
将生成出来的launch文件复制到PX4固件的launch文件夹
cp ~/XTDrone/coordination/launch_generator/multi_vehicle.launch ~/PX4_Firmware/launch/
启动多机PX4仿真(下面展示图是为了演示能生成很多机型,这样的仿真笔记本是无法带动的)
cd ~/PX4_Firmware/
roslaunch px4 multi_vehicle.launch
注意,generator.py生成的launch文件中的无人机自带了特定的传感器,如果不需要此传感器,或者需要别的传感器,需要修改launch文件中的模型SDF部分,详见《配置与控制不同的无人机》教程。
给多机建立通信,首先修改启动脚本
gedit ~/XTDrone/communication/multi_vehicle_communication.sh
将各机型的数量对应修改
#!/bin/bash
iris_num=0
typhoon_h480_num=0
solo_num=0
plane_num=3
rover_num=2
standard_vtol_num=0
tiltrotor_num=4
tailsitter_num=0
然后运行此脚本
cd ~/XTDrone/communication
bash multi_vehicle_communication.sh
建立通信后,可以在control目录下分别启动对应机型的键盘控制脚本,即可实现利用键盘同时控制多机型。当然多机型的控制,实际肯定是要编写脚本,不依赖手动控制的无人驾驶,这些就有待后续的开发了。
eg:
cd ~/XTDrone/control/keyboard
python vtol_keyboard_control.py tiltrotor 4 vel
vel是说明多旋翼模态下我们使用速度控制。固定翼模态的控制方法与固定翼是一样的。4表示4架无人机
如果要关闭这些通信,运行
cd ~/XTDrone/communication
bash stop_communication.sh