KinectV2标定
KinectV2的一些参数
1.硬件组成&参数
彩色摄像机:
19201080;30 or 15 FPS;多种图像格式可选(例如:RGBA–.png;YUV–MPEG压缩)
2.红外投影机:
主动投射近红外光谱,生成可被红外摄像机读取的激光散斑;
512424;30 FPS;每像素16bit
3.深度(红外)摄像机:
测量范围:0.5 ~ 4.5 m;
每像素16bit(该数据表示从深度摄像机到该物体的距离,单位:mm)
*备注:彩色点和深度图点的坐标系原点均为左上角
*参考:
https://wenku.baidu.com/view/cd21be3149d7c1c708a1284ac850ad02de8007cd.html?re=view
使用iai_kinect2標定过程
https://github.com/code-iai/iai_Kinect2
采集Kinect2的图像
cd ~/catkin_ws/
*确认配置环境
source devel/setup.bash //如果在用户配置文件中gedit ~/.bashrc中改变了其内容,则运行前需要再运行该句配置一遍,否则执行下句时会出现BUG
运行roslaunch
roslaunch kinect2_bridge kinect2_bridge.launch
打开一个新终端,显示图像
rosrun kinect2_viewer kinect2_viewer sd cloud//查看点云图512424
rosrun kinect2_viewer kinect2_viewer//和上面指令功能一样?QHD:960540
保存图片
单击图片+按空格键----默认自动保存在catkin_ws文件夹中
採用QHD分辨率使用kinect2_calibration
参考:https://hk.saowen.com/a/6a4c27b2513f41ddf7017e4e789ba2bd1ff49c956ebb69951faffcd04998fc91
1.修改kinect2_calibration.cpp文檔如下:
a)K2_TOPIC_HD 改為 K2_TOPIC_QHD
b)把文檔中涉及到分辨率1920x1080都改成960x540,這一步非常重要,不然校正出來的內參還是按照HD分辨率進行校正
2.編譯進程
cd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE=“Release”
參考“http://www.bubuko.com/infodetail-2151412.html”
参考:http://www.mamicode.com/info-detail-1886444.html
1311-1313这三行命令:
std::string topicColor = “/” + ns + K2_TOPIC_HD + K2_TOPIC_IMAGE_MONO;
std::string topicIr = “/” + ns + K2_TOPIC_SD + K2_TOPIC_IMAGE_IR;
std::string topicDepth = “/” + ns + K2_TOPIC_SD + K2_TOPIC_IMAGE_DEPTH;
正好和上面的输出信息:
Topic color: /kinect2/hd/image_mono
Topic ir: /kinect2/sd/image_ir
Topic depth: /kinect2/sd/image_depth
对应,因此把 K2_TOPIC_HD 改为 K2_TOPIC_QHD 即可。保存。然后重新编译
** 相机外参 Vs 手眼标定
相机外参:是相机坐标系和世界坐标系之间的对应关系;
手眼标定:是相机和机械手之间的关系。
如果将世界坐标系和机械手坐标系重合?
标定之后呢,会得到kinect2彩色头、深度头、红外头的内参和外参,它们都以(万恶的)yaml模式存储在你的机器内。kinect2_bridge会自动检测你的标定文件,对深度图进行校正。之后slam过程主要使用彩色头的内参哦!
- HLS Lesson15-for循环优化:其他方法
- 对自己的上网搜索记录进行爬虫是怎样一种体验
- HLS Lesson13-for循环优化:合并
- HLS Lesson12-for循环优化:基本性能指标
- HLS Lesson11-c/c++ testbench书写续2
- 【机器学习】实例详解机器学习如何解决问题
- 企业网站架构之Nginx+tomcat+memcached集群
- 企业级Docker Registry开源工具Harbor的介绍以及使用指南
- HLS Lesson8-基本操作
- Windows渗透测试工具:RedSnarf
- HLS Lesson7-复合数据类型
- matlab GUI基础3
- 【Python环境】《Python数据科学入门》试译 第一章 简介
- HLS Lesson20-实例分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SpringBoot Feign文件上传
- Docker_000
- 如何应对面试官的JVM调优问题
- Docker_001
- Docker_002
- [PyQt Tutorial]2.一个Hello World程序
- Oracle设置开机自启
- Go_学习之Docke容器
- zabbix 监控项
- [PyQt Tutorial]4.使用Qt Designer
- [PyQt Tutorial]5.Signals & Slots(信号与槽)
- Docker数据共享与持久化
- [PyQt Tutorial]6.Layout Management(布局管理)
- Kubernetes入门
- [PyQt Tutorial]7.QDialog 类