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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2017-04-20 1_mysql_认识