AirSim与ArduCopter环境下无人机虚拟相机传感器尺寸查询
获取AirSimNH底部中央相机(编号3)的传感器尺寸方法
1. 明确相机配置优先级
你的setting.json目前仅配置了全局CameraDefaults,未给Copter车辆单独设置CameraSettings,因此底部中央相机(编号3)会继承CameraDefaults的参数。若该相机是自定义位置的专属相机,需在Vehicles -> Copter节点下添加CameraSettings来单独配置。
2. 通过AirSim API直接获取传感器参数
AirSim v1.8.1提供API接口可查询相机的物理传感器尺寸,以Python API为例:
import airsim import math # 连接AirSim客户端 client = airsim.MultirotorClient() client.confirmConnection() # 获取相机3的信息 camera_info = client.getCameraInfo("3") params = camera_info.camera_params # 从FOV和焦距计算传感器物理尺寸(单位:米) # FOV公式:FOV = 2 * arctan( (传感器宽度/2) / 焦距 ) sensor_width = 2 * params.focal_length * math.tan(params.fov_x / 2) sensor_height = 2 * params.focal_length * math.tan(params.fov_y / 2) print(f"传感器宽度: {sensor_width} 米,传感器高度: {sensor_height} 米")
注:若你需要的是图像像素尺寸,直接取camera_info.image_width和camera_info.image_height即可,这两个值对应setting.json中CaptureSettings的Width和Height。
3. 从Unreal Engine编辑器查看相机组件
如果你能打开AirSimNH的Unreal工程:
- 在编辑器中找到无人机的Actor(通常是
MultirotorPawn) - 展开其组件列表,找到编号3的相机组件(名称类似
Camera3) - 查看该组件的Filmback设置项,其中的
Sensor Width和Sensor Height即为物理传感器尺寸(单位通常为厘米或英寸)
4. 区分CinematicCamera与无人机相机
你找到的CinematicCamera是Unreal的全局场景相机,并非无人机挂载的任务相机,无需关注。无人机的相机组件均以CameraX(X为编号)命名,隶属于无人机Pawn下。
内容的提问来源于stack exchange,提问作者Ivan Chepets
相关产品推荐
相关产品推荐

