You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unreal Engine中AirSim无人机未按自定义局部轴移动问题求助

AirSim无人机在Unreal Engine中局部坐标移动失效问题排查与解决

问题描述

我在Unreal Engine环境中运行AirSim无人机时遇到以下问题:

  • 在自定义环境中设置无人机Actor的起始位置并旋转至预期朝向後,运行时无人机朝向混乱,始终沿环境全局坐标移动,而非我设置的局部坐标。
  • 已在Unreal Engine中调整Actor轴心并旋转使其轴与朝向对齐,保存打包项目后,运行脚本时无人机仍沿自定义环境的全局轴移动。

相关截图:
期望的全局坐标下的旋转:
期望的全局坐标下的旋转

已按预期对齐旋转与轴,但运行时无变化:
已按预期对齐旋转与轴,但运行时无变化

解决步骤

1. 检查AirSim坐标系统配置

AirSim默认采用NED(北东地)坐标系统,需确认settings.json中的配置与UE环境匹配:

  • 打开项目目录下的AirSim/settings.json文件
  • 检查SimMode节点下的LocalNedOrigin参数,确保其与无人机起始位置、旋转对应
  • 若需以局部坐标控制,添加或设置UseLocalCoordinates: true

2. 确认无人机Root Component设置

  • 在UE编辑器中选中无人机Actor,确保Root Component(如SceneComponent)的旋转已正确应用,且未被其他组件的继承旋转覆盖
  • 验证Root Component的Relative Rotation为0,保证Actor全局旋转直接作用于根组件

3. 同步AirSim Pawn初始旋转

  • 检查AirSim无人机Pawn类的初始化逻辑,确认Spawn时是否正确读取Actor初始旋转并同步到AirSim内部坐标系统
  • 可在UE蓝图中,在无人机Spawn后调用AirSim的SetVehicleOrientation接口,手动同步Actor旋转

4. 清理打包缓存

  • 打包前清理UE的Derived Data Cache:编辑 → 项目设置 → 引擎 → 内容 → 清理Derived Data Cache
  • 打包时选择「完全重新构建」,避免旧配置缓存干扰

5. 修正控制脚本的坐标参考

  • 检查控制脚本,确保使用局部坐标接口(如GetRelativeLocation/GetRelativeRotation)而非全局坐标接口
  • 若使用AirSim API控制(如Python),调用移动接口时指定frame_id为local_origin,而非global

内容的提问来源于stack exchange,提问作者Coolio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 08:02:47