背景

最近写了一个包,使用ndt算法拼接点云,构建三维壁面环境的点云地图。

设计一个lidar类,表征激光雷达。可以获取点云数据并存储到容器 std::vector<PointCloudPtr> 。

设计一个RegistrationWithNDTandGICP类,表征基于ndt_icp的slam方案。该类中有一个lidar类的成员,该成员可以获取点云数据,然后计算激光里程计,拼接地图。

创建一个lidar的对象,lidar;创建一个RegistrationWithNDTandGICP类的对象,ndt;

问题描述

lidar获取点云后,以指针(shared_ptr)的形式存放在容器中,之后ndt从容器中逐个取出点云指针,计算里程计。

在lidar中,每次把点云指针存入容器之前,将点云的部分点坐标数据打印出来;

在ndt中,每次把点云指针从容器中取出后,将点云的部分点坐标数据打印出来;

对比发现,点的坐标数据发生了变化!

进一步检查。

在lidar中,每次把点云指针存入容器之前,输出点云的大小和指针地址;

在lidar中,每次把点云指针从容器中取出后,输出点云的大小和指针地址;

对比发现,上述两个变量的值完全一样!

解决方案

把容器改为 std::vector<PointCloudType> 类型,该错误立即消失。

具体错误原因不详!期待高手或前辈指点!

最新文章

  1. TypeScript中的枚举类型
  2. 【转】Linux中xargs的用法
  3. Cocos2d-x 开发手记
  4. hadoop2.0安装和配置
  5. oracle 数据库关闭的的几种方式总结
  6. HttpServletRequest 报错 myeclipese支持tomcat
  7. 改善C#公共程序类库质量的10种方法和工具
  8. Kafka Streams 剖析
  9. 【smart-transform】取自 Atom 的 babeljs/coffeescript/typescript 智能转 es5 库
  10. RTC实时时间系统学习笔记(一)---------------UART串口
  11. 【渗透攻防】深入了解Windows
  12. CPU监控 解题报告
  13. less/sass 基础base文件
  14. 经典排序js实现
  15. linux学习笔记-文件相关知识
  16. IdentityServer4目录
  17. 新加坡金融科技节 | 蚂蚁金服CTO程立:面向全球开放,与合作伙伴共赢
  18. 2016NOI冬令营day3
  19. Percona XtraDB Cluster 5.7
  20. 在多节点上运行分布式Intel Caffe

热门文章

  1. C语言I博客作业12
  2. [转帖]预警 | Linux 爆“SACK Panic”远程DoS漏洞,大量主机受影响
  3. noip2015day2-运输计划
  4. Luogu P3953 [NOIP2017]逛公园
  5. CF1142B Lynyrd Skynyrd
  6. mycat schema server rule
  7. check cve
  8. javascript 与node的 event-loop
  9. 浅谈XXE
  10. 3、sql 表的连接