airsim+px4无人机仿真平台
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程序,点击运行,将会加载配置文件,启动配置文件中配置的初始无人机


- 拷贝LandscapeMountains代码到某个目录下,使用Visual Studio打开该项目: 文件 > 打开 > 项目/解决方案 选择 LandscapeMountains目录下的LandscapeMountains的点sh文件
QGC -- 地面站,给无人机发指令的图形界面 -- Windows或Linux下运行
- 下载链接:https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl-installer.exe,下载完成后点击QGC安装程序安装即可
- 修改QGC配置
- 连接mavproxy参数
选择通讯连接,点击添加。在Port中配置mavporxy转发到的端口 24550,在Add Server输入框中输入mavproxy所在服务器的ip地址与监听端口,为34550


- GPS连接参数
勾选默认配置即可

- 连接mavproxy参数
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无人机仿真平台的更多相关文章
- 开源自动驾驶仿真平台 AirSim (1) - Unreal Engine
AirSim 官方Github: https://github.com/Microsoft/AirSim AirSim 是微软的开源自动驾驶仿真平台(其实它还能做很多事情,这里主要用于自动驾驶仿真研究 ...
- Modelsim的自动化脚本仿真平台
自动化仿真平台由tcl语言搭建,大规模设计使用此平台让仿真便捷不少.大体上用tcl语言进行modelsim仿真的流程如下: 1. 建立库 2. 映射库到物理目录 3. 编译源代码 4. 启动仿真器 5 ...
- P2P/WSN信任建模与仿真平台
1.ART Testbed 该平台是基于多代理的信任仿真平台,官网的介绍如下: The Agent Reputation and Trust (ART) Testbed initiative has ...
- 利用IT++搭建通信仿真平台
IT++ is a C++ library of mathematical, signal processing and communication classes and functions.也就是 ...
- Aurora学习笔记连载一:仿真平台搭建
由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...
- 数字化制造-基于Plant Simulation的冲压车间数字化仿真平台研究
冲压车间是将板材冲压形成汽车车身.车厢.车底板等部件的过程,冲压是汽车生产四大加工工艺的首个工序,直接影响着汽车焊装.涂装.总装车间的生产.冲压车间生产具有以下特点: 换模时间长:每种冲压件均有一套专 ...
- 图像处理算法的仿真平台之VGA时序
一 概述 图像处理算法一般是用matla或OpenCV实现的,若是用FPGA实现,设计思路差别极大.matlab和opencv的优势:这些工具的优势在于可以方便地载入图像文件,或输出数据到图像文件, ...
- Matlab/Modelsim图像联合仿真平台
FPGA图像仿真平台 1 引言 在使用modelsim进行图像算法的功能仿真时,无法得到图像的实时预览,因此直观性有所欠缺.因此可配合matlab使用,通过modelsim读出txt格式的图像,利用m ...
- AirSim 自动驾驶仿真 (2-3) python控制无人机 win10
1首先搭建好环境 参考 2 python控制 https://blog.csdn.net/Zhaoxi_Li/article/details/108002544 官方代码位置 自己pythonj教程 ...
- 开源自动驾驶仿真平台 AirSim (2) - 编译 AirSim
AirSim 的官方 Github: https://github.com/Microsoft/AirSim 对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把 ...
随机推荐
- ElasticSearch之线程池
ElasticSearch节点可用的CPU核的数量,通常可以交给ElasticSearch来自行检测和判定,另外可以在``elasticsearch.yml`中显式指定.样例如下: node.proc ...
- 简单几行实现sliver上线提醒
准备魔改sliver去掉一些特征什么的,这里记录一下最简单实现上线消息通过企业微信机器人提醒的方式,这很简单也有很多不足还需要接着改的 protobuf中对消息Beacon和Session的定义如下, ...
- Java并发(二十二)----wait notify的正确姿势
开始之前先看看,sleep(long n) 和 wait(long n) 的区别: 1) sleep 是 Thread 的静态方法,而 wait 是 Object 的方法 2) sleep 不需要强制 ...
- Flutter Getx 路由管理
GetX 为我们封装了 Navigation ,无需 context 可进行跳转,使用 GetX 进行路由跳转非常的简单, 只需要调用 Get.to() 即可进行路由跳转, GetX 路由跳转简化了跳 ...
- 1、reids 基础
SortedSet类型 特性 1.可排序 2.元素不重复性 3.查询速度快 与普通的集合类型相比,SortedSet 主要有以下两个特点: 有序性:根据分数对元素进行排序,便于范围查找等操作. 不重复 ...
- Volcano:带你体验容器与批量计算的碰撞的火花
摘要:今年(2020)7月初,Volcano 发布了1.0版本.1.0做为里程碑版本,在Volcano整个规划中起到了承上启下的作用.此次发布的1.0版本支持了GPU共享,作业动态扩缩容,批任务抢占等 ...
- 云原生2.0时代,华为云DevOps立体运维实践
摘要:随着云原生2.0时代的来临,越来越多的企业及个人选择使用云原生技术来构建业务,云原生技术给业务构建.交付带了便利的同时,对运维也提出了更高的要求. 2020年12月,中国DevOps社区峰会在北 ...
- 初探语音识别ASR算法
摘要:语音转写文字ASR技术的基本概念与数学原理简介. 本文分享自华为云社区<新手语音入门(三): 语音识别ASR算法初探 | 编码与解码 | 声学模型与语音模型 | 贝叶斯公式 | 音素> ...
- vue2升级vue3: 全局变量挂载与类型声明
全局变量挂载 vue2 Vue.prototype.$lm = {} vue3 const app = Vue.createApp({}) app.config.globalProperties.$l ...
- 如何对APP进行安全加固
如何对APP进行安全加固 引言 如今,移动应用市场蓬勃发展,APP数量呈现爆炸性增长.随着5G技术的广泛应用,APP的增长趋势持续增强.然而,由于APP的泛滥,网络攻击者的目标也在逐渐转移,数亿的 ...