PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器

2023-05-16

PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器

  • 1. 使用FlightGear的源由
  • 2. FlightGear模拟器简介
  • 3. Ubuntu 20.04搭建FlightGear步骤
    • 3.1 设置flightgear数据源
    • 3.2 安装flightgear
    • 3.3 检查安装情况
  • 4. 编译运行sitl+flightgear
    • 4.1 PX4编译遇错,组件安装
      • 4.1.1 问题1:Failed to load module "appmenu-gtk-module
      • 4.1.2 问题2: Cannot Write into direcotry: /usr/share/games/flightgear/Protocol
      • 4.1.3 问题3:其他问题
    • 4.2 编译运行sitl+flightgear
    • 4.3 QGroundControl + sitl + flightgear+ RC

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遥控模拟配置

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器 的相关文章

随机推荐

  • NSMutableParagraphStyle & NSAttributedString 文本样式设置

    今天做工作时 xff0c 用到了 NSMutableParagraphStyle amp NSAttributedString xff0c 由于用C 语言 写 xff0c 一开始比较生疏 xff0c 有些语法和oc语言还是有点区别的 xff
  • 【计算机毕业设计】医院管理系统源码

    一 系统截图 xff08 需要演示视频可以私聊 xff09 一 xff0e 摘要 目前各医疗机构中 xff0c 绝大部分中小型医疗机构内部没有实现任何信息化管理 xff0c 医院临床信息 xff0c 业务流程的数据依然采取纸质记录 xff0
  • 【计算机毕业设计】88.人事工资管理系统源码

    一 系统截图 xff08 需要演示视频可以私聊 xff09 摘 要 本论文主要论述了如何使用 JAVA 语言开发一个 人事管理系统 xff0c 本系统将严格按照软件开发流程进行各个阶段的工作 xff0c 采用 B S 架构 xff0c 面向
  • 【计算机毕业设计】012基于springboot的社区团购系统设计

    一 系统截图 xff08 需要演示视频可以私聊 xff09 摘 要 本课题是根据用户的需要以及网络的优势建立的一个社区团购系统 xff0c 来满足用户 团购 的需求 本社区团购系统应用 Java 技术 xff0c MY SQL数据库存储数据
  • 四轴飞控DIY调试起飞简明步骤

    四轴飞控DIY调试起飞简明步骤 调试起飞简明步骤Step1 xff1a 飞控配置Step2 xff1a 试飞目标测试内容坐标系 Step3 xff1a 试飞方法1 升降 xff08 Throttle xff09 2 偏航 xff08 yaw
  • BetaFlight开源工程结构简明介绍

    BetaFlight开源工程结构简明介绍 Step1 获取开源代码开源代码版本克隆开源代码 Step2 了解工程情况支持模型类型 xff1a 多旋翼 amp 固定翼支持特性 amp 功能安装 amp 文档链接配置工具下载其他介绍 xff08
  • 四轴FPV无人机手动操作简明介绍

    四轴FPV无人机手动操作简明介绍 通常航拍机都是有自稳算法 43 GPS导航 43 辅助功能 避障 的支持 xff0c 从而保证飞手能够相对容易且稳定的操作模型飞机 xff0c 通常通过阅读说明书都能很快上手 xff0c 这里就不在赘述 本
  • BetaFlight开源代码框架简介

    BetaFlight开源代码框架简介 1 框架设计分析考量2 框架分析前提条件3 主程序框架4 调度框架5 模块方法6 典型任务 amp 模块6 1 典型任务6 2 典型模块6 3 传感模块 7 回顾 amp 分析8 分析模板 1 框架设计
  • 四轴飞控DIY集成FPV功能

    四轴飞控DIY集成FPV功能 1 功能需求2 概念介绍2 1 制式2 2 显示分辨率2 3 摄像头线数高于700线低于700线 3 需求分析4 组件选择5 接线组装5 1 摄像头接线5 2 图传接线 6 组装位置7 FPV功能调试7 1 摄
  • MFC拷贝文件及进度条显示

    参考 xff1a 封装CopyFileEx函数 xff0c 实现文件复制中的暂停 xff0c 控速 xff0c 获取进度 http blog csdn net career2011 article details 6844513 实例讲解C
  • BetaFlight模块设计之三十二:MSP协议模块分析

    BetaFlight模块设计之三十二 xff1a MSP协议模块分析 1 MSP协议模块1 1 MSP描述1 2 MSP版本优缺点1 3 MSP代码资源 2 MSP报文解析2 1 MSP收包状态机2 2 MSP报文格式 3 MSP报文处理3
  • BetaFlight模块设计之三十三:Pid模块分析

    BetaFlight模块设计之三十三 xff1a Pid模块分析 Pid模块1 Pid audio子模块2 Pid init子模块3 Pid算法子模块3 1 TPA模式3 2 飞行模式3 3 Launch模式3 4 AcroTrainer模
  • BetaFlight模块设计之三十四:OSD模块分析

    BetaFlight模块设计之三十四 xff1a OSD模块分析 1 OSD模块1 1 osd状态机子模块1 2 osd warnings检查子模块1 3 osd elements子模块 2 OSD设备 驱动及适配框架2 1 OSD设备2
  • ssh无法远程登陆问题汇总

    ssh无法远程登陆问题汇总 1 ssh服务是否已经启动1 1 sshd服务是否已经安装1 2 sshd是否已经启动 2 检查sshd配置3 检查路由情况4 检查hosts许可文件5 检查防火墙问题5 1 检查防火墙是否启动5 2 修改防火墙
  • traceroute命令结果分析

    traceroute命令结果分析 1 基本原理2 IP地址种类2 1 A类IP地址2 2 B类IP地址2 3 C类IP地址2 4 D类地址用于多点广播 Multicast 2 5 E类IP地址 3 测试3 1 第一次3 2 第二次 4 总结
  • bash脚本返回值应用

    bash脚本返回值应用 应该说bash脚本对于linux系统来说具有举足轻重的意义 这里不做展开 xff0c 也不做bash脚本介绍 更多的是做一个例子 xff0c 应用了bash脚本的以下特性 xff1a 输入参数函数定义调用可执行命令脚
  • 如何理解printf变参函数的实现

    如何理解printf变参函数的实现 1 printf函数变参的问题2 printf函数定义和解释2 1 printf函数定义2 2 Linux Man page解释 https man7 org linux man pages man3 s
  • BetaFlight模块设计之三十五:RSSI信号强度&链路稳定性分析

    BetaFlight模块设计之三十五 xff1a RSSI信号强度 amp 链路稳定性分析 1 RSSI信号强度1 1 RSSI Value1 2 RSSI dBm Value 2 链路稳定性3 RSSI amp LinkQuality来源
  • Linux的so组件设计框架及逻辑

    Linux的so组件设计框架及逻辑 1 组件关注点1 1 组件定义关注点1 2 组件业务关注点 2 so特性3 so组件设计逻辑4 so组件设计框架4 1 so组件范例4 2 so隐式调用范例4 3 so显式调用范例 5 so组件设计建议
  • PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器

    PX4模块设计之八 xff1a Ubuntu 20 04搭建FlightGear模拟器 1 使用FlightGear的源由2 FlightGear模拟器简介3 Ubuntu 20 04搭建FlightGear步骤3 1 设置flightge