ROS单目相机标定 ------ 亲测

news/2024/11/29 8:04:41/

link

在这里插入图片描述
主要参考1
主要参考2

主要参考3

camera_calibration/Tutorials/MonocularCalibration - ROS Wiki

说明:本教程介绍使用camera_calibration的cameracalibrator.py节点在 ROS 上使用原始图像校准单目相机。 

1. 在开始之前

确保您具备以下条件:

  • 具有已知尺寸的大型棋盘。本教程使用 108 毫米正方形的 6*4棋盘。校准使用棋盘的内部顶点,因此“9x7”棋盘使用内部顶点参数“8x6”,如下例所示。

  • 一个光线充足的 5m x 5m 区域,没有障碍物并检查板图案
  • 通过 ROS 发布图像的单目相机

USB相机驱动

安装usbcam

如果你的ros版本是 melodic
sudo apt-get install ros-melodic-usb-cam
如果你的ros版本是 noetic
sudo apt-get install ros-noetic-usb-cam

查看接入的USB摄像头的设备号

ls /dev/video*
查看相机参数
v4l2-ctl -d /dev/video0 --all
找到关键信息
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:Width/Height      : 1280/720Pixel Format      : 'MJPG'Field             : NoneBytes per Line    : 0Size Image        : 1843200Colorspace        : sRGBTransfer Function : Default (maps to sRGB)YCbCr/HSV Encoding: Default (maps to ITU-R 601)Quantization      : Default (maps to Full Range)

修改launch文件,设置USB摄像头的编号

roscd usb_cam
cd launch
sudo gedit usb_cam-test.launch 
修改的参数
<launch><node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" ><param name="video_device" value="/dev/video0" /><param name="image_width" value="1280" /><param name="image_height" value="720" /><param name="pixel_format" value="yuyv" /><param name="camera_frame_id" value="usb_cam" /><param name="io_method" value="mmap"/></node><node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen"><remap from="image" to="/usb_cam/image_raw"/><param name="autosize" value="true" /></node>
</launch>

启动摄像头

roslaunch usb_cam usb_cam-test.launch
2.相机内参标定
首先获取依赖项并编译驱动程序。
rosdep install camera_calibration
确保您的单目相机通过 ROS 发布图像。让我们列出主题以检查图像是否已发布:
rostopic list

这将显示所有已发布的主题,检查是否有image_raw主题。大多数 ROS 相机驱动程序提供的默认主题是:

/rosout
/rosout_agg
/usb_cam/camera_info
/usb_cam/image_raw
/usb_cam/image_raw/compressed
/usb_cam/image_raw/compressed/parameter_descriptions
/usb_cam/image_raw/compressed/parameter_updates
/usb_cam/image_raw/compressedDepth
/usb_cam/image_raw/compressedDepth/parameter_descriptions
/usb_cam/image_raw/compressedDepth/parameter_updates
/usb_cam/image_raw/theora
/usb_cam/image_raw/theora/parameter_descriptions
/usb_cam/image_raw/theora/parameter_updates
第三步:运行标定程序

注意下面这句话,不要生搬硬套,要根据实际调整!!!

rosrun camera_calibration cameracalibrator.py --size 6x4 --square 0.033 image:=/usb_cam/image_raw camera:=/usb_cam
拿着标定板移动,它会自动识别然后标定出64个点,这就是刚刚为什么是64的原因了
大概标定出几十个后,左侧第一个CALIBRATE按钮会亮起来点击CALIBRATE按钮,此时会变灰色图像,耐心等待,不是死机

点击SAVE,COMMIT按钮


http://www.ppmy.cn/news/726153.html

相关文章

【LCC系列】不用标定目标,实现高分辨率激光雷达和相机的像素级自标定(2020)

文章目录 1 动机2 方法2.1 边缘约束2.2 边缘提取2.3 边缘匹配2.4 外参标定2.4.1 测量噪声2.4.2 外参优化2.4.3 估计的不确定性2.4.4 边缘分布的影响 3 实验 本文介绍一个 高分辨率激光雷达(Livox)和相机的外参标定方法&#xff08;targetless方法&#xff09;&#xff0c;该方…

飞思卡尔MC9S12X:CAN初始化配置

飞思卡尔MC9S12X&#xff1a;CAN初始化配置 飞思卡尔MC9S12X&#xff1a;CAN发送配置 飞思卡尔MC9S12X&#xff1a;CAN接收配置 飞思卡尔MC9S12X&#xff1a;CAN驱动函数在主函数中的应用 一、MSCAN初始化流程 查询是否进入初始化状态&#xff0c;如不是&#xff0c;进入初始化…

ROS下单目相机标定过程

下面简单记录一下我利用ros标定相机参数的过程&#xff0c;Ubuntu 16.04 &#xff0c;摄像头用的罗技C920 ROSwiki有相机矫正的官方文档&#xff0c;有单目的也有立体相机的教程&#xff0c;建议直接看原文&#xff0c;原汁原味&#xff1a;链接 1、相机标定第一步&#xff0…

470款日系文艺LR预设电影质感Lightroom预设PR/PS/AE/FCPX/LUT预设

下载&#xff1a;470款日系文艺LR预设电影质感Lightroom预设PR/PS/AE/FCPX/LUT预设

相机参数标定(camera calibration)及标定结果如何使用

重要更新&#xff1a;本文的第二次更新已发布。为了不破坏现有内容的结构&#xff0c;故重新开始新的一篇文章。同时本文的一些内容也会涵盖进去。 欢迎关注。 《第二更&#xff0c;相机参数标定基础&#xff1a;从小孔成像开始到单双目标定》 关于实践部分&#xff0c;可参…

realsense系列相机ros内外参标定2022.11.20

这里写目录标题 环境 环境 ros kinetic ubuntu 16.04 相机 realsense D455i 想着realsense是否和kinect一样进行内参标定&#xff0c;输出yaml文件&#xff0c;但是搜了一堆内容&#xff0c;并没有什么完整或是可靠的说法。 https://github.com/IntelRealSense/realsense-ros/…

六、相机标定效果评价

1. 重投影误差 检测到的二维图像的角点和真实世界三维点的投影点之间的距离。使用标定得到的相机的内外参和畸变参数将三维世界的点投影得到像素像素坐标系中的二维角点&#xff0c;然后和算法检测到的二维图像的角点计算均方误差&#xff08;RMS&#xff09;, 一般平均重投影…

相机与IMU联合标定

相机与IMU联合标定 1 imu_utils 标定IMU的内参1.1 安装环境1.2 录制IMU数据集 2 kalibr 标定工具2.1 安装2.2 校准相机的内外参2.3 校准相机与IMU外参 总结参考资料 1、 imu_utils标定IMU的内参&#xff0c;可以校准IMU的噪声密度和随机游走噪声 2、kalibr包标定相机的内外参数…