SLAM学习——相机与图像

本文介绍了SLAM学习中的相机模型,包括针孔模型、镜头畸变和图像像素。针孔模型描述了相机成像原理,镜头畸变部分主要探讨了径向畸变,而图像像素部分讲解了灰度图和RGB-D图像的表示方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.针孔模型

一般而言,我们通过小孔成像来描述相机的成像原理,对其进行数学建模,如下图所示。

这里写图片描述

其中O-x-y-z为相机坐标系,O’-x’-y’-z’为成像平面物理坐标系,o-u-v为像素坐标系,通过此几何模型,我们可以得到:Z/f=-X/X’=-Y/Y’,其中负号表示这个在成像平面上所形成的像是倒的,我们可以对该模型进行一定的处理,将负号去掉,得到以下模型:

这里写图片描述

以上分别为真实成像平面、对称成像平面、归一化成像平面。其中像素坐标系的定义为:原点定义在左上角上,u轴与x轴平行,v轴与y轴平行。像素坐标系与成像坐标系相差了一个缩放和原点的平移。设在u轴缩放了αα
倍,在 v 轴缩放了ββ 倍,原点平移了[cx,cy]T[cx,cy]T,则成像平面上的点P’与像素坐标的关系为:

{ u=αX+cxv=βY+cy{ u=αX′+cxv=βY′+cy

将像素平面与摄像机坐标系上的点PX,Y,ZP(X,Y,Z)联系起来,在这里,我们设fx=αffx=αf ( ff 表示焦距),

### ORB-SLAM3ROS集成指南 ORB-SLAM3 是一款先进的视觉里程计和即时定位地图构建(SLAM)算法库,支持单目、双目以及RGB-D相机输入[^1]。该软件包能够实现实时三维重建并提供环境的地图表示。 #### 安装配置 对于希望在机器人操作系统(ROS)环境下部署 ORB-SLAM3 的开发者而言,官方文档提供了详细的安装指导说明[^2]: - **依赖项准备**:确保已安装必要的工具链如 CMake, Eigen 和 OpenCV 等。 - **源码获取**:可以从 GitHub 上克隆项目仓库来获得最新版本的源代码[^3]: ```bash git clone https://github.com/raulmur/ORB_SLAM3.git cd ORB_SLAM3 ``` - **编译过程**:按照给定指令完成编译工作,在此之前可能还需要调整某些参数以适应特定硬件平台的需求[^4]: ```bash mkdir build cd build cmake .. make -j$(nproc) ``` #### 集成至ROS节点 为了使 ORB-SLAM3 能够无缝对接 ROS 生态系统中的其他组件,通常会创建专门用于封装 SLAM 功能的服务端程序或订阅者节点[^5]。这一步骤涉及编写自定义的消息传递接口以便于其他传感器数据流同步处理。 #### 示例代码片段 下面展示了一个简单的 Python 脚本例子,它展示了如何启动一个基于 ORB-SLAM3 的 ROS 节点,并连接到指定话题上的图像序列作为输入来源[^6]: ```python import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge import numpy as np import cv2 def image_callback(msg): bridge = CvBridge() frame = bridge.imgmsg_to_cv2(msg, "bgr8") if __name__ == '__main__': rospy.init_node('orb_slam3_ros_example', anonymous=True) sub = rospy.Subscriber("/camera/image_raw", Image, image_callback) try: rospy.spin() # Keep node alive until shutdown request is received. except KeyboardInterrupt: print("Shutting down") cv2.destroyAllWindows() ``` #### 运行方法 当一切设置妥当时,可以通过终端命令轻松激活整个系统[^7]: ```bash roslaunch orb_slam3_ros example.launch vocab_file:=<path-to-vocabulary-file> settings_file:=<path-to-settings-file> ``` 其中 `<path-to-vocabulary-file>` 和 `<path-to-settings-file>` 应替换为实际路径名指向词汇表文件(.txt) 及 设置文件 (.yaml).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值