自己部署运行voxblox建图操作记录,voxblox可以基于位姿与点云进行TSDF ESDF mesh建图

有教你怎么构建voxblox,并用voxblox做规划,感觉把我想做的都做了啊 GitHub - ethz-asl/mav_voxblox_planning: MAV planning tools using voxblox as the map representation.

输入图片说明

voxblox建图教程-优快云博客^v43^pc_blog_bottom_relevance_base8&spm=1001.2101.3001.4242.3&utm_relevant_index=7

输入图片说明

输入图片说明

从下面这可以看出voxblox是同时需要位姿和深度图的,这个和ego的风格很像。所以上面说用t265也好理解了!!! 应用于三维重建的TSDF(一)原理与代码解析 - 古月居 voxblox严格来说并不算是SLAM系统,因为这个系统并不带有定位的功能,它只负责进行三维重建,即只有mapping没有localization。它需要一个具有定位功能的SLAM系统输入当前机器人的位姿估计。这既是缺点也是优点。因为我们可以给这个系统搭配任意一个SLAM系统。像上文提到的Elastic Fusion, BAD SLAM的另一个问题就是因为他们是基于纯视觉的系统,当你的相机有比较大的抖动或者转弯等情况时,追踪就容易丢失。而对于voxblox,我们可以给它提供一个鲁棒性很强的SLAM系统提供位姿估计,一般来说就是包含IMU的比如港科大的VINS,Kimera-VIO 或者ORBSLAM 3(不是2是3哦,在2020 年7月左右开源,增加了对IMU等各种支持)。下图就是我利用港科大的VINS+Voxblox,硬件上利用了Realsense相机+IMU,在室外进行的CPU-Based的3维场景重建。

【【orbslam3+voxblox+d435i】基于TSDF的哈希体素网格的实时三维重构-哔哩哔哩】 【orbslam3+voxblox+d435i】基于TSDF的哈希体素网格的实时三维重构_哔哩哔哩_bilibili

输入图片说明

输入图片说明

安装voxblox及运行basement dataset数据集_vox-metadata数据集-优快云博客

输入图片说明

https://download.youkuaiyun.com/download/neptune4751/13144410

输入图片说明

按照上面说的解压到工作空间src下面。

输入图片说明

好像一两分钟就编译完了,在我公司笔记本Ubuntu上,没有报错

输入图片说明

我起了一下roslaunch voxblox_ros euroc_dataset.launch ,有这个报红,是不是bag包不能在中文路径下。

输入图片说明

把bag包换理论个路径打开还是这样

输入图片说明

似乎是缺少image_undistort功能包,搜了下是有这个功能包 https://github.com/ethz-asl/image_undistort

输入图片说明

我把这个功能包克隆下来并且用catkin build image_undistort在相同工作空间编译通过了

输入图片说明

现在再起roslaunch voxblox_ros euroc_dataset.launch 是有这个报红,我看了下是我bag包名字弄错了,我下的MH_01,这里是V1_01

输入图片说明

bag包名称改好再起是这样

输入图片说明

这里有看到跟我相同的报红,似乎是image_undistort功能包造成的? stereo_undistort_node: rectification fails to generate valid P matrices · Issue #44 · ethz-asl/image_undistort · GitHub

输入图片说明

rviz的坐标系需要选择为world,官网和别人博客都这么说了 Running Voxblox — voxblox documentation

输入图片说明

安装voxblox构建稠密地图踩坑:_voxbloxmesh关联-优快云博客

输入图片说明

这里有voxblox发布的所有话题的说明 The Voxblox Node — voxblox documentation

还有看到两个博客说要安装rosmake voxblox_rviz插件,将voxblox和 rviz连接起来,我目前没有弄。 安装voxblox及运行basement dataset数据集_vox-metadata数据集-优快云博客

输入图片说明

安装voxblox构建稠密地图踩坑:_voxbloxmesh关联-优快云博客

输入图片说明

目前总体看弄voxblox的博客不是很多啊

看官网显示的voxblox跑euroc数据集可以达到这样的效果 Example Outputs — voxblox documentation

输入图片说明

voxblock自己提供的bag包里面其实也就两个话题,一个点云话题一个位姿话题 iros2017 – ASL Datasets

输入图片说明

这里教你如何订阅位姿和深度图,而不是tf和深度图了

输入图片说明

我下的这个data.bag应该是对应cow_and_lady_dataset.launch,因为这个bag包的场景正好有个女士和奶牛,bag里的话题名称也和cow_and_lady_dataset.launch里的对的上。

输入图片说明

输入图片说明

输入图片说明

我打印这个话题是有值的,似乎一秒一次

输入图片说明

但是rviz没有这个话题可选的

输入图片说明

我看了下这个voxblox_rviz插件在我下的压缩包里有,只是没有编译,我编译一下

输入图片说明

输入图片说明

在source 了voxblock工作空间的终端打开rviz就可以添加这个mesh话题了!!!!

输入图片说明

输入图片说明

跑时的节点图

输入图片说明

我发现data.bag里面的位姿是geometry_msgs/TransformStamped这个话题类型,这搞不好还不能直接用vins位姿啊

The Voxblox Node — voxblox documentation

输入图片说明

订阅的话题只有这几种类型,所以你还没法直接给深度图话题和odom,需要自己写个转换节点应该。 The Voxblox Node — voxblox documentation

输入图片说明

geometry_msgs/TransformStamped感觉就比posestamped话题多了个string child_frame_id #子坐标系的 id ROS学习第十九节——TF静态坐标变换_geometry_msgs::transformstamped-优快云博客

输入图片说明

我打印了下data.bag里面的/kinect/vrpn_client/estimated_transform话题,发现里面坐标系的名称也没有什么特别的,感觉代码可能都没有读取,就读取的话题里面的位姿的值

输入图片说明

又打印了下data.bag里的点云话题/camera/depth_registered/points 里面的坐标系和/kinect/vrpn_client/estimated_transform话题里的坐标系没有重合的

输入图片说明

播放data.bag时我打印/tf,是没有值的,所以点云话题/camera/depth_registered/points 里面的坐标系跟/kinect/vrpn_client/estimated_transform话题里的坐标系根本没有建起联系。

输入图片说明

那现在先实现把深度图转为点云吧

它哪怕跑RGBD数据集也是订阅的点云

输入图片说明

还有我现在发现之前需要自己单独装的image_undistort功能包只在跑euroc数据集的时和用到了,似乎是用来基于双目灰度生成稠密深度图或者点云的,看来这个苏黎世联邦把我想做的都给做了!!!!!!

输入图片说明

确实它就相当于一个立体匹配节点功能包了 GitHub - ethz-asl/image_undistort: A compact package for undistorting images directly from kalibr calibration files. Can also perform dense stereo estimation

输入图片说明

确实功能包介绍里面就说了可以做深度估计

输入图片说明

看到别人说港科大的fiesta比voxblox好用,而且可以直接订阅深度图,我就暂时先不折腾voxblox去跑自己的bag包了,还要自己写个深度图转点云。

看voxblox发出的话题里面,有mesh ,有esdf,有tsdf,确实很强!!!!!! The Voxblox Node — voxblox documentation

输入图片说明

是的,不光一个mesh话题,还有tsdf话题,只是之前跑时我没有添加显示,不过我现在添加了tsdf话题,似乎没有什么显示的,是否要在launch文件设置?

输入图片说明

输入图片说明

<think>嗯,用户想找适合Intel RealSense D435i相机进行稠密点云的开源项目或SLAM框架。首先,我需要回想一下常见的SLAM框架中有哪些支持RGB-D相机,尤其是D435i这种设备。D435i既有RGB摄像头,又有深度传感器和IMU,所以应该考虑支持RGB-D和IMU融合的方案。 首先,ORB-SLAM系列可能是个不错的选择,特别是ORB-SLAM3,因为它支持多种传感器,包括RGB-D和IMU。我记得ORB-SLAM3在稠密上可能不是最突出的,但可以通过结合其他库比如PCL来生成点云。然后,RTAB-Map也是一个支持RGB-D的SLAM方案,专注于实时外观模,可能更适合稠密的需求。另外,ElasticFusion虽然需要GPU加速,但能生成高精度的稠密点云,不过可能对硬件要求高一些。 还有Open3D,它虽然本身不是SLAM框架,但提供了点云处理和重的工具,可以和其他SLAM系统结合使用。Voxgraph可能适合需要全局一致性的场景,比如大范围。此外,Realsense的官方SDK也有例子,用户可以直接利用D435i的深度数据生成点云,这对快速实现可能很有帮助。 需要确认这些项目是否支持D435i的IMU数据,因为D435i的IMU可能需要在数据融合时进行校准和时间同步。另外,用户的应用场景是实时还是离线处理?如果是实时,可能需要考虑系统的计算效率。还有用户的技术背景,是否需要易于配置和使用的方案,比如RTAB-Map有ROS支持,可能更方便。 可能还需要推荐一些优化的方法,比如使用IMU进行姿估计的优化,或者后处理中的回环检测和全局优化。最后,应该提到参考资源,比如ORB-SLAM3的论文和RTAB-Map的文档,帮助用户深入理解。</think>### 适合D435i的稠密点云开源方案 D435i是一款集成RGB-D相机和IMU的传感器,适合实时稠密。以下是推荐的方案和框架: #### 1. **RTAB-Map (Real-Time Appearance-Based Mapping)** - **特点**:专为RGB-D传感器设计,支持稠密点云、闭环检测和多传感器融合(如IMU)。 - **适用性**:通过ROS集成D435i的深度和IMU数据,可直接生成高精度稠密点云[^1]。 - **代码示例(ROS启动命令)**: ```bash roslaunch rtabmap_ros rtabmap.launch rgb_topic:=/camera/color/image_raw depth_topic:=/camera/aligned_depth_to_color/image_raw camera_info_topic:=/camera/color/camera_info imu_topic:=/camera/imu ``` #### 2. **ORB-SLAM3(支持RGB-D+IMU)** - **特点**:支持单目、双目、RGB-D和IMU融合,具有高精度定能力,可通过点云后处理生成稠密地[^1][^2]。 - **扩展**:结合Open3D或PCL库对稀疏点云进行稠密化处理。 #### 3. **ElasticFusion** - **特点**:基于RGB-D的稠密SLAM框架,支持实时表面重和全局一致性优化,适合小规模场景的精细模。 - **要求**:需GPU加速(如CUDA)。 #### 4. **Open3D + RealSense SDK** - **特点**:使用Intel RealSense SDK直接获取深度数据,通过Open3D实时生成和可视化点云。 - **代码示例(Python)**: ```python import open3d as o3d import pyrealsense2 as rs pipeline = rs.pipeline() config = rs.config() config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) pipeline.start(config) try: while True: frames = pipeline.wait_for_frames() depth_frame = frames.get_depth_frame() depth_image = o3d.geometry.Image(np.array(depth_frame.get_data())) pcd = o3d.geometry.PointCloud.create_from_depth_image( depth_image, o3d.camera.PinholeCameraIntrinsic(o3d.camera.PinholeCameraIntrinsicParameters.PrimeSenseDefault)) o3d.visualization.draw_geometries([pcd]) finally: pipeline.stop() ``` #### 5. **Voxgraph(基于Voxblox)** - **特点**:专注于稠密体素地,支持TSDF(截断符号距离函数)融合,适合大场景。 --- ### 性能优化议 1. **IMU融合**:启用D435i的IMU数据,通过滤波(如卡尔曼滤波)提升运动估计的鲁棒性。 2. **深度滤波**:使用RealSense SDK的`spatial_filter`和`temporal_filter`减少深度噪声。 3. **全局优化**:在RTAB-Map或Voxgraph中启用回环检测和姿优化,提升地一致性[^2]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

诗筱涵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值