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 其实是作为一个插件存在,说白了就是把 ...
随机推荐
- const和C指针
转载:https://mp.weixin.qq.com/s?__biz=Mzk0NDYzNTI1Ng==&mid=2247483733&idx=1&sn=9af9bc64a0b ...
- Android学习--Intent
Intent : Intent 是一个动作的完整描述,一种运行时的绑定机制,Intent中包含对Intent有兴趣的组件信息,如对动作的产生组件.接受组件和传递的数据信息.Android根据此Inte ...
- 简单介绍JDK、JRE、JVM三者区别
简单介绍JDK vs JRE vs JVM三者区别 文编|JavaBuild 哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习, ...
- 半小时实现GPT纯血鸿蒙版
仅需半小时,即可实现纯血鸿蒙版本的ChatGPT! 废话少说,先看效果图: 如上图所示,这个小Demo实现了AI智能问答.靠右加粗的文本是用户点击底部提交按钮后出现的:后面靠左对齐的普通文本是来自AI ...
- 华为云推出全自研数据库,GaussDB(openGauss)能否撑起一片天?
摘要:GaussDB(openGauss) 基于华为云底座,能够快速全球化部署,同时支持用户的本地化部署诉求,跟云上生态工具紧密结合让用户在迁移.开发.运维上省时省心. GaussDB(openGau ...
- 执行计划缓存,Prepared Statement性能跃升的秘密
摘要:一起看一下GaussDB(for MySQL)是如何对执行计划进行缓存并加速Prepared Statement性能的. 本文分享自华为云社区<执行计划缓存,Prepared Statem ...
- 云小课 | 网络知识一箩筐——NAT网关,让IP地址华丽变身,轻松实现内外网互通
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课) 或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 网络知识一箩筐 ...
- 通过windows自带管理工具、系统命令行、快捷键等快速操作
windows自带管理工具 我们win+R 输入一些命令,可以快速打开一些界面,比如: sysdm.cpl win10.win11 我电脑,属性与之前win7不同了,我希望打开之前的属性打不开了 通过 ...
- 中断操作:AbortController学习笔记
前端面试一般喜欢问: 请手写一个带取消功能的延迟函数,axios 取消功能的原理是什么? 如何中断请求fetch的原理分析和应用? 在看来<使用 AbortController 终止 fetch ...
- APP加固原理与作用
APP加固原理与作用 引言 在移动应用开发中,APP加固是一种保护应用代码逻辑的重要措施.通过对应用文件进行隐藏.混淆和加密等操作,可以有效提高软件的逆向成本,降低被破解的几率.本文将介绍APP加固的 ...