ROS 摄像头标定-camera_calibration

136 篇文章 39 订阅
订阅专栏
56 篇文章 52 订阅
订阅专栏
17 篇文章 6 订阅
订阅专栏

摄像头这种精密仪器对光学器件的要求较高,由于摄像头内部与外部的一些原因,生成的物体图像往往会发生畸变,为了避免数据源造成的误差,需要针对摄像头的参数进行标定。

ROS官方提供了用于双目和单目摄像头标定的功能包—camera_calibration

camera_calibration功能包

首先使用以下命令安装摄像头标定功能包camera_calibration:

sudo apt-get install ros-kinetic-camera-calibration

标定需要用到图所示棋盘格图案的标定靶,可以在本书配套源码中找到(robot_vision/doc/checkerboard.pdf),请你将该标定靶打印出来贴到平面硬纸板上以备使用。

在这里插入图片描述

启动标定程序

一切就绪后准备开始标定摄像头。首先使用以下命令启动USB摄像头:

roslaunch robot_vision usb_cam.launch

然后使用以下命令启动标定程序:

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/im

cameracalibrator.py标定程序需要以下几个输入参数。

1)size:标定棋盘格的内部角点个数,这里使用的棋盘一共有6行,每行有8个内部角点。

2)square:这个参数对应每个棋盘格的边长,单位是米。

3)image和camera:设置摄像头发布的图像话题。

根据使用的摄像头和标定靶棋盘格尺寸,相应修改以上参数,即可启动标定程序。

标定摄像头

标定程序启动成功后,将标定靶放置在摄像头视野范围内,应该可以看到如图所示的图形界面。

在这里插入图片描述
在没有标定成功前,右边的按钮都为灰色,不能点击。为了提高标定的准确性,应该尽量让标定靶出现在摄像头视野范围内的各个区域,界面右上角的进度条会提示标定进度。

1)X:标定靶在摄像头视野中的左右移动。
2)Y:标定靶在摄像头视野中的上下移动。
3)Size:标定靶在摄像头视野中的前后移动。
4)Skew:标定靶在摄像头视野中的倾斜转动。

不断在视野中移动标定靶,直到“CALIBRATE”按钮变色,表示标定程序的参数采集完成。点击“CALIBRATE”按钮,标定程序开始自动计算摄像头的标定参数,这个过程需要等待一段时间,界面可能会变成灰色无响应状态,注意千万不要关闭。

参数计算完成后界面恢复,而且在终端中会有标定结果的显示。

在这里插入图片描述
点击界面中的“SAVE”按钮,标定参数将被保存到默认的文件夹下,并在终端中看到该路径,如图所示。

在这里插入图片描述

点击“COMMIT”按钮,提交数据并退出程序。然后打开/tmp文件夹,就可以看到标定结果的压缩文件calibrationdata.tar.gz;解压该文件后的内容如下 图所示,从中可以找到ost.yaml命名的标定结果文件,将该文件复制出来,重新命名就可以使用了。

在这里插入图片描述

标定Kinect

除了一个RGB摄像头,Kinect还有一个红外深度摄像头,两个摄像头需要分别标定,方法与USB摄像头的标定相同。

启动Kinect后,分别使用以下命令

roslaunch robot_vision freenect.launch
rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_raw camera:=/camera/rgb --size 8x6 --square 0.024
rosrun camera_calibration cameracalibrator.py image:=/camera/ir/image_raw camera:=/camera

在这里插入图片描述

加载标定参数的配置文件

标定摄像头生成的配置文件是YAML格式的,可以在启动摄像头的launch文件中进行加载,例如加载摄像头标定文件的robot_vision/launch/usb_cam_with_calibration.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"/>
<param name="camera_info_url" type="string" value="file://$(find robot_vision)/
camera_calibration.yaml" />
</node>
</launch>

Kinect标定文件的加载方法相同,分别设置RGB摄像头和红外深度摄像头的标定文件即可,详见robot_vision/launch/freenect_with_calibration.launch:

<launch>
<!-- Launch the freenect driver -->
<include file="$(find freenect_launch)/launch/freenect.launch">
<arg name="publish_tf" value="false" />
<!-- use device registration -->
<arg name="depth_registration" value="true" />
<arg name="rgb_processing" value="true" />
<arg name="ir_processing" value="false" />
<arg name="depth_processing" value="false" />
<arg name="depth_registered_processing" value="true" />
<arg name="disparity_processing" value="false" />
<arg name="disparity_registered_processing" value="false" />
<arg name="sw_registered_processing" value="false" />
 <arg name="hw_registered_processing" value="true" />
<arg name="rgb_camera_info_url"
value="file://$(find robot_vision)/kinect_rgb_calibration.yaml" />
<arg name="depth_camera_info_url"
value="file://$(find robot_vision)/kinect_depth_calibration.yaml" />
</include>
</launch>

启动加载了标定文件的传感器后,可能会看到如下图所示的警告信息。

在这里插入图片描述
这是因为标定文件中的camera_name参数与实际传感器的名称不匹配,按照警告提示的信息进行修改即可。比如根据上图日志中所示的警告,分别将两个标定文件中的camera_name参数修改为“rgb_A70774707163327A”、“depth_A70774707163327A”即可。

ros快速完成----摄像头标定--camera_calibration--亲测有效,商业方案,以及畸变矫正系数和deepstream中的畸变如何对应---畸变矫正的参数
pvmsmfchcs的博客
09-14 429
摄像头标定camera_calibration
ROS系统-摄像头标定camera calibration
zbr794866300的博客
07-06 9308
ROS系统下调用摄像头后,因为图像没有被标定,因此会出现畸变。ros系统下调用摄像头参考:ros下调用摄像头 ROS官方提供了用于单目或者双目标定camera_calibration包。官方也给出了单目的标定教程和双目视觉的标定教程。本教程基于usb_cam package 读取图像,然后使用官方例程进行标定。具体操作步骤如下: 1.使用usb_cam读取图像 这个过程参考:usb_c...
ROS系统 摄像头标定camera calibration
z1872385的博客
11-19 5618
1、安装标定功能包 sudo apt-get install ros-melodic-camera-calibration 2、打开摄像机,启动标定节点 rosrun camera_calibration cameracalibrator.py --size 8x5 --square 0.028 image:=/usb_cam/image_raw camera:=/usb_cam size:棋盘内角点的个数,行*列 square:一个格子的边长,单位是m image:摄像头发布的图像话题明 camer
ROS下进行深度相机标定及点云赋色(d2c)
最新发布
cg1135217680的博客
08-01 1056
深度相机的标定以及点云赋色(d2c)
使用ROS功能包camera_calibration进行单目相机和双目相机的内参和外参标定
超爱吃小蛋糕的66的博客
06-26 3040
本文总结使用ROS标定单目和双目相机的过程,同时提供生成棋盘格文件的方法。
ROS 摄像头矫正 camera_calibration
XiaoZhuang
04-02 1万+
1.首先回顾摄像头Package 安装教程 我安装的是uvc_camera. 由于对ROS不熟悉,目前只知道cd到/opt/ros/hydro/share目录下,将uvc_camera 的package 下载下来 i.e: git clone https://github.com/ktossell/camera_umd.git 具体见另外一篇教程 采用$rosrun uvc_camera u
ROS下采用camera_calibration进行双目相机标定
lemonxiaoxiao的博客
10-30 4352
使用ROS 官方提供的 camera_calibration 包对双目相机进行标定 一、准备工作: 系统环境:Ubuntu16.04 ROS版本:ros-kinetic 双目相机:Intel RealSense D435i 标定板:7×6 二、双目标定: 启动双目相机驱动: source devel/setup.bash roslaunch realsense2_camera rs_camera.launch 查看图像是否发布: rostopic list #列出 topic 确保相机正在通
摄像头标定--camera_calibration
bingda_robot的博客
09-06 6884
用于指明标定板的内角点数量,如下图每个红圈的位置就是一个内角点,我所使用的GP290标点板有横向有11个内角点,纵向有8个内角点。当所有进度条都变成绿色后,CALIBRATE按钮由灰色变成深绿色,点击CALIBRATE,点击一下后,界面会卡住,此时不要做任何操作,直到运行标定程序的终端输出标定的结果,大概是这样的。打印的标定板缺点在于,第一打印机的精度有限,边缘可能会产生模糊,另外就是在粘贴时很难做到极高的平整度,这两项都会对标定结果产生一定的影响,但是优点时便宜易得。
摄像机标定matlab代码-livox_camera_lidar_calibration:校准LivoxLiDAR和相机之间的外部参数
05-20
摄像机标定matlab代码 Camera-LiDAR校准手册 该解决方案提供了一种手动校准Livox LiDAR与摄像机之间的外部参数的方法,该方法已在Mid-40,Horizo​​n和Tele-15系列上得到验证。 它包括相机固有参数的校准,校准数据...
camera_lidar_calibration:用于校准2D激光测距仪(LRF)和相机之间的外部信号的工具。 ROS版本
04-30
相机激光雷达校准工具。 作者:xinliangzhong( ) 1.说明 该套件用于通过单眼相机校准2D LiDAR或激光测距仪(LRF)。 特别是,Hokuyo UTM-30LX已成功通过单反相机进行了校准。 但是这种方法实际上是一种幼稚的...
ROS功能包camera_calibration标定相机内参
abanchao的博客
05-11 1550
ROS功能包camera_calibration标定相机内参,--size 10x7: 为当前标定板的内点数量,即内部小正方形角点的交点 --square 0.05:为每个小棋盘格的边长,单位是米 image:=/camera_raw:标定当前订阅图像来源自名为/camera/image_raw的topic camera:=/camera_raw:为摄像机名通过不停的移动标定板:直到X、Y、Size、Skew四个都变成绿色,点击“CALIBRATE”界面卡住,开始计算标定,完成后可点击“save”进行保存,
ros学习之camera calibration 单目摄像头标定
weixin_43331257的博客
10-03 6741
环境:ubuntu16.04 ros版本 kinetic 标定笔记本单目摄像头 需要的准备:1、标定图:下面这张打印到a4纸上。 2、摄像机驱动,我使用的是usb_cam,下载地址:https://github.com/ros-drivers/usb_cam 下载后放到ros的src目录下(catkin_ws/src) ,编译一下: 打开终端 $cd $ cd catkin_ws $ ca...
ROS下采用camera_calibration进行单目相机标定
lemonxiaoxiao的博客
07-31 1万+
参考: https://blog.csdn.net/learning_tortosie/article/details/79901255 https://blog.csdn.net/learning_tortosie/article/details/82347694 https://blog.csdn.net/weixin_35695879/article/details/86666784?depth_1-utm_source=distribute.pc_relevant.none-task-blog-B.
ROS camera_calibration与Kalibr标定相机教程
陆羽飞的博客
11-13 6280
Kalibr是专门用于slam多传感器标定的功能包,可以实现单目相机标定、双目标定以及单、双目相机系统与IMU的联合标定,此教程只介绍单目标定。 安装配置Kalibr: sudo apt-get install python-setuptools python-rosinstall ipython libeigen3-dev libboost-all-dev doxygen libopenc...
利用ROS camera_calibration对usb相机标定
Nick的博客
06-24 1457
利用ROS camera_calibration对usb相机标定
计算机视觉-相机标定(Camera Calibration)
weixin_43890415的博客
05-21 6万+
1.相机标定基本原理 1.1简介 相机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵PPP的过程 基本的坐标系 世界坐标系:用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入。 相机坐标系:在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系和图像/像素坐标系的中间一环。 图像坐标系:为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标。 一般来说,标定
ros摄像头标定
Time_book的博客
03-22 307
1.终端输入 roscore 2.在创建一个终端输入 rosrun uvc_camera uvc_camera_node 3.在创建一个终端输入 rostopic echo /camera_info 找到image_raw 和camera所在的位置 4.在创建一个终端输入 rosrun camera_calibration cameracalibrator.py --size 8x6 --s...
相机标定(Camera calibration)
热门推荐
honyniu的专栏
03-30 8万+
简介摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵 PP 的过程,下面相关的部分主要参考UIUC的计算机视觉的课件(网址Spring 2016 CS543 / ECE549 Computer vision)。基本的坐标系: 世界坐标系(world coordinate system); 相机坐标系(camera coordina
【python】Camera Calibration
bryant_meng
12-16 4393
汇总整理摘抄自 相机标定:从世界坐标系到图像像素坐标系转换过程解析 四大坐标系与内外参 世界坐标系、相机坐标系、图像坐标系之间的关系 世界坐标系,相机坐标系,图像坐标系,像素坐标系 相机模型 + 世界坐标系+相机坐标系+图像坐标系 相机模型中的世界坐标系究竟指什么? 老司机帮忙解释下摄像头的世界坐标系? 像素坐标系到世界坐标系的转换 【相机标定02】从世界坐标系到像素坐标系 文章目录1 坐标系简介2 图像物理坐标系与像素坐标系3 像素坐标系与相机坐标系(内参)4 相机坐标系与世界坐标系(外参)5 实.
ros camera_calibration
03-16
ROS相机标定是一种用于校准相机的ROS软件包。它可以通过使用已知的3D点和对应的2D图像点来计算相机的内部参数和外部参数,从而提高相机的精度和准确性。该软件包还提供了一些工具,如可视化工具和自动标定工具,以帮助用户更轻松地完成标定过程。
写文章

热门文章

  • opencv基础47 图像轮廓查找cv2.findContours()介绍及示例 24433
  • opencv-19 图像色彩空间转换函数cv2.cvtColor() 14002
  • opencv基础-07-感兴趣区域(ROI) 13915
  • opencv基础44- Canny边缘检测详解-cv.Canny() 11748
  • SpringMvc+Mybatis自动生成代码框架_1 8217

分类专栏

  • 架构设计 8篇
  • opencv 63篇
  • SLAM 3篇
  • 机器人 72篇
  • 人工智能 136篇
  • opentcs调度 3篇
  • 算法 2篇
  • 企业开发实战 1篇
  • 开发环境工具安装 7篇
  • web3 6篇
  • ROS2 56篇
  • Gazerbo 仿真学习 2篇
  • nav2 3篇
  • 计算机视觉 63篇
  • 机器人仿真 1篇
  • ROS1 12篇
  • AGV 17篇
  • java 2篇
  • 机械臂 1篇
  • ROS 4篇
  • opentcs 2篇
  • go 17篇
  • goland 17篇
  • go实战 2篇
  • opencv实战 5篇
  • 机器学习 19篇
  • javacv 5篇
  • opencv 进阶 19篇
  • 深度学习 2篇
  • 笔记 2篇
  • rabbitmq 4篇
  • 消息队列 5篇
  • Java web 6篇
  • 微信公众号开发
  • springboot 16篇

最新评论

  • Solidity学习-投票合约示例

    深圳王哥: Solidity投票合约示例很有用,实现基于委托的投票,主席设定提案和投票权,还能委托信任人投票,最后通过winningProposal函数明确获胜提案,流程清晰,适合初学者理解。

  • opencv 案例实战02-停车场车牌识别SVM模型训练及验证

    猿说猿道: 大佬,求个config.json文件

  • opencv基础14-图像加密和解密

    tyj0823: 大部分图片都会有噪声雪花

  • opencv基础-34 图像平滑处理-双边滤波cv2.bilateralFilter()

    wrrryyyyy: 图里加的白点可以当成一种高频分量,从这个角度来看高频基本没有滤掉,效果挺好的

  • Isaac Sim 仿真机器人urdf文件导入

    weixin_58814746: ;解决了吗 我也是

最新文章

  • mqtt 企业开发实战中遇到的常见问题(gpt4o)
  • mqtt 应用场景(gpt4)
  • mysql 与postgresql 的区别(gpt4)
2024
09月 6篇
08月 4篇
07月 6篇
06月 2篇
05月 29篇
04月 8篇
01月 16篇
2023年195篇
2021年1篇
2020年4篇
2017年13篇
2016年3篇
2015年1篇
2014年2篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小海聊智造

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

天下网标王网站设计与优化费用黄山网站优化推广企业崇州网站整站优化费用网站优化过程中应该思考哪些问题刷pc网站优化优化软件刷搜狗pc网站优化排名软件丽水优化网站荆门市网站关键词优化怎么做怎么优化网站排行榜网站优化怎样的河南企业网站优化公司榆林网站优化公司广州网站优化网络推广公司八宿县网站seo优化排名优化网站推广怎么做优化网站就选h火10星评价放心的网站关键词优化技术延津县网站优化公司资阳网站优化怎么选郴州优化网站怎样快速优化网站百度排名肇庆哪里有网站seo优化浙江华企网站seo引擎优化虹口网站优化常州网站优化公司和优化网站凝望云速 捷网站建设官网优化企业网站推广优化开封seo网站优化推广项城网站自然优化费用多少香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化