模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

2332查看 | 1回复

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

[复制链接]
发表于 2020-7-4 19:11:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
上一节教程介绍了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中,但是需要修改连接部分,如下所示:

    Pixhawk无人机扩展教程(6)---启动SITL+MAVProxy 无人机,仿真,多旋翼,电池,飞控 作者:RXDlwE 9820


其中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转发数据的接口,如下所示:

    Pixhawk无人机扩展教程(6)---启动SITL+MAVProxy 无人机,仿真,多旋翼,电池,飞控 作者:RXDlwE 4323

  • 使用output add命令增加树莓派IP接口:

    output add 192.168.1.7:14550

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

    Pixhawk无人机扩展教程(6)---启动SITL+MAVProxy 无人机,仿真,多旋翼,电池,飞控 作者:RXDlwE 6894


树莓派端执行:


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

    python example2.py

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

    [media=x,100%,100%]http://static.video.qq.com/TPout.swf?vid=wxv_1228153682047434755&1314.swf[/media]


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

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







发表于 2021-1-10 19:40:05 | 显示全部楼层
ArduCopter下没有py脚本是为啥?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|关于模吧|APP下载|广告报价|手机版|企业会员|商城入驻|联系我们|模吧 ( 黔ICP备2022002348号-1 )

© 2013-2020 Moz8.com 模吧,玩出精彩!