当前位置: 首页 > news >正文

SLAM 将PCL点云转换成八叉树地图

这个程序可以把PCL点云压缩成不带颜色的八叉树地图。

先看一下输入数据,是一个咖啡厅的一小部分:

程序运行后会生成不带颜色的八叉树地图,使用octovis查看:

把输出结果按高度染色:

输入:任意PCL点云 <pointcloud.pcd>

输出:以二进制保存的八叉树地图 <pointcloud.bt>

运行:编译后在cmd里带参数才能运行 <pointcloud.pcd> <pointcloud.bt>

示例:program,exe sample.pcd sample.bt

视频演示:https://www.bilibili.com/video/BV18sLi6dEHW/

代码:

#include <iostream> #include <assert.h> //pcl #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> //octomap #include <octomap/octomap.h> using namespace std; int main( int argc, char** argv ) { if (argc != 3) { cout<<"Usage: pcd2octomap <input_file> <output_file>"<<endl; return -1; } string input_file = argv[1], output_file = argv[2]; pcl::PointCloud<pcl::PointXYZRGBA> cloud; pcl::io::loadPCDFile<pcl::PointXYZRGBA> ( input_file, cloud ); cout<<"point cloud loaded, piont size = "<<cloud.points.size()<<endl; //声明octomap变量 cout<<"copy data into octomap..."<<endl; // 创建八叉树对象,参数为分辨率,这里设成了0.05 octomap::OcTree tree( 0.05 ); for (auto p:cloud.points) { // 将点云里的点插入到octomap中 tree.updateNode( octomap::point3d(p.x, p.y, p.z), true ); } // 更新octomap tree.updateInnerOccupancy(); // 存储octomap tree.writeBinary( output_file ); cout<<"done."<<endl; return 0; }

参考:SLAM拾萃(1):octomap - 半闲居士 - 博客园

http://www.cnnetsun.cn/news/3252634.html

相关文章:

  • Stable Diffusion 2026最新版本地部署教程:一键安装到出图
  • 增强现实应用开发学习心得
  • AI重塑IT行业:从印度招聘趋势看技术转型与职业发展
  • ZEMAX 光学仿真:对比3种透镜聚焦光斑直径计算公式的适用场景与误差
  • PyTorch .pt/.pth/.pkl 3种格式深度对比:存储内容、加载速度与安全性实测
  • 请求参数重复定义报错,DMXAPI 聚合平台开发AI 排错工具,清理重复 JSON 字段
  • 0-10V转4-20mA模块电路设计:运放+三极管方案实测,负载电阻≤500Ω
  • 物联网安全那点事:一把打开“零信任之门”的金钥匙——设备接入认证与通信加密的全栈剖析
  • 呼和浩特中小企业做 GEO 推广选哪家?本土爱笑传媒一站式 AI 搜索获客方案
  • MC9S12XS128 智能车图像处理实战:100x160 分辨率下 3 种二值化算法效率实测
  • 能做3D的AI视频工具怎么选?即梦Seedance 2.5强势来袭!
  • 计算机毕业设计之基于ssm的校园跑腿管理系统的设计与实现
  • Spring Boot 3 + Vue 3 + MySQL 智慧诊疗系统源码 前后端分离 AI 辅助诊断项目实战
  • 真正的2亿像素体验,究竟由什么决定?
  • lk2nd 移植实战:为广信 EF33 老年机添加 ST7789V SPI 屏支持的 2 个核心补丁
  • DeepSeek V4 API价格策略解析与成本优化实战指南
  • 华为 MH5000-31 5G模组 Windows/Linux 双平台部署:从驱动安装到AT指令上网全流程
  • macOS Catalina下Jupyter Notebook配置全指南
  • OCRAutoScore:基于多模态AI的智能阅卷系统架构解析
  • 在线算法在实时推荐系统中的应用与性能保障7
  • 代理模式和适配器模式区别
  • HarmonyOS 小游戏《对战五子棋》开发第23篇 - 保持棋盘正方形
  • 维度建模实战:电商数仓 6 步构建星型模型,产出 10+ 核心事实/维度表
  • 直流有刷电机驱动方案:TC78H651AFNG与PIC18F85J10实战
  • 02-01-确认环境依赖(全平台发布)
  • 延伸音(Tension)应用指南:属七和弦5种常用Tension音搭配与省略五音原则
  • 【Bug已解决】openclaw network timeout / Connection timed out — OpenClaw 网络超时解决方案
  • 你想不想用一套系统方法,把复杂的医学数据变成清晰结论?
  • QT入门篇
  • ADS131M02与PIC24EP512GU814的高精度ADC系统设计