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配置智能无人机开发环境搭建过程

PX4模块设计之十五:PX4 Log设计

PX4模块设计之九:PX4飞行模式简介

Ubuntu20.04+Qt5.15.2+Webassembly+qmqtt模块构建Web端物联网平台

week45 无人机px4 Firmware仿真环境搭建

PX4模块设计之二十:PX4应用平台初始化