SITL仿真环境搭建
ardupliot源码下载与编译
首先需要安装Ardupliot开源飞控的开发环境,参考这个知乎博主的文章:链接
我的安装环境 ubuntu20.04。先下载Ardupilot源码,然后进入ardupilot文件夹更新一下子模块
git clone https://github.com/ArduPilot/ardupilot
cd ardupilot
git submodule update --init --recursive
之后,根据网上大多数文章推荐的方法运行对应的sh执行脚本开始安装所需的各种依赖包
Tools/scripts/install-prereqs-ubuntu.sh -y
这一步没有文章里的遇到问题,继续下一步配置路径
Tools/environment_install/install-prereqs-ubuntu.sh -y
. ~/.profile
到此Ardupilot的开发环境就已经安装好。接下来编译源码,ardupilot源码已经转向Waf工具编译,所以编译指令有所区别,并且需要注意一定在ardupilot安装的根目录执行,这点与make不同。
编译固定翼
./waf --targets bin/arduplane --upload
编译多旋翼
./waf --targets bin/arducopter --upload
直接使用上面的命令就完成了编译和下载
启动仿真环境
安装好开发环境后,启动仿真比较简单,首先进入需要仿真的旋翼/固定翼无人机的目录下,若是第一次仿真需要运行sim_vehicle.py -w,若不是可以直接使用sim_vehicle.py --console --map开始仿真。
cd ardupilot/ArduCopter
//sim_vehicle.py -w //第一次仿真时使用
sim_vehicle.py --console --map
ctrl+c可结束仿真
多机仿真
多架无人机仿真需要修改mavproxy输入输出的端口、无人机home位置、飞机ID。每添加一架需要在旋翼/固定翼无人机目录下打开新的终端,输入下面的其中一条命令
sim_vehicle.py --map --console -L Kejiguan1 -I 0 has FDM in/out ports of 9002/9003 / GCS connection UDP:14550 --sysid=1
sim_vehicle.py --map --console -L Kejiguan2 -I 1 has FDM in/out ports of 9012/9013 / GCS connection UDP:14560 --sysid=2
sim_vehicle.py --map --console -L Kejiguan3 -I 2 has FDM in/out ports of 9022/9023 / GCS connection UDP:14570 --sysid=3
sim_vehicle.py --map --console -L Kejiguan4 -I 3 has FDM in/out ports of 9024/9025 / GCS connection UDP:14580 --sysid=4
–map 打开地图
–console 打开log界面
-L 设置无人机home位置
-I 辨识第几架无人机
has FDM in/out ports of ----/---- GCS connection UDP:----用于设置端口,不能重复
–sysid 设置飞机ID
连接QGC
如果是在虚拟机上仿真,需要设置网络模式,桥接模式或者NAT模式
桥接模式下,
在对应模拟无人机的终端中输入output,可列出MAVProxy转发数据的接口。
output add 添加MAVProxy转发数据接口,ip使用ubuntu下ip(虚拟机需要和windows主机在一个局域网内),端口与其他的不同就可以,比如output add 192.168.161.1:14552
设置好后在QGC中使用UDP连接,目标主机地址为虚拟机中有线网络地址—.---.—.---😗****, 填写和刚刚对应的端口号,然后创建连接
NAT模式下,
大致过程相同,只有IP地址有差异
在虚拟机中对应模拟无人机的终端中output add 的ip地址是虚拟机nat虚拟网卡的ip地址(在windows cmd中ipconfig可查看)
设置好后在QGC中使用UDP连接,使用本地回环地址127.1.1.1:*****, 填写和刚刚对应的端口号,然后创建连接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)