IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 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遥控模拟配置

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 17:01:55  更:2022-07-17 17:02:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:54:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计