Pixhawk VTOL SITL仿真

Pixhawk(VTOL) 和 SITL Simulation

需求的软件:

MAVProxy

下载地址:http://firmware.ardupilot.org/Tools/MAVProxy/MAVProxySetup-latest.exe

Cygwin

下载地址:https://cygwin.com/setup-x86.exe

Mission Planner

这个大家肯定都已经安装了。

FlightGear

下载地址:http://www.flightgear.org/download/

安装步骤:

Tips:主要的安装过程基本都是和官网一样,只有几个特别的地方需要注意,在文档中我用红色的字体标出。我测试的系统是win10.所有的软件都是下载的最新版,不用局限于官网上说明的版本。

官网地址:(一定要注意跟着官方教程一步步来,不要跳步)

Setting up SITL on Windows - Dev documentation

  1. 安装 MAVProxy。 这个没什么好说的默认安装就可以了。

  2. 安装 Cygwin。安装后一路点默认,选择镜像地址的时候我选择的第一个,速度很快。安装后会出现官网的如下界面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lpx7TIkW-1654007201567)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ba231152-b446-4002-ac97-7c038ed99b32/Untitled.png)]

    如果安装的最新版本会和这个图片有一个地方不一样但是搜索就可以,通过搜索找到如下所有安装包。在安装的过程中要注意一下 Category/Name/Description。找到后点击一下skip。都选完后点击下一步就可以了。

    以下安装过程建议使用命令行而不是手动查找:(这里我使用 python38 替代 python37)

    注:这一步如果有漏装的包可能导致后面安装 pymavlink 的时候出错

    .\setup-x86_64.exe -P autoconf,automake,ccache,cygwin32-gcc-g++,gcc-g++,git,libtool,make,gawk,libexpat-devel,libxml2-devel,python38,python38-future,python38-lxml,python38-pip,libxslt-devel,python38-devel,procps-ng,zip,gdb,ddd
    

Untitled

cygwin 安装 Python3 参考链接:

在cygwin上运行python3_Wertolf的博客-CSDN博客_cygwin python

全部安装完成后,打开桌面上的 Cygwin 终端,然后在关闭,这样就会在你的 Cygwin 的 home 目录下生成path文件。进入到你的目录(例如:C:\cygwin64\home\user_name\)打开 .bashrc 文件,该文件为隐藏文件,如果找不到请打开显示隐藏文件。在文件的最后一行添加

export PATH=$PATH:$HOME/ardupilot/Tools/autotest
# 这里我的路径
export PATH=$PATH:/cygdrive/d/git-repository/ardupilot/Tools/autotest

这个路径在设置的过程中要换成你自己的 ardupilot 中的 autotest 路径。由于本人比较笨设置了很多次都没有设置成功,所以将已经下载好的 ardupilot 文件拷贝到Cygwin的home/user_name/目录下就可以了如果是用下面所说的Cygwin终端下载的源码就会自动下载到该目录下。

设置好PATH后,添加Python包:

打开Cygwin终端:依次输入下面命令:

注:以下命令也可以通过cygwin自带的安装器安装,使用安装器安装的时候包名称为pythonxx-xxxx

python -m ensurepip --user
python -m pip install --user future
python -m pip install --user lxml
python -m pip install --user pexpect
python -m pip install --user pymavlink

然后下载ardupilot源码:

git clone git://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule update --init --recursive

如果用 GitHub 的客户端下载的源码或者以前下载的源码,按照上面的说明拷贝到上述目录下。官网给的已经存在的源码的配置 PATH 方法如下:If you have an existing clone of the ArduPilot repository, navigate to it in the terminal using “cd /cygdrive/drive/path

ie “cd /cygdrive/c/Users/James/Documents/GitHub/ardupilot” (substitute your own path).

我配置的时候总失败。

(此步骤仅SITL仿真不需要做)然后通过Cygwin终端编译,输入:

cd ~/ardupilot/ArduPlane
make sitl -j4
  1. 安装JSBSim

打开Cygwin终端输入:

git clone git://github.com/tridge/jsbsim.git
cd jsbsim
./autogen.sh
make
cp src/JSBSim.exe /usr/local/bin

输入:

cd ~/ardupilot/ArduPlane
sim_vehicle.py -j4 --map

则可以启动SITL。

以上SITL安装完成。

如果 Git 仓库是在 cygwin 外部克隆的,则运行sim_vehicle.py脚本时遇到的相关问题:

Git Required For Build?

解决方案:

参照Git的提示完成

fatal: unsafe repository ('/cygdrive/d/git-repository/ardupilot' is owned by someone else)
To add an exception for this directory, call:

        git config --global --add safe.directory /cygdrive/d/git-repository/ardupilot

Simulation:

FG 3D View

  1. 安装FlightGear,这个安装的目录应该很随意,但是我当时由于配置autotestPATH的时候心有余悸,所以我也安装到Cygwin的username目录下了,结果发现还是找不到文件。解决方法下步说。

  2. 打开Cygwin终端,进入到ardupilot/Tools/autotest/ 运行fgbat(plane) 或者fg_quad_view.bat(Copter).

    在运行这两个文件的时候,会提示找不到FG文件,所以我将该文件拷贝呗FG的bin目录下,将前面所有寻找目录的代码全部删除,然后启动的时候通过终端启动bin下的该文件。注意FG里面没有此 .bat中的模型,需要将autotest中的aircraft模型拷贝到FG中的aircraft中,否则会提醒找不到飞机。

打开FG后,在重新打开一个Cygwin终端:进入到ArduPlane(固定翼)或者ArduCopter(四旋翼)目录下面,运行sim_vehicle.py -j4 -L KSFO 打开相应的STIL。如果想要打开倾转模型,需要进入到ArduPlane目录下,在终端中输入sim_vehicle.py –j4 –f quadplane –L KSFO

  1. 在打开的SITL终端中输入:

    mode guide

    output

    可以看到端口号为14550,打开MissionPlanner。选择UDP ,端口默认就是14550点击连接。

  2. 在MissionPlanner中在标签上添加动作,在动作标签下,点击游戏摇杆,设置自己的遥控器,然后在设置模式前面可以选择自己要设置的模式,

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EyQsYOzQ-1654007201568)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ab160326-ca37-42b0-8720-e318608d246b/Untitled.png)]

    选择好以后,点击设置模式,然后点击解锁,推油门起飞。飞行中间也可以自己选择想要飞行的模式,选好后点击设置模式就可以。好像设置遥控器的那个窗口不能关,我关了就不能用遥控器控制,不知道原因中。

注:

windows杀进程_流苏打的博客-CSDN博客_window杀进程

遥控器加密狗连接与相关设置:

Channel
CH1 X
CH2 Y
CH3 Slider1
CH4 Rz1

垂起SITL仿真:

QuadPlane Simulation - Plane documentation

全过程启动流程:(不包含MP地面站)

Ardupilot Software in the loop (SITL) testing with Flightgear | quick setup guide

注:

  • 如果MP地面站打开失败,端口可能被占用,可以利用netstat命令查找占用端口的进程并kill掉
  • UDP回传默认开启14550和14551端口,建议先开地面站后开FlightGear

你可能感兴趣的:(Ardupilot,无人机,VTOL,无人机,人工智能)