在上一篇QGC+PX4+AirSim软件仿真(Linux+Windows下)中,使用QGC+PX4+AirSim进行仿真测试,本文尝试使用Ardupilot替换PX4。
Cygwin
从cygwin下载setup-x86_64.exe
在命令行中运行
1
| setup-x86_64.exe -P autoconf,automake,ccache,cygwin32-gcc-g++,gcc-g++,git,libtool,make,gawk,libexpat-devel,libxml2-devel,python37,python37-future,python37-lxml,python37-pip,libxslt-devel,python37-devel,procps-ng,zip,gdb,ddd
|
或者根据Cygwin安装与配置使用界面安装
AirSim
按照流程编译安装运行UE/VS/AirSim
ARM-GCC
从ARM-GCC下载程序
一路默认
记得勾选添加环境变量
MAVProxy
MAVProxy下载程序
一路默认安装
编译
打开Cygwin65-Terminal终端,先下载代码
1 2 3 4 5 6 7 8 9
| $ git clone https://github.com/ArduPilot/ardupilot.git Cloning into 'ardupilot'... remote: Enumerating objects: 436168, done. remote: Counting objects: 100% (191/191), done. remote: Compressing objects: 100% (106/106), done. remote: Total 436168 (delta 110), reused 132 (delta 85), pack-reused 435977 Receiving objects: 100% (436168/436168), 300.50 MiB | 1.11 MiB/s, done. Resolving deltas: 100% (326866/326866), done. Updating files: 100% (5805/5805), done.
|
切换至Copter-4.3分支
基础库
先编译基础库
1 2
| ./waf configure --board CubeBlack ./waf copter
|
命令运行会停在
1 2 3 4 5 6 7 8 9 10
| Checking for program 'arm-none-eabi-size' : /cygdrive/c/Program Files (x86)/GNU Arm Embedded Toolchain/10 2020-q4-major/bin/arm-none-eabi-size Benchmarks : disabled Unit tests : disabled Scripting : enabled Scripting runtime checks : enabled Debug build : disabled Coverage build : disabled SITL 32-bit build : disabled Checking for program 'rsync' : /usr/bin/rsync 'configure' finished successfully (6.434s)
|
直接Ctrl + C退出即可
SITL
编译软件在环
1 2
| ./waf configure --board=sitl --toolchain x86_64-pc-cygwin ./waf copter
|
测试
使用软件在环测试
1
| ./Tools/autotest/sim_vehicle.py --map --console -v ArduCopter -f airsim-copter --add-param-file=./Tools/autotest/default_params/airsim-quadX.parm --auto-sysid -N
|
-n
启动几个--instance 0
单线程运行,与-n
冲突-N
不编译运行--auto-sysid
自动配置id
经过一段时间的编译后
自动运行程序、地图、MAVProxy
启动AriSim,运行,自动显示模型
手动打开qgc,等待一段时间后
地图上出现四旋翼无人机
规划航线,起飞
问题
GPS is not healthy
起飞时提示GPS不健康,添加命令行参数--add-param-file=./Tools/autotest/default_params/airsim-quadX.parm
同时在此文件中添加
说明
- SITL需要比UE先启动,否则UE会处于假死状态等待SITL启动
- 中文版QGC无法规划航线
- m 切换至 模型视角 WASD控制上下左右,上下左右控制场景缩放
Page Up/Down
控制模型 - i 切换至 模型摄像头视角