您的位置:首页 > 运维架构 > Linux

在Linux下设置SITL(Software In The Loop)

2018-01-22 17:44 387 查看
     PIX飞控本身已经做的很完善了,但是如果要做某些个性化的应用,我们就需要修改其源代码来满足自己的需求。相应的地面站程序也可以自行修改。但是改动过后的代码是不能直接用到飞机上飞的,不然铁定会炸机。所以我们需要在电脑上模拟一个仿真的环境来验证修改后的代码确实有我们所期望的性能。APM的代码中集成了仿真程序,只需要做一些简单的设置就可以方便地搭建出一个运行在电脑上的完全模拟真实飞行的仿真环境。

参考:

ArduPilot官网上的说明:http://dev.ardupilot.com/wiki/simulation-2/sitl-simulator-software-in-the-loop/setting-up-sitl-on-linux/ 和 博客http://blog.csdn.net/icebrick333/article/details/46723557

windows7下安装VM12虚拟机,Ubuntu16.04(这是我仿真的环境)

一、下载源代码

1、首先需要有ardupilot的源代码,可以到github上下载:https://github.com/diydrones/ardupilot/tree/ArduCopter-3.2.1因为我的飞控板用的PIX2.6,所以飞控程序的最高版本就是Copter3.2,如果是其他的飞控板,需要下载对应版本的飞控程序。(如何在github上面克隆branch和tag文件 和Ubuntu16.04下如何编译
ardupilot )

    如果电脑中安装了git,也可以直接使用这个命令从github仓库中克隆源代码:

[plain] view
plain copy

git
clone -b Copter-3.2 https://github.com/ArduPilot/ardupilot.git 
    2、下载一些依赖包

我的飞控程序是跑在ubuntu上的,所以对应的命令是:

[plain] view
plain copy

sudo apt-get install python-matplotlib python-serial python-wxgtk2.8 python-lxml  

sudo apt-get install python-scipy python-opencv ccache gawk git python-pip python-pexpect  

sudo pip install pymavlink MAVProxy  

 3、添加一些目录到系统的搜索路径中。

[plain] view
plain copy

export PATH=$PATH:$HOME/ardupilot/Tools/autotest 

.~/.bashrc

 

4、启动PIX SITL(Simulator in the loop)仿真

首先将命令窗口定位到你需要仿真的文件夹,比如我需要仿真Copter程序,则定位到ardupilot/ArduCopter地址。

第一次运行前需要把各项参数都恢复到默认值,以后当参数被改的乱七八糟的时候,也可以用这条命令恢复。(也可以不用)

[plain] view
plain copy

sim_vehicle.sh -w  

参数设为默认值后就可以启动仿真程序了

[plain] view
plain copy

sim_vehicle.sh --console --map --aircraft test  

或者sim_vehicle.sh
-j4 --map --console

结果如下图所示:



连接Mission planner 地面站

方法:在ubuntu系统中运行Ardupilot仿真程序,在Windows下运行修改过的mission planner ,利用内网将两者连接。

步骤:

1、设置网络环境:

确保运行mission planner的Windows电脑和运行ArduPilot仿真程序的Ubuntu电脑在同一内网环境中。

查找运行Windows电脑的网络IP地址,比如为192.168.35.121

2、在启动仿真程序后,在控制台中输入输入

[plain] view
plain copy

output add 192.168.35.128:14550  

或者直接在包括在启动选项中:

[plain] view
plain copy

sim_vehicle.sh --console --map --aircraft test --out 192.168.3.101:14550  

在mission 中连接结果如下:



3.在飞行计划中写入航点如下图所示:



4、在控制台中依次输入如下箭头所示命令:

并保证Alt:9 有变化:



5、选择Auto,点击设置模式便可沿轨迹飞行:也可以修改飞行模式。



6、选择RTL模式便可回到home



PS:

如果觉得设置都正确但是仍然不能相互连通,两台电脑可以试着互相ping:

[plain] view
plain copy

<span style="color:#ff0000;">ping 对方机器的IP</span>  

Windows系统需要关闭防火墙。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: