Cosys-AirSim (UE5) + ROS 2 联合仿真环境部署全踩坑指南-2025.11
本文总结了在Windows和Ubuntu系统中部署Cosys-AirSim与ROS 2联合仿真环境的关键步骤。
Cosys-AirSim (UE5) + ROS 2 联合仿真环境部署全踩坑指南
前言
最近在折腾 Cosys-AirSim 的联合仿真,目标是实现 Windows (运行 UE5 仿真) 与 Ubuntu (运行 ROS 2 算法) 的跨机通信。
虽然官方文档提供了基础流程,但在国内网络环境和实际部署中,坑非常多!本文总结了从 ROS 2 安装、UE5 项目编译,到 TCP 连接死活通不过的完整排坑流程,希望能帮大家节省时间。
![![占位图:Cosys-AirSim 运行在 UE5 中的效果图,展示无人机或小车]](https://i-blog.csdnimg.cn/direct/1f5bb3238a9940eca033f0042fc5c4f5.png)
🛠️ 目录结构预览 (Ubuntu)
为了避免路径混乱,建议在 Ubuntu 端保持以下目录结构。这对于后续修改 CMakeLists.txt 至关重要。
/home/你的用户名/
├── Cosys-AirSim/ <-- [核心源码库]
│ ├── AirLib/ <-- 核心物理引擎库 (必须编译成功)
│ ├── ros2/ <-- 原始 ROS 代码
│ ├── setup.sh <-- 依赖安装脚本
│ └── build.sh <-- 编译脚本
│
└── airsim_ros2_ws/ <-- [ROS 2 工作空间]
├── src/
│ ├── airsim_ros_pkgs/ <-- 从 Cosys-AirSim/ros2/src 复制过来的
│ │ ├── launch/ <-- 修改 IP 的地方
│ │ └── CMakeLists.txt <-- 修改 AIRSIM_ROOT 路径的地方
│ └── airsim_interfaces/
└── build/ <-- 编译生成文件
一、前期准备:环境安装
1. Windows 端:部署 UE5 与 Cosys-AirSim
Cosys-AirSim 是以插件形式运行在 Unreal Engine 中的。
- 步骤 1: 安装 Visual Studio 2022
- 下载并安装 VS2022。
- 关键点:安装时必须勾选 “使用 C++ 的桌面开发” 和 “使用 C++ 的游戏开发” (包含 Unreal Engine 安装程序)。
- 步骤 2: 安装 Unreal Engine 5
- 打开 Epic Games Launcher,安装 UE 5.X (我用的5.5.4) 版本。
- 步骤 3: 编译 Cosys-AirSim 插件
- 打开 “VS2022 开发人员命令提示符” (Developer Command Prompt)。
- 克隆仓库并编译:
git clone https://github.com/Cosys-Lab/Cosys-AirSim.git D:\Cosys-AirSim cd D:\Cosys-AirSim build.cmd - 注:这一步会下载大量依赖,请保持网络通畅。
- 步骤 4: 启动测试项目 (Blocks)
- 编译完成后,进入
Unreal\Environments\Blocks目录。 - 双击
Blocks.uproject。如果是第一次运行,它会询问是否重新编译,点击 “Yes”。 - 配置
文档/Airsim/setting.json(下面会写) - 打开 UE5 编辑器后,点击上方的绿色 Play 按钮,如果能看到无人机,说明仿真端就绪。
- 编译完成后,进入

2. Ubuntu 端:一键安装 ROS 2 (鱼香 ROS)
在 Ubuntu 虚拟机或实体机上,使用国内最方便的“鱼香 ROS”一键脚本安装,自动解决换源和 GPG 密钥问题。
- 步骤 1: 运行脚本
wget http://fishros.com/install -O fishros && . fishros - 步骤 2: 选择菜单
- 输入
1:安装 ROS。 - 输入
1:更换源并清理第三方源(推荐)。 - 选择版本:
- Ubuntu 22.04 请选择 Humble 或 Iron。
- Ubuntu 20.04 请选择 Foxy (不推荐,已停止维护)。
- 选择安装方式:选择 Desktop (桌面版,包含 Rviz 等工具)。
- 输入
- 步骤 3: 验证
安装完成后,新开终端输入ros2,有输出即为成功。![[////////]](https://i-blog.csdnimg.cn/direct/bf339029af8d44219388e364b510babc.png)
第一部分:Windows 端配置 (仿真器)
Windows 端主要负责开启 TCP 服务端口等待连接。
1. 修改 settings.json (关键!)
AirSim 默认只监听本机,导致虚拟机无法连接。建议使用以下配置:
- 文件位置:
文档\AirSim\settings.json - 修改重点:
LocalHostIp: 填写真实的局域网 IP(推荐)或0.0.0.0。SimMode: 设置为Multirotor(无人机模式),避开缺少车辆模型的报错。
{
"SettingsVersion": 1.2,
"SimMode": "Multirotor",
"ClockSpeed": 1,
"LocalHostIp": "192.168.31.144",
"ApiServerPort": 41451,
"Vehicles": {
"Drone1": {
"VehicleType": "SimpleFlight",
"X": 0, "Y": 0, "Z": -2,
"Sensors": {
"Lidar1": { "SensorType": 1, "Enabled": true, "DrawDebugPoints": true },
"Imu": { "SensorType": 2, "Enabled": true },
"Gps": { "SensorType": 3, "Enabled": true }
},
"Cameras": {
"front_center": {
"CaptureSettings": [
{ "ImageType": 0, "Width": 640, "Height": 480, "FOV_Degrees": 90 }
],
"X": 0.5, "Y": 0, "Z": 0
}
}
}
}
}
2. 配置防火墙 (必做!)
- 打开 高级安全 Windows Defender 防火墙。
- 新建 入站规则 -> 选择 端口 -> TCP -> 特定本地端口 41451。
- 允许连接 -> 全选 -> 命名为
AirSim RPC。
![![占位图:Windows 防火墙添加入站规则的截图]](https://i-blog.csdnimg.cn/direct/af85c24b26044aa296813707fa024804.png)
第二部分:Ubuntu 端配置 (ROS 2)
1. 解决依赖 (rosdepc)
# 安装 rosdepc
sudo pip3 install http://dep.fishros.com/code/rosdepc/rosdepc-1.0.8.tar.gz
sudo rosdepc init
rosdepc update
# 安装基础工具
sudo apt install python3-colcon-common-extensions git netcat
2. 编译 AirLib (核心库)
步骤 1: 克隆代码
git clone https://github.com/Cosys-Lab/Cosys-AirSim.git ~/Cosys-AirSim
步骤 2: 修改 setup.sh (避坑核心)
打开 ~/Cosys-AirSim/setup.sh,做以下修改:
- 添加镜像: 将所有
https://github.com/替换为https://mirror.ghproxy.com/https://github.com/。 - 跳过 PPA: 注释掉
sudo add-apt-repository ppa:ubuntu-toolchain-r/test。 - 降级依赖: 将
libstdc++-13-dev改为libstdc++-12-dev。
步骤 3: 编译
cd ~/Cosys-AirSim
./setup.sh --no-full-poly-car
./build.sh
3. 搭建 ROS 2 工作空间
步骤 1: 复制源码
mkdir -p ~/airsim_ros2_ws/src
# 将 ROS 2 部分的源码复制出来
cp -r ~/Cosys-AirSim/ros2/src/* ~/airsim_ros2_ws/src/
步骤 2: 修复 CMakeLists.txt
打开 ~/airsim_ros2_ws/src/airsim_ros_pkgs/CMakeLists.txt,手动指定 AirLib 的真实位置:
# 修改前
# set(AIRSIM_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../../")
# 修改后 (请填入你的实际路径)
set(AIRSIM_ROOT "/home/你的用户名/Cosys-AirSim")
步骤 3: 安装依赖并编译
cd ~/airsim_ros2_ws
# 安装缺少的 ROS 依赖 (注意替换 humble/iron/foxy)
sudo apt install ros-$ROS_DISTRO-geographic-msgs ros-$ROS_DISTRO-mavros-msgs ros-$ROS_DISTRO-tf2-sensor-msgs ros-$ROS_DISTRO-tf2-geometry-msgs
# 编译
colcon build --symlink-install
第三部分:终极避坑 (Launch 文件修复)
原因: 官方 Launch 文件的参数名定义有误 (host_ip vs host)。
解决方案: 修改 ~/airsim_ros2_ws/src/airsim_ros_pkgs/launch/airsim_node.launch.py,直接把 IP 硬编码进去。
# 找到 host_ip 定义处,修改 default_value
host_ip = DeclareLaunchArgument(
"host_ip",
default_value='192.168.31.144') # 改成你 Windows 的 IP
修改后执行 colcon build 重新编译。
第四部分:启动与验证
1. 启动
- Windows: 启动 UE5 工程,点击 Play。
- Ubuntu:
cd ~/airsim_ros2_ws source install/setup.bash ros2 launch airsim_ros_pkgs airsim_node.launch.py
2. 验证
终端出现 [INFO] [airsim_ros_wrapper]: AirSimROSWrapper: Connected! 即为成功。
3. 可视化 (Rviz2)
rviz2
- Fixed Frame:
world_ned - Add:
PointCloud2(Lidar) 和Image(Scene)


希望这篇文档能帮到正在踩坑的你!🚀
更多推荐
所有评论(0)