PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器
Posted lida2003
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器相关的知识,希望对你有一定的参考价值。
PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器
1. 使用FlightGear的源由
基于PX4开源软件框架简明简介的框架设计,逐步分析内部模块功能设计。前面,我们用了jmavsim和gazebo模拟器做了介绍。
FlightGear提供物理和视觉真实模拟的模拟器。特别是,它可以模拟许多天气条件,包括雷雨、雪、雨和冰雹,还可以模拟热和不同类型的大气流。
2. FlightGear模拟器简介
FlightGear是一款开源飞行模拟器,其目标是创建一个复杂而开放的飞行模拟器框架,用于研究或学术环境,飞行员培训,作为一种工业工程工具,供DIY用户追求他们最喜欢的有趣的飞行模拟想法,最后但肯定不是最不重要的是作为一个有趣、现实和具有挑战性的桌面飞行模拟器。它提供了一个复杂、开放的模拟框架,任何有兴趣参与的人都可以对其进行扩展和改进。
特性:
- Freedom: GPL license; Support Windows, Linux, Mac OS-X, FreeBSD, Solaris, and IRIX platforms
- Flight Dynamics Models: Support JSBSim, YASim, UIUC
- Extensive and Accurate World Scenery Data Base: Over 20,000 real world airports; Accurate terrain worldwide; etc.
- Accurate and Detailed Sky Model: accurate time of day modeling with correctly placed sun, moon, stars, and planets
- Flexible and Open Aircraft Modeling System: model a wide variety of aircraft;
- Moderate Hardware Requirements
- Internal Properties EXPOSED!
- Networking options
- Multiple Displays
PX4 目前支持Plane, Autogyro, Rover三种类型。
3. Ubuntu 20.04搭建FlightGear步骤
Ubuntu的主要组件的管理和安装是通过apt工具,详见链接。
3.1 设置flightgear数据源
新增flightgear数据源ppa:saiarcot895/flightgear
sudo add-apt-repository ppa:saiarcot895/flightgear
检查新增情况
$ cat /etc/apt/sources.list.d/saiarcot895-ubuntu-flightgear-focal.list //这个文件名可能有差异,主要关注前面的文件名“saiarcot895-ubuntu-flightgear-”。
deb http://ppa.launchpad.net/saiarcot895/flightgear/ubuntu focal main
# deb-src http://ppa.launchpad.net/saiarcot895/flightgear/ubuntu focal main
查看非"xxxx"部分,因为Ubuntu系统版本不一样,可能导致后面两栏有所差别,所以我们主要确认数据源是否添加上就可以了。
deb http://ppa.launchpad.net/saiarcot895/flightgear/ubuntu xxxxx xxxx
3.2 安装flightgear
$ sudo apt-get update //更新apt
$ sudo apt-get install flightgear //安装模拟器
注:可能安装会遇到网络速度的问题,可以参考:bash脚本返回值应用。
这里我有一个简单脚本,就是遇错从新下载(因为apt-get,有缓冲机制,这样就能在网络不好的情况下,将1.3G+的文件类似断点续传的方式下下来)
#!/bin/sh
err=0
actions()
echo y | apt-get install flightgear
err=$?
actions #1st execution
while [ $err != 0 ]; do
actions # Loop execution
done
3.3 检查安装情况
$ fgfs --version
FlightGear version: 2020.3.12
Revision: none
Build-Id: none
Build-Type: Dev
FG_ROOT=/usr/share/games/flightgear
FG_HOME=/home/daniel/.fgfs
FG_SCENERY=/home/daniel/.fgfs/TerraSync:/usr/share/games/flightgear/Scenery
SimGear version: 2020.3.12
OSG version: 3.6.4
PLIB version: 185
启动模拟器
$ fgfs --launcher
4. 编译运行sitl+flightgear
还是基于SITL & HITL模拟框架,采用QGroundControl + sitl + flightgear(类似jmavsim方式)来搭建仿真环境。
4.1 PX4编译遇错,组件安装
4.1.1 问题1:Failed to load module "appmenu-gtk-module
错误提示:
Gtk-Message: 10:33:26.884: Failed to load module "appmenu-gtk-module"
None
None
Cannot Write into direcotry: /usr/share/games/flightgear/Protocol
FAILED: platforms/posix/CMakeFiles/flightgear_rascal
解决方法:安装appmenu-gtk3-module
$ sudo apt-get install appmenu-gtk3-module
4.1.2 问题2: Cannot Write into direcotry: /usr/share/games/flightgear/Protocol
错误提示:
Cannot Write into direcotry: /usr/share/games/flightgear/Protocol
FAILED: platforms/posix/CMakeFiles/flightgear_rascal
解决方法:设置目录权限
sudo chmod a+w /usr/share/games/flightgear/Protocol
4.1.3 问题3:其他问题
略,基于前面PX4模块设计之七:Ubuntu 20.04搭建Gazebo模拟器的编译环境,如果没有使用或者编译过gazebo模拟器的,可以参考上面关于搭建Gazebo模拟器遇到的问题。
4.2 编译运行sitl+flightgear
$ cd /path/to/PX4-Autopilot
$ make px4_sitl_nolockstep flightgear_rascal
编译过程需要时间下载场景相关文件,请耐心等待,尤其是网络比较差的同学(国内都不太理想)。
我这里等了基本上8个小时多,诶!!!国内的技术环境真的不敢恭维!!!如果有好的方法,也请告知我,谢谢!
4.3 QGroundControl + sitl + flightgear+ RC
关于这个环境怎么连就不多描述,可以查看以下两个文档。
【1】 PX4模块设计之一:SITL & HITL模拟框架
【2】 PX4开发环境搭建–模拟器编译及QGroundControl & RC遥控模拟配置
以上是关于PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器的主要内容,如果未能解决你的问题,请参考以下文章
完整的Ubuntu20.04+ROS+PX4+Anaconda+PyTorch+GPU+CUDA+CUDNN+XTdrone配置智能无人机开发环境搭建过程