查看: 2207|回复: 3

ArduPilot 软件在环仿真SITL(SITL+Mission Planner)

[复制链接]
发表于 2022-9-25 14:32:50 | 显示全部楼层 |阅读模式
Ardupilot 软件在环SITL仿真不仅可以使用MAVProxy地面站,也可以使用图形化界面更完善的Mission PLanner地面站。
Ardupilot开发环境的配置以及软件在环SITL仿真可见之前的文章:
Ardupilot开发环境搭建(Ubuntu18.04,20190407)
ArduPilot 软件在环仿真SITL(SITL+MAVProxy)
飞行计划文件(航迹文件)

上次文章中介绍了基于SITL和MAVProxy地面站的仿真,主要是通过加载飞行计划的方式进行飞行控制的,但没有对飞行计划文件进行详细说明,所以本文首先介绍飞行计划文件。
飞行计划文件本质就是存储一系列有序迹点(Waypoints)的普通文本文件。在自动飞行模式下仿真时会读取此文件,并按照迹点控制飞行。

  • 此文件通过QGC WPL 110开始;
  • 之后是一系列迹点,第一个迹点为home location;
  • 每一行迹点包括12个数值,分别为,


  • 迹点序号
  • 当前迹点,一般在home location设置为1,其余waypoint设置为0
  • 坐标系,当设置为0时采用绝对高度,为1时采用相对高度
  • 迹点类型(命令),例如22为自动起飞模式,16为导航向此迹点,21为自动降落等等
  • 4个命令相关参数,这四个参数与迹点类型相关
  • 3个坐标值,经纬度和高度
  • 迹点连续运行,设置为1,迹点会被连续读取

ArduPilot 软件在环仿真SITL(SITL+Mission Planner)-3863

WAYPOINTS

上述说明已经Waypoints文件的构成方式,但也能看出如果自行编辑此文件还是有一定难度的,所以下面说明如何通过Mission Planner地面站以图形化的方式生成Waypoints文件。

ArduPilot 软件在环仿真SITL(SITL+Mission Planner)-7060

Waypoints-Mission Planner

选中飞行计划选项卡后,可以通过在地图上点击的方式增加迹点,通过下拉菜单可以选择迹点类型(命令),并且配置类型相关参数,坐标XYZ会自动生成,最后可以通过右侧的保存航点文件来生成Waypoints文件。上图是我生成一个简单例子。
SITL与Mission Planner联合仿真

首先还是通过下述语句进入软件在环仿真环境,
cd ~/ardupilot/ArduCopter
sim_vehicle.py --map --console之后可以通过output语句列出MAVProxy转发数据的接口
MANUAL> output
MANUAL> 2 outputs
0: 127.0.0.1:14550
1: 127.0.0.1:14551上面的列表说明我们可以通过上述接口连接MAVProxy和Mission Planner。如果需要更多接口可以通过下述命令增加接口。
MANUAL> output add 192.168.126.1:14552
MANUAL> Adding output 192.168.126.1:14552
MANUAL> output
MANUAL> 3 outputs
0: 127.0.0.1:14550
1: 127.0.0.1:14551
2: 192.168.126.254:14552如果Mission Planner与MAVProxy在同一台机器上可以通过UDP直接连接。

ArduPilot 软件在环仿真SITL(SITL+Mission Planner)-5376

Mission Planner与MAVProxy建立网络连接

若是Ardupilot的开发环境建立在虚拟机中,而Mission Planner运行在windows,需要设定一下网络链路首先获取虚拟机连接模式所用的虚拟网卡地址。下述实验使用的虚拟机网络模式为NAT模式,对应的虚拟网卡为VMnet8。使用ipconfig /all 可以查询到IPv4地址为192.168.126.1。通过 output add 192.168.126.1:14552增加此网络链路,之后可以通过此链路(127.0.0.1:14552)来连接Mission Planner与MAVProxy。
当Mission Planner与MAVProxy建立好连接之后,就可以运行仿真命令开始软件在环仿真。
MANUAL> wp load ../Tools/autotest/CMAC-circuit.txt
MANUAL> Loaded 8 waypoints from ../Tools/autotest/CMAC-circuit.txt
MANUAL> mode guided
MANUAL> GUIDED>  
GUIDED> arm throttle
GUIDED> takeoff 40
GUIDED> Take Off started
GUIDED> mode auto
ArduPilot 软件在环仿真SITL(SITL+Mission Planner)-7045

Mission Planner和MAVProxy联合仿真

仿真时可以在Mission Planner中看到飞机飞行姿态、飞行轨迹、舵机输出、遥测日志等等。
发表于 2022-9-25 14:47:49 | 显示全部楼层
安装MAVProxy地面站了么?
回复 支持 反对

使用道具 举报

发表于 2022-9-25 14:56:40 | 显示全部楼层
我的mp和mav的udp连接错误是怎么回事?连不上,再有就是mp上的模型可以同步在mav上吗?比如直升机
回复 支持 反对

使用道具 举报

发表于 2022-9-25 15:03:34 | 显示全部楼层
请教博主,我用的sitl+ubuntu树莓派+MP地面站+开源飞控进行仿真,我怎么才能让地图显示为当地实时地图呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表