IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ROS学习九、ros中的图像处理包(1)RGBD图像转PCL -> 正文阅读

[人工智能]ROS学习九、ros中的图像处理包(1)RGBD图像转PCL

前言

最近又在弄仿真,需要把RGBD相机转成点云。

ROS自带的图像处理包image_pipeline

ROS提供了用于单目、双目、深度图像处理、相机标定和可视化的工具,包含在集成模块image_pipeline中。主要有以下几个包:

camera_calibration相机标定

depth_image_proc深度图像处理

image_proc基本图像处理

stereo_image_proc双目图像处理

image_view图像可视化

image_rotate图像旋转

image_publisher图像发布

ROS的图像处理模块做的还是很实用的。

depth_image_proc包

image_pipeline提供了深度图像处理包depth_image_proc,因此从深度图转点云图很方便,不需要自己求算相机的内参外参。

需要注意的是,depth_image_proc包需要通过nodelet使用。

深度图转点云

最重要的首先就是深度图转点云,ROS通过nodelet插件载入depth_image_proc/point_cloud_xyz方法来进行RGBD图像与PCL的转换。

depth_image_proc/point_cloud_xyz订阅深度相机的参数以及深度图像,并发布点云:

Subscribe:
	camera_info (sensor_msgs/CameraInfo)
	image_rect (sensor_msgs/Image)
Publish:
	points (sensor_msgs/PointCloud2)
Params:
	queue_size (int, default: 5)

实际使用时,可采用以下launch文件写法:

  <!-- PCL cloud -->
  <node pkg="nodelet" type="nodelet" name="nodelet_pcl_manager" args="manager" />
  <node pkg="nodelet" type="nodelet" name="rgbd_pcl"
        args="load depth_image_proc/point_cloud_xyz nodelet_pcl_manager">
    <remap from="camera_info" to="/mycamera/depth/camera_info"/>
    <remap from="image_rect" to="/mycamera/depth/image_raw" />
    <remap from="points" to="/mycamera/depth/rgbd_points"/>
    <param name="queue_size" value="5" />
  </node>

上面的launch文件把depth_image_proc/point_cloud_xyz原本订阅和发布的话题映射到了实际使用的话题上。

RGB与深度图转PCL

ROS还提供了将RGB图与深度图配准后投影到点云的方法,depth_image_proc/point_cloud_xyz:

Subscribe:
	rgb/camera_info (sensor_msgs/CameraInfo)
	rgb/image_rect_color (sensor_msgs/Image)
	depth_registered/image_rect (sensor_msgs/Image)
Publish:
	depth_registered/points (sensor_msgs/PointCloud2)
Params:
	queue_size (int, default: 5)

具体的launch文件与纯深度图转点云类似。需要注意的是,首先要把深度图重投影到RGB图上,也就是“配准”,然后再转RGB点云。

深度图投影到RGB图

ROS提供了一个将深度图重投影到RGB图上的方法,depth_image_proc/register:

Subscribe:
	rgb/camera_info (sensor_msgs/CameraInfo)
	rgb/image_rect_color (sensor_msgs/Image)
	depth/image_rect (sensor_msgs/Image)
Publish:
	depth_registered/camera_info (sensor_msgs/CameraInfo)
	depth_registered/image_rect (sensor_msgs/Image)
Params:
	queue_size (int, default: 5)
Required TF:
	/depth_optical_frame → /rgb_optical_frame

投影时,需要从深度相机光轴坐标系到RGB相机坐标系的TF。

深度图尺度转换

ROS还提供了一个从uint16类型的深度图(mm)转为float类型深度图(m)的方法depth_image_proc/convert_metric:

Subscribe:
	image_raw (sensor_msgs/Image)
Publish:
	image (sensor_msgs/Image)

最后,还有一个深度图转视差图的方法depth_image_proc/disparity,但实际中用的比较少。

后记

本次记录了在ROS中使用depth_image_proc包将RGBD数据转换为点云数据的方法,加深一下工具使用能力。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:20:39  更:2021-11-23 12:24:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:19:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码