with one click
carla-air
CARLA-Air 空地一体仿真技能 - 车辆+无人机联合仿真、ROS2 Humble 桥接
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
CARLA-Air 空地一体仿真技能 - 车辆+无人机联合仿真、ROS2 Humble 桥接
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
视觉语言动作模型 Vision-Language-Action 技能 - VLA 机器人控制、UniDiffuser、World Action Model
视觉语言导航 Vision-Language Navigation 技能 - VLN 自然语言导航、HF-RCN/R罗汉导航智能体
AI Agent 技能引导 — 加载上下文、路由技能、创建新技能
ROS2 CMakeLists.txt 依赖检查规则库 - 禁止省略ament_export_dependencies、禁止裸消息类型、禁止find_package不写REQUIRED
机器人感知系统技能库 - 视觉感知、激光雷达感知、传感器融合、边缘推理、标定
视觉感知技能集合 — 目标检测、语义分割、立体匹配、3D检测、边缘部署,适用于机器人环境感知
| name | carla-air |
| description | CARLA-Air 空地一体仿真技能 - 车辆+无人机联合仿真、ROS2 Humble 桥接 |
| argument-hint | carla air OR 空地仿真 OR carla无人机 OR carla-air OR air-ground |
| user-invocable | true |
统一城市驾驶 + 多旋翼飞行,在同一个 Unreal Engine 进程中实现空地具身智能仿真 基于 louiszengCN/CarlaAir
当需要以下场景时使用此技能:
sudo apt install ros-humble-desktop)carlaAir(Python 3.10):
conda create -n carlaAir python=3.10 -y
conda activate carlaAir
pip install carla airsim numpy opencv-python
# Terminal 1 — 启动 CARLA-Air
cd /path/to/CarlaAir-v0.1.7
./CarlaAir.sh
# Terminal 2 — 加载 ROS2 环境
source /opt/ros/humble/setup.bash
source examples/ros2/ros2_env.sh # 导出 PYTHONPATH
python3 examples/ros2/air_ground_ros_demo.py
# Terminal 3 — RViz2 可视化
source /opt/ros/humble/setup.bash
rviz2 -d examples/ros2/rviz/carlaair.rviz
/carla/ego_vehicle/)| 话题 | 类型 |
|---|---|
/carla/ego_vehicle/rgb/image | sensor_msgs/Image |
/carla/ego_vehicle/depth/image | sensor_msgs/Image |
/carla/ego_vehicle/semantic/image | sensor_msgs/Image |
/carla/ego_vehicle/lidar | sensor_msgs/PointCloud2 |
/carla/ego_vehicle/odom | nav_msgs/Odometry |
/carla/ego_vehicle/rgb/camera_info | sensor_msgs/CameraInfo |
/airsim/drone_1/)| 话题 | 类型 |
|---|---|
/airsim/drone_1/fpv/image | sensor_msgs/Image |
/airsim/drone_1/down/image | sensor_msgs/Image |
/airsim/drone_1/imu | sensor_msgs/Imu |
/airsim/drone_1/odom | nav_msgs/Odometry |
map
├── ego_vehicle ← CARLA 世界坐标
│ ├── ego_vehicle/rgb
│ ├── ego_vehicle/depth
│ ├── ego_vehicle/semantic
│ └── ego_vehicle/lidar
└── drone_1 ← AirSim 世界坐标(启动时与 CARLA 坐标对齐)
├── drone_1/fpv
└── drone_1/down
carla_vehicle_bridge.py — 车辆传感器桥接python3 examples/ros2/carla_vehicle_bridge.py
发布话题:
/carla/ego_vehicle/{rgb,depth,semantic}/image/carla/ego_vehicle/lidar/carla/ego_vehicle/odom/tf, /tf_staticairsim_drone_bridge.py — 无人机传感器桥接python3 examples/ros2/airsim_drone_bridge.py
发布话题:
/airsim/drone_1/{fpv,down}/image/airsim/drone_1/imu/airsim/drone_1/odom/tf, /tf_staticair_ground_ros_demo.py — 空地联合(同时启动两者)python3 examples/ros2/air_ground_ros_demo.py
import airsim
# 连接到 CARLA-Air 的 AirSim API(默认端口 41451)
client = airsim.MultirotorClient()
client.confirmConnection()
# 解锁
client.enableApiControl(True)
client.armDisarm(True)
# 起飞
client.takeoffAsync().join()
# 飞行到目标位置
client.moveToPositionAsync(x=10, y=0, z=-10, velocity=5).join()
# z 为负数表示上升(NED 坐标系)
# 悬停
client.hoverAsync().join()
# 降落
client.landAsync().join()
# 获取相机图像
responses = client.simGetImages([
airsim.ImageRequest("fpv", airsim.ImageType.SCENE, False, True),
airsim.ImageRequest("down", airsim.ImageType.SCENE, False, True)
], vehicle_name="drone_1")
# responses[0].image_data_uint8 即为 RGB 图像
# 获取 IMU 状态
state = client.getImuData(vehicle_name="drone_1")
# state.angular_velocity
# state.linear_acceleration
推荐的 RViz2 配置(固定帧 = map):
/tf → TF 显示
/tf_static → TF 显示(静态)
/airsim/drone_1/odom → Odometry 显示
/carla/ego_vehicle/odom → Odometry 显示
/carla/ego_vehicle/lidar → PointCloud2 显示
# 确认 conda env 在 PYTHONPATH 中
source examples/ros2/ros2_env.sh
# 检查话题是否有数据
ros2 topic hz /carla/ego_vehicle/rgb/image
# 如果 0 Hz:CARLA-Air 未运行,或 ego_vehicle 尚未生成
# 桥接会等待最多 30 秒
RViz 中 Fixed Frame 必须设为 map。
先启动 CARLA-Air,等待 AirSim API(端口 41451)就绪后再运行桥接脚本。
| 特性 | carla skill | carla-air skill |
|---|---|---|
| 仿真引擎 | CARLA 原生 | CARLA + AirSim 统一 |
| 无人机支持 | 有限 | AirSim API 原生 |
| 空地联合 | 需额外集成 | 原生统一坐标 |
| ROS2 桥接 | carla-ros-bridge | 轻量 Python → rclpy |
| 安装方式 | 源码/包 | 预编译可执行文件 |
| 适用场景 | 自动驾驶纯车辆 | 空地具身智能研究 |