en un clic
carla-air
CARLA-Air 空地一体仿真技能 - 车辆+无人机联合仿真、ROS2 Humble 桥接
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
CARLA-Air 空地一体仿真技能 - 车辆+无人机联合仿真、ROS2 Humble 桥接
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
视觉语言动作模型 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 |
| 安装方式 | 源码/包 | 预编译可执行文件 |
| 适用场景 | 自动驾驶纯车辆 | 空地具身智能研究 |