0. 架构图

1. 主机列表

对应的ip地址与选择的系统,根据实际情况进行修改

主机IP 组件 系统
192.168.0.28 mavporxy linux-centos7.6
192.168.0.29 px4 linux-centos7.6
192.168.6.148 QGC window10
192.168.6.148 Airsim window10

2. 启动流程

airsim -- 仿真引擎 -- Windows下运行

  • 部署airsim运行环境

    • 下载虚拟引擎
    • 进入官网 https://www.unrealengine.com/zh-CN/,在导航栏最右边选择下载,进入下载页面,点击下载Epic Games启动程序
    • 安装并启动Epic Games,选择库(Library),选择对应的引擎,点击上方的 “库” 选项卡,然后点击引擎版本后面的 “+” 按钮,选择4.26版本(预估需要磁盘空间40G),点击 “安装” 即可自动下载安装,安装成功后,桌面会出现一个 Unreal Engine的快捷方式

    • 安装 Visual Studio,双击安装包开始安装,安装过程中需要手动选择一些组建来进行安装,在 ”工作负荷“ 选项卡下面,勾选 “使用C++的桌面开发”,同时在 “单个组件” 选项卡下面搜索并勾选 “Windows 10 SDK 10.0.18362”



  • 运行airsim
    • 拷贝LandscapeMountains代码到某个目录下,使用Visual Studio打开该项目: 文件 > 打开 > 项目/解决方案 选择 LandscapeMountains目录下的LandscapeMountains的点sh文件

    • 初始化配置
    • 修改目录C:\Users\Administrator\Documents\AirSim下setting.josn文件(没有则新建目录和文件)
    {
    "SettingsVersion": 1.2,
    "SimMode": "Multirotor",
    "Vehicles": {
    "UAV1": {
    "VehicleType": "SimpleFlight",
    "X": 0, "Y": 0, "Z": 0,
    "Yaw": 0
    },
    "UAV2": {
    "VehicleType": "SimpleFlight",
    "X": 4, "Y": 0, "Z": 0,
    "Yaw": 0
    },
    "UAV3": {
    "VehicleType": "SimpleFlight",
    "X": 4, "Y": 3, "Z": 0,
    "Yaw": 0
    },
    "UAV4":{
    "VehicleType": "PX4Multirotor",
    "LocalHostIp": "0.0.0.0",
    "UseSerial": false,
    "UseTcp": true,
    "TcpPort": 4560,
    "ControlPortLocal": 14540,
    "ControlPortRemote": 14580,
    "X": 0, "Y": 1, "Z": 0
    }
    }
    }
    • 在Visual Studio工具栏中选择DebugGame Win64,本地Windows调试器运行,会启动一个无人机仿真window程序,点击运行,将会加载配置文件,启动配置文件中配置的初始无人机



QGC -- 地面站,给无人机发指令的图形界面 -- Windows或Linux下运行

mavporxy -- 控制代理与协议转换 -- 容器中运行

# MavLinkTest 与 Mavproxy 是等价的,推荐选择MavLinkTest
# MavLinkTest
# 拉取镜像并启动容器
docker pull harbor.tiduyun.com/px4io/mavproxy:20211015
docker run --net=host --name=mavproxy -td harbor.tiduyun.com/px4io/mavproxy:20211015 bash
# 进入容器启动
docker exec -it mavproxy bash
# 配置QGC的IP地址
export QGC_ADDR=192.168.6.148
# -udp 指定服务监听的ip与端口,供QGC进行连接
# -proxy 指定连接代理的ip与端口
Mavproxy -server -udp:0.0.0.0:34550 -proxy:$QGC_ADDR:24550 # Mavproxy
docker pull harbor.tiduyun.com/px4io/mavproxy:20211026
docker run -dt --name mavproxy --net=host harbor.tiduyun.com/px4io/mavproxy:20211026 bash
# 配置QGC的IP地址
export QGC_ADDR=192.168.6.148
/root/.local/bin/mavproxy.py --master=udp:0.0.0.0:34550 --out=$QGC_ADDR:24550

px4 -- 无人机飞控 -- 容器中运行

# 启动容器
docker run --net=host --name=sim-225 -td harbor.tiduyun.com/px4io/airsim-px4-ros-melodic:2021-09-08 bash # 当连接不上ROS Master时,roslaunch命令会卡住
# 取消 ROS_MASTER_URI环境变量
unset ROS_MASTER_URI
# GCS_IP是mavporxy的IP地址
export GCS_IP=192.168.0.28
# 配置 airsim 服务的地址
export PX4_SIM_HOST_ADDR=192.168.6.148
./start.sh 0

3. 启动顺序

仿真引擎 --> px4 --> mavporxy --> QGC

4. 关联文档

airsim+px4无人机仿真平台的更多相关文章

  1. 开源自动驾驶仿真平台 AirSim (1) - Unreal Engine

    AirSim 官方Github: https://github.com/Microsoft/AirSim AirSim 是微软的开源自动驾驶仿真平台(其实它还能做很多事情,这里主要用于自动驾驶仿真研究 ...

  2. Modelsim的自动化脚本仿真平台

    自动化仿真平台由tcl语言搭建,大规模设计使用此平台让仿真便捷不少.大体上用tcl语言进行modelsim仿真的流程如下: 1. 建立库 2. 映射库到物理目录 3. 编译源代码 4. 启动仿真器 5 ...

  3. P2P/WSN信任建模与仿真平台

    1.ART Testbed 该平台是基于多代理的信任仿真平台,官网的介绍如下: The Agent Reputation and Trust (ART) Testbed initiative has ...

  4. 利用IT++搭建通信仿真平台

    IT++ is a C++ library of mathematical, signal processing and communication classes and functions.也就是 ...

  5. Aurora学习笔记连载一:仿真平台搭建

    由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...

  6. 数字化制造-基于Plant Simulation的冲压车间数字化仿真平台研究

    冲压车间是将板材冲压形成汽车车身.车厢.车底板等部件的过程,冲压是汽车生产四大加工工艺的首个工序,直接影响着汽车焊装.涂装.总装车间的生产.冲压车间生产具有以下特点: 换模时间长:每种冲压件均有一套专 ...

  7. 图像处理算法的仿真平台之VGA时序

    一  概述 图像处理算法一般是用matla或OpenCV实现的,若是用FPGA实现,设计思路差别极大.matlab和opencv的优势:这些工具的优势在于可以方便地载入图像文件,或输出数据到图像文件, ...

  8. Matlab/Modelsim图像联合仿真平台

    FPGA图像仿真平台 1 引言 在使用modelsim进行图像算法的功能仿真时,无法得到图像的实时预览,因此直观性有所欠缺.因此可配合matlab使用,通过modelsim读出txt格式的图像,利用m ...

  9. AirSim 自动驾驶仿真 (2-3) python控制无人机 win10

    1首先搭建好环境 参考 2 python控制 https://blog.csdn.net/Zhaoxi_Li/article/details/108002544 官方代码位置 自己pythonj教程 ...

  10. 开源自动驾驶仿真平台 AirSim (2) - 编译 AirSim

    AirSim 的官方 Github: https://github.com/Microsoft/AirSim 对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把 ...

随机推荐

  1. ElasticSearch之线程池

    ElasticSearch节点可用的CPU核的数量,通常可以交给ElasticSearch来自行检测和判定,另外可以在``elasticsearch.yml`中显式指定.样例如下: node.proc ...

  2. 简单几行实现sliver上线提醒

    准备魔改sliver去掉一些特征什么的,这里记录一下最简单实现上线消息通过企业微信机器人提醒的方式,这很简单也有很多不足还需要接着改的 protobuf中对消息Beacon和Session的定义如下, ...

  3. Java并发(二十二)----wait notify的正确姿势

    开始之前先看看,sleep(long n) 和 wait(long n) 的区别: 1) sleep 是 Thread 的静态方法,而 wait 是 Object 的方法 2) sleep 不需要强制 ...

  4. Flutter Getx 路由管理

    GetX 为我们封装了 Navigation ,无需 context 可进行跳转,使用 GetX 进行路由跳转非常的简单, 只需要调用 Get.to() 即可进行路由跳转, GetX 路由跳转简化了跳 ...

  5. 1、reids 基础

    SortedSet类型 特性 1.可排序 2.元素不重复性 3.查询速度快 与普通的集合类型相比,SortedSet 主要有以下两个特点: 有序性:根据分数对元素进行排序,便于范围查找等操作. 不重复 ...

  6. Volcano:带你体验容器与批量计算的碰撞的火花

    摘要:今年(2020)7月初,Volcano 发布了1.0版本.1.0做为里程碑版本,在Volcano整个规划中起到了承上启下的作用.此次发布的1.0版本支持了GPU共享,作业动态扩缩容,批任务抢占等 ...

  7. 云原生2.0时代,华为云DevOps立体运维实践

    摘要:随着云原生2.0时代的来临,越来越多的企业及个人选择使用云原生技术来构建业务,云原生技术给业务构建.交付带了便利的同时,对运维也提出了更高的要求. 2020年12月,中国DevOps社区峰会在北 ...

  8. 初探语音识别ASR算法

    摘要:语音转写文字ASR技术的基本概念与数学原理简介. 本文分享自华为云社区<新手语音入门(三): 语音识别ASR算法初探 | 编码与解码 | 声学模型与语音模型 | 贝叶斯公式 | 音素> ...

  9. vue2升级vue3: 全局变量挂载与类型声明

    全局变量挂载 vue2 Vue.prototype.$lm = {} vue3 const app = Vue.createApp({}) app.config.globalProperties.$l ...

  10. 如何对APP进行安全加固

    ​ 如何对APP进行安全加固 引言 如今,移动应用市场蓬勃发展,APP数量呈现爆炸性增长.随着5G技术的广泛应用,APP的增长趋势持续增强.然而,由于APP的泛滥,网络攻击者的目标也在逐渐转移,数亿的 ...