zed 2i相机坐标系与内参、外参
相应内外参如下相机型号 : ZED 2i序列号 : 31474187固件版本 : 相机 1523 / 传感器 778 左相机 Left 内参 分辨率 : 1280 x 720焦距 fx, fy : 536.4066, 536.4066主点 cx, cy : 642.2694, 351.1544内参矩阵 K :[[536.40655518 0. 642.26940918][ 0. 536.40655518 351.15435791][ 0. 0. 1. ]]视场角 FOV : h100.07°, v67.74°, d107.71°畸变系数 : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 右相机 Right 内参 分辨率 : 1280 x 720焦距 fx, fy : 536.4066, 536.4066主点 cx, cy : 642.2694, 351.1544内参矩阵 K :[[536.40655518 0. 642.26940918][ 0. 536.40655518 351.15435791][ 0. 0. 1. ]]视场角 FOV : h100.07°, v67.74°, d107.71°畸变系数 : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] 加速度计 Accelerometer 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 400.0 Hz量程 : -78.4800033569336 ~ 78.4800033569336 m/s²分辨率 : 0.002395019633695483 m/s²噪声密度 : 0.0004400000034365803 m/s²/√Hz随机游走 : 0.02019999921321869 m/s²/s/√Hz 陀螺仪 Gyroscope 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 400.0 Hz量程 : -1000.0 ~ 1000.0 °/s分辨率 : 0.030517578125 °/s噪声密度 : 0.004991999827325344 °/s/√Hz随机游走 : 0.042399998754262924 °/s/s/√Hz 磁力计 Magnetometer 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 50.0 Hz量程 : -2500.0 ~ 2500.0 µT分辨率 : 0.30000001192092896 µT噪声密度 : 0.07000000029802322 µT/√Hz随机游走 : N/A 气压计 Barometer 参数 [说明] IMU 没有 fx/fy/cx/cy 那种相机内参它的参数 采样率 量程 分辨率 噪声密度 随机游走采样率 : 25.0 Hz量程 : 300.0 ~ 1100.0 hPa分辨率 : 0.009999999776482582 hPa噪声密度 : 0.00039999998989515007 hPa/√Hz随机游走 : N/A 外参 左相机 Left - 右相机 Right 旋转矩阵 R :[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]旋转角 (roll/pitch/yaw) : 0.0000° / -0.0000° / 0.0000°平移向量 t [右相机 Right 在 左相机 Left 系下的位置] : [0.11990686 0. 0. ]坐标变换P_左相机 Left R · P_右相机 Right t[左相机 Left 在 右相机 Right 坐标系中的位置] : [-0.11990686 0. 0. ]变换矩阵 T :[[1. 0. 0. 0.11990686][0. 1. 0. 0. ][0. 0. 1. 0. ][0. 0. 0. 1. ]] 外参 左相机 Left - IMU 旋转矩阵 R :[[ 0.99976206 0.01169387 -0.01841571][-0.0116109 0.99992198 0.00460632][ 0.01846814 -0.0043914 0.99981982]]旋转角 (roll/pitch/yaw) : -0.2517° / -1.0582° / -0.6654°平移向量 t [IMU 在 左相机 Left 系下的位置] : [ 0.023061 -0.000217 -0.002 ]坐标变换P_左相机 Left R · P_IMU t[左相机 Left 在 IMU 坐标系中的位置] : [-2.30210978e-02 -6.14721674e-05 2.42532406e-03]变换矩阵 T :[[ 9.99762058e-01 1.16938744e-02 -1.84157118e-02 2.30610017e-02][-1.16108973e-02 9.99921978e-01 4.60632052e-03 -2.17000023e-04][ 1.84681416e-02 -4.39140107e-03 9.99819815e-01 -2.00000009e-03][ 0.00000000e00 0.00000000e00 0.00000000e00 1.00000000e00]]双目基线 baseline 0.1199 m注意在运行代码与使用相机前需要先安装zed2i相机的sdk我的cuda是cu11.7所以安装的sdk是ZED_SDK_Windows_cuda11.8_v4.2.5.exesdk链接如下我用夸克网盘给你分享了「ZED_SDK_Windows_cuda11.8_v4.2.5.exe」点击链接或复制整段内容打开「夸克网盘APP」即可获取。/~52173aDuRT~:/链接https://pan.quark.cn/s/b46717dbb838?pwdjdNr提取码jdNr相机内外参直接提取的代码打印 ZED2i 的相机内参 / IMU 参数 / 外参。 本文件是 realsense-435i-vio/realsense_calib_params.py 的 ZED2i 移植版。 ZED2i 与 D435i 的标定信息来源不同 RealSense按流depth/color/infrared/accel/gyro分别取 profile ZED2i 所有参数都在 zed.get_camera_information() 里一次性给出。 映射 视频流内参 - camera_configuration.calibration_parameters.left_cam / right_cam IMU 参数 - sensors_configuration.accelerometer_parameters / gyroscope_parameters 采样率/量程/噪声密度/随机游走 外参 - calibration_parameters.stereo_transform左-右右相机在左相机系下的位姿t≈baseline sensors_configuration.camera_imu_transform左相机-IMU import math import numpy as np import pyzed.sl as sl # --------------------------------------------------------------------------- # 视频流内参左 / 右相机 # --------------------------------------------------------------------------- def print_video_intrinsics(name, cp): 打印单个相机内参。cp 为 sl.CameraParameters。 if cp is None: print(f[WARN] {name}: 参数不可用跳过) return K np.array([ [cp.fx, 0, cp.cx], [0, cp.fy, cp.cy], [0, 0, 1.0], ]) print(f\n {name} 内参 ) print(f 分辨率 : {cp.image_size.width} x {cp.image_size.height}) print(f 焦距 fx, fy : {cp.fx:.4f}, {cp.fy:.4f}) print(f 主点 cx, cy : {cp.cx:.4f}, {cp.cy:.4f}) print(f 内参矩阵 K :\n{K}) print(f 视场角 FOV : h{cp.h_fov:.2f}°, v{cp.v_fov:.2f}°, d{cp.d_fov:.2f}°) print(f 畸变系数 : {list(cp.disto)}) # --------------------------------------------------------------------------- # IMU 参数加速度计 / 陀螺仪 # --------------------------------------------------------------------------- # sl.SENSORS_UNIT 枚举 - 人类可读单位 _SENSOR_UNIT_STR { sl.SENSORS_UNIT.M_SEC_2: m/s², sl.SENSORS_UNIT.DEG_SEC: °/s, sl.SENSORS_UNIT.U_T: µT, sl.SENSORS_UNIT.HPA: hPa, sl.SENSORS_UNIT.CELSIUS: °C, sl.SENSORS_UNIT.HERTZ: Hz, } def _unit_str(sensor_unit): 把 sl.SENSORS_UNIT 枚举转成可读单位字符串。 return _SENSOR_UNIT_STR.get(sensor_unit, str(sensor_unit)) def print_sensor_parameters(name, sp): 打印单个传感器参数。sp 为 sl.SensorParameters。 if sp is None or not sp.is_available: print(f\n {name} 参数 (不可用)) return unit _unit_str(sp.sensor_unit) # sensor_range 是 numpy.ndarray形状 (2,)[min, max] rng sp.sensor_range print(f\n {name} 参数 ) print(f [说明] IMU 没有 fx/fy/cx/cy 那种相机内参) print(f 它的参数 采样率 量程 分辨率 噪声密度 随机游走) print(f 采样率 : {sp.sampling_rate} Hz) print(f 量程 : {rng[0]} ~ {rng[1]} {unit}) print(f 分辨率 : {sp.resolution} {unit}) nd N/A if math.isnan(sp.noise_density) else f{sp.noise_density} {unit}/√Hz rw N/A if math.isnan(sp.random_walk) else f{sp.random_walk} {unit}/s/√Hz print(f 噪声密度 : {nd}) print(f 随机游走 : {rw}) # --------------------------------------------------------------------------- # 外参 # --------------------------------------------------------------------------- def rotation_matrix_to_euler(R): 3x3 旋转矩阵 - (roll, pitch, yaw)单位度。 采用 ZYX 内旋约定R Rz(yaw) Ry(pitch) Rx(roll) roll 绕 X 轴、pitch 绕 Y 轴、yaw 绕 Z 轴。 sy np.sqrt(R[0, 0] ** 2 R[1, 0] ** 2) if sy 1e-6: roll np.arctan2(R[2, 1], R[2, 2]) pitch np.arctan2(-R[2, 0], sy) yaw np.arctan2(R[1, 0], R[0, 0]) else: # 万向锁退化pitch ≈ ±90° roll np.arctan2(-R[1, 2], R[1, 1]) pitch np.arctan2(-R[2, 0], sy) yaw 0.0 return np.degrees([roll, pitch, yaw]) def transform_to_R_t(transform): sl.Transform - (R, t)。transform.m 为 4x4 numpy.ndarray行主序。 布局同 ZED SDK 文档 [ R00 R01 R02 tx ] [ R10 R11 R12 ty ] [ R20 R21 R22 tz ] [ 0 0 0 1 ] m transform.m R np.array(m[:3, :3], dtypenp.float64) t np.array(m[:3, 3], dtypenp.float64) return R, t def print_extrinsics(name_from, name_to, transform): 打印外参旋转 平移 4x4 变换矩阵 欧拉角。 约定name_from - name_to 表示 name_to 在 name_from 坐标系下的位姿 机器人学里常见的 A - B B 在 A 系下的位姿即 T_A_B。 平移向量 t 即 name_to 原点在 name_from 系中的位置坐标变换为 P_{name_from} R · P_{name_to} t if transform is None: print(f[WARN] {name_from} - {name_to}: 参数不可用跳过) return R, t transform_to_R_t(transform) T np.eye(4) T[:3, :3] R T[:3, 3] t roll, pitch, yaw rotation_matrix_to_euler(R) # name_from 原点在 name_to 系中的位置反变换 -R^T·t pos_from_in_to (-R.T t).ravel() print(f\n 外参 {name_from} - {name_to} ) print(f 旋转矩阵 R :\n{R}) print(f 旋转角 (roll/pitch/yaw) : {roll:.4f}° / {pitch:.4f}° / {yaw:.4f}°) print(f 平移向量 t [{name_to} 在 {name_from} 系下的位置] : {t}) print(f 坐标变换P_{name_from} R · P_{name_to} t) print(f [{name_from} 在 {name_to} 坐标系中的位置] : {pos_from_in_to}) print(f 变换矩阵 T :\n{T}) def main(): init sl.InitParameters() init.coordinate_units sl.UNIT.METER zed sl.Camera() status zed.open(init) if status ! sl.ERROR_CODE.SUCCESS: print(f[ERROR] 无法打开 ZED2i请检查连接: {repr(status)}) return info zed.get_camera_information() calib info.camera_configuration.calibration_parameters sensors info.sensors_configuration print(f相机型号 : {info.camera_model}) print(f序列号 : {info.serial_number}) print(f固件版本 : 相机 {info.camera_configuration.firmware_version} / f传感器 {sensors.firmware_version}) # 视频流内参左 / 右相机 print_video_intrinsics(左相机 Left, calib.left_cam) print_video_intrinsics(右相机 Right, calib.right_cam) # IMU 参数 print_sensor_parameters(加速度计 Accelerometer, sensors.accelerometer_parameters) print_sensor_parameters(陀螺仪 Gyroscope, sensors.gyroscope_parameters) print_sensor_parameters(磁力计 Magnetometer, sensors.magnetometer_parameters) print_sensor_parameters(气压计 Barometer, sensors.barometer_parameters) # 外参 # stereo_transform左相机 - 右相机 右相机在左相机系下的位姿t ≈ baseline print_extrinsics(左相机 Left, 右相机 Right, calib.stereo_transform) print_extrinsics(左相机 Left, IMU, sensors.camera_imu_transform) print(f\n双目基线 baseline {calib.get_camera_baseline():.4f} m) print(f[说明] ZED2i 的灰度/彩色共用左相机无独立 RGB-IR 外参。) zed.close() if __name__ __main__: main()

相关新闻

试用期自我总结撰写指南:从STAR-P模型到十大场景实战

试用期自我总结撰写指南:从STAR-P模型到十大场景实战

1. 项目概述:一份报告,十次成长又到试用期尾声,相信很多朋友和我一样,正对着电脑屏幕,为那份“试用期自我总结报告”绞尽脑汁。这玩意儿,说简单也简单,无非是回顾过去、总结现在、展望未来&…

2026/10/27 14:01:03 阅读更多 →
基于LLM与OpenClaw框架的自动化测试报告生成Skill设计与实践

基于LLM与OpenClaw框架的自动化测试报告生成Skill设计与实践

1. 项目概述:为什么我们需要一个“自动写测试报告”的 Skill?在软件开发和测试的日常里,写测试报告这件事,说大不大,说小不小,但绝对是个“脏活累活”。想象一下这个场景:你刚跑完一轮包含上百个…

2026/10/28 0:06:46 阅读更多 →
老人独居看护摄像头怎么选?跌倒检测+一键呼叫,让牵挂落地的技术方案

老人独居看护摄像头怎么选?跌倒检测+一键呼叫,让牵挂落地的技术方案

一、痛点提出:独居老人最怕摔倒没人知道独居老人最怕的就是摔倒没人知道。跌倒已成为老年人意外伤害的首要原因,而“摔倒后无人知晓”是导致严重后果的关键因素。普通摄像头只能事后翻回放,无法在第一时间发现问题。中国电信在云南普洱市落地…

2026/10/28 0:30:18 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 19:19:37 阅读更多 →