利用PCL处理Realsense点云数据-在vs2015里用PCL获取Realsense点云数据

本文介绍如何使用realsense_grabber在Windows环境下成功获取点云数据的方法。主要涉及PCL1.8.0-all-in-one、RSSDK及rs-master的安装配置过程。

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

浪费了一个月时间,查了很多资料,然后各种用ubuntu编译,最后结果还是不行,尝试到最后,终于发现一个东西,就是realsense_grabber,但是不是PCL里面自带那个,是独立的。利用这个,我终于可以获取点云数据了。

接下来我说一下需要的东西以及步骤:

首先我们需要的软件有:PCL1.8.0-all-in-one,具体版本自己选择,我的是vs2015-win64版本。然后是RSSDK,就是realsense官方的SDK。这个是必须的,所以即便PCL有了grabber在ubuntu下还是不可以获取点云数据,最后就是单独的grabber也就是rs-master,这几个东西我会一起上传上来,大家直接下载就好了。https://download.youkuaiyun.com/download/wi162yyxq/11262771

关于PCL和RSSDK的安装方法,我前面的博客里有写,就不多说了。

最重要的就是这个rs-master,它的安装很简单,首先需要下载一个cmake,去官网下最新版就好。

然后和常规的cmake一样,在源文件夹下新建build文件夹/

然后configure接着generate,最后到build里面找rs.sln,在release和debug下分别生成项目就好了。

注意一点,在最后添加属性之前,首先把源文件夹下的src中的文件拷贝到include中。

然后我们打开vs的项目,加入rs-master源文件夹下的include,然后添加build文件夹下debug文件夹里的lib。

为了防止编译失败,我们把PCL里的bin文件夹下的dll文件全考到项目文件夹中,最后我们编译re-master/src下的real_sense_viewer.cpp就可以看到效果了。

### 使用 Realsense 设备和 PCL获取点云数据 为了实现使用 Intel RealSense 设备与 Point Cloud Library (PCL) 结合来捕获点云数据,通常需要经过几个重要的步骤设置开发环境以及编写相应的程序逻辑。 #### 设置开发环境 对于 Windows 用户,在 Visual Studio 2015 中集成 PCL 并成功获取来自 RealSense 的点云并非易事;这可能涉及大量的依赖管理和编译工作[^2]。然而,推荐的方式之一是采用 `realsense_grabber` 工具作为解决方案,该工具能够有效地简化这一过程,并允许开发者更便捷地访问传感器采集的数据流。 而对于 Linux 用户来说,则可以通过 ROS 来加速项目的搭建。确保已经正确安装了适用于 Ubuntu 的 RealSense SDK 和对应的 ROS 包之后,修改 launch 文件以便启动 RGB-D 流并发布话题供其他节点订阅[^4]。此外,如果遇到任何缺失的库文件问题,应当及时补充这些必要的资源以保障系统的正常运行[^3]。 #### 编写代码实例 下面给出一段 Python 示例代码用于展示如何借助上述提到的技术栈完成基本功能: ```python import pyrealsense2 as rs import numpy as np import open3d as o3d def get_point_cloud(): pipeline = rs.pipeline() config = rs.config() # Enable streams you are interested in config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) profile = pipeline.start(config) try: while True: frames = pipeline.wait_for_frames() depth_frame = frames.get_depth_frame() if not depth_frame: continue pc = rs.pointcloud() points = pc.calculate(depth_frame) vtx = np.asanyarray(points.get_vertices()) pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(vtx.view(np.float32).reshape(-1, 3)) yield pcd finally: pipeline.stop() if __name__ == "__main__": for point_cloud in get_point_cloud(): o3d.visualization.draw_geometries([point_cloud]) ``` 这段脚本展示了怎样初始化 RealSense 摄像头管道、配置所需参数并通过循环不断读取最新的深度帧信息转换成三维坐标系下的点集表示形式。最终将得到的结果可视化出来方便观察效果。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值