RXDlwE 发表于 2020-7-4 19:11:50

Pixhawk无人机扩展教程(6)---启动SITL+MAVProxy

上一节教程介绍了Ardupilot开发环境的安装,具体请参考Pixhawk无人机扩展教程(5)---SITL仿真模拟飞行:开发环境搭建 。

接下来我们介绍第二步:Ardupilot在环仿真:SITL+MAVProxy


一、启动仿真环境

开发环境安装好,启动仿真就比较简单了

1.首先要进入需要仿真的多旋翼无人机的目录下:

cd ardupilot/ArduCopter

2.如果是第一次运行仿真,需要运行以下命令进行初始化:

sim_vehicle.py -w

或则是模拟器参数被改的乱七八糟的时候,也可用这个命令恢复初始参数。

启动完毕,使用 Ctrl+C 终止正在运行的sim_vehicle.py -w

3.接下来就可以启动模拟器了:

sim_vehicle.py --console --map

正常启动后,就会看到三个窗口:Terminal, Console, Map,这样最基本的软件在环仿真程序就运行起来了。

注意:如果没有看到窗口,可能是由于MAVProxy,pymavlink,future,lxml这几个python包没有安装好,运行下面的命令安装:

sudo -H pip2 install --upgrade MAVProxy pymavlink future lxml

二、树莓派的代码如何连接SITL仿真运行?
前面的教程我们在树莓派中编辑了一个脚本控制无人机(参考:Pixhawk无人机扩展教程(4)---使用Dronekit编写一个控制程序) 。当时只是编辑好,并没有运行。下面我们就在仿真中运行这个脚本,看看是无人机具体是如何飞行的。

树莓派无人机接上电池,确保无人机和笔记本电脑都能正常连接到同一个局域网 (注意:每次电脑和树莓派连接到路由器的IP可能会变动,没有绑定IP的话,建议每次连接前查看一下路由器IP分配是否和以前一样,否则ssh连接会报错。)
树莓派端执行:
[*]
笔记本开启一个终端窗口,通过 ssh命令连接树莓派;
[*]
在test文件夹下,新建example2.py文件:

cd test

touch example2.py
[*]
用vim编辑文件:

sudo vim example2.py

将example1.py中的内容复制到example2.py中,但是需要修改连接部分,如下所示:




其中connection_string = '192.168.1.7:14550'   IP地址为你的树莓派IP

没有在example1示例中直接修改是便于大家对照改动的地方。主要是连接的地址不一样。如果要运行仿真演示则运行example2.py;运行example1.py是直接控制飞控飞行。

笔记本端执行:

[*]再打开一个终端窗口,快捷键:Ctrl+Alt+T,在这个终端里启动仿真:cd ardupilot/ArduCoptersim_vehicle.py --console --map
[*]启动后通过output命令列出MAVProxy转发数据的接口,如下所示:


[*]
使用output add命令增加树莓派IP接口:

output add 192.168.1.7:14550

其中地址为你的树莓派的IP,与example2.py代码中地址一致。




树莓派端执行:

[*]
点击第一个终端窗口,运行example2.py代码

python example2.py

代码运行以后就可以看到仿真窗口有数据变化了,整个过程如下:

http://static.video.qq.com/TPout.swf?vid=wxv_1228153682047434755&1314.swf


这样我们就很直观的看到代码控制飞机飞行的状态了。这是一个很简单的程序,飞机分别飞到2个航点,最后自动返航。以后大家可以在这个基础上进行扩展,编写符合自己项目的python程序。Dronekit-python API参考:Dronekit API

下节教程介绍SITL仿真在missionplanner或则QGC地面站上的运行,以及通过MAVProxy命令控制飞机飞行。请大家继续关注!





[*]

xuqy03 发表于 2021-1-10 19:40:05

ArduCopter下没有py脚本是为啥?
页: [1]
查看完整版本: Pixhawk无人机扩展教程(6)---启动SITL+MAVProxy