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

保姆级教程:在Ubuntu 18.04上为ORB-SLAM2添加彩色点云地图(含PCL库避坑指南)

在Ubuntu 18.04上实现ORB-SLAM2彩色点云地图的全流程指南当第一次看到ORB-SLAM2生成的稀疏特征点时我意识到视觉SLAM的潜力远不止于此。直到成功运行彩色点云建图版本那种从二维图像到三维稠密重建的震撼感才真正让我理解了SLAM技术的魅力所在。本文将带你完整走过从环境配置到彩色地图保存的每一步特别针对Ubuntu 18.04和ROS Melodic环境中的典型问题提供解决方案。1. 环境准备与源码配置在开始编译前确保系统环境满足以下基础要求Ubuntu 18.04.6 LTS建议使用官方镜像ROS Melodic完整版包含rviz、tf等组件至少16GB空闲磁盘空间用于存储数据集和编译中间文件关键依赖安装sudo apt-get install -y libeigen3-dev libboost-all-dev libopencv-dev python-catkin-tools对于PCL库的版本管理Ubuntu 18.04默认仓库提供的是1.8版本但ORB-SLAM2_with_pointcloud_map对1.7版本兼容性更好。可通过以下命令安装指定版本sudo apt-get install -y libpcl-dev1.8.1dfsg1-7ubuntu1源码获取建议使用以下仓库cd ~/catkin_ws/src git clone https://github.com/gaoxiang12/ORB_SLAM2_with_pointcloud_map.git2. 基础编译与常见错误修复2.1 预处理步骤进入项目主目录后需要执行几个关键操作清理旧编译文件rm -rf Thirdparty/DBoW2/build Thirdparty/g2o/build Examples/ROS/ORB_SLAM2/build复制词汇表文件cp -r ORB_SLAM2/Vocabulary/ ORB_SLAM2_with_pointcloud_map/2.2 CMake配置调整修改CMakeLists.txt中的编译器选项删除所有-marchnative标记。这个优化选项在某些CPU架构上可能导致兼容性问题。具体需要修改两处位置主目录下的CMakeLists.txtset(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -Wall -O3) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall -O3)Thirdparty/g2o/CMakeLists.txtSET(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} -O3) SET(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE} -O3)2.3 编译执行与验证赋予执行权限并开始编译chmod x build.sh ./build.sh常见编译错误及解决方案错误类型表现特征解决方法PCL库缺失Could not find PCL确认libpcl-dev已安装修改CMake为find_package(PCL REQUIRED)Eigen3版本冲突Eigen3 not found手动指定路径set(EIGEN3_INCLUDE_DIR /usr/include/eigen3)Boost链接错误undefined reference to boost::system在链接选项中添加-lboost_system3. 彩色点云功能实现3.1 代码修改要点要实现彩色点云显示需要在以下文件进行关键修改include/Tracking.h中添加RGB图像成员cv::Mat mImRGB; // 新增行 cv::Mat mImGray; cv::Mat mImDepth;src/Tracking.cc中两处修改// 第一处修改 mImRGB imRGB; // 新增行 mImGray imRGB; // 第二处修改 mpPointCloudMapping-insertKeyFrame(pKF, this-mImRGB, this-mImDepth);3.2 点云保存功能在src/pointcloudmapping.cc中添加保存功能添加头文件#include pcl/io/pcd_io.h在viewer()函数中添加保存命令pcl::io::savePCDFileBinary(slam_result.pcd, *globalMap);编译完成后可使用以下工具验证结果sudo apt-get install pcl-tools pcl_viewer slam_result.pcd4. ROS集成与实战测试4.1 环境变量配置在~/.bashrc末尾添加export ROS_PACKAGE_PATH${ROS_PACKAGE_PATH}:$HOME/catkin_ws/src/ORB_SLAM2_with_pointcloud_map/Examples/ROS刷新配置并验证source ~/.bashrc echo $ROS_PACKAGE_PATH4.2 ROS节点编译执行ROS部分的编译脚本chmod x build_ros.sh ./build_ros.sh典型ROS编译问题处理路径冲突问题rm -rf ~/catkin_ws/src/ORB_SLAM2PCL头文件缺失sudo cp -r /usr/include/pcl-1.8/pcl /usr/local/include/Boost系统库链接 在Examples/ROS/ORB_SLAM2/CMakeLists.txt中添加target_link_libraries(${PROJECT_NAME} boost_system)4.3 数据集测试使用TUM数据集测试时建议从官方下载fr1_desk序列。关联文件格式示例1305031102.175304 rgb/1305031102.175304.png 1305031102.211214 depth/1305031102.211214.png运行命令结构./rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml [数据集路径] [关联文件]5. 高级调试与性能优化5.1 点云参数调整在pointcloudmapping.cc中可以修改以下关键参数参数默认值推荐范围作用voxelSize0.010.005-0.05点云降采样体素大小maxPointDistance4.03.0-6.0最大有效点距离minPointDistance0.10.05-0.3最小有效点距离5.2 实时可视化技巧使用pcl_viewer时添加以下参数可获得更好效果pcl_viewer result.pcd -bc 255,255,255 -ps 2常用快捷键R重置视角J截图保存鼠标滚轮调整点大小5.3 内存管理建议长时间运行时可能出现内存不足问题可通过以下方式缓解定期保存子地图if(globalMap-size() 1000000){ pcl::io::savePCDFileBinary(submap_std::to_string(frameCount).pcd, *globalMap); globalMap-clear(); }启用内存监控watch -n 1 free -m

相关文章:

保姆级教程:在Ubuntu 18.04上为ORB-SLAM2添加彩色点云地图(含PCL库避坑指南)

在Ubuntu 18.04上实现ORB-SLAM2彩色点云地图的全流程指南 当第一次看到ORB-SLAM2生成的稀疏特征点时,我意识到视觉SLAM的潜力远不止于此。直到成功运行彩色点云建图版本,那种从二维图像到三维稠密重建的震撼感,才真正让我理解了SLAM技术的魅力…...

HTTrack跨平台部署实战:从Windows配置到Linux编译的完整指南

HTTrack跨平台部署实战:从Windows配置到Linux编译的完整指南 【免费下载链接】httrack HTTrack Website Copier, copy websites to your computer (Official repository) 项目地址: https://gitcode.com/gh_mirrors/ht/httrack HTTrack Website Copier 是一款…...

如何快速掌握Figma中文界面:3分钟完成安装的完整指南

如何快速掌握Figma中文界面:3分钟完成安装的完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾经面对全英文的Figma界面感到无从下手?作为设计师&…...

IIR滤波器设计实战:从Butterworth到参数调优的完整指南

IIR滤波器设计实战:从Butterworth到参数调优的完整指南 在数字信号处理领域,IIR(无限冲激响应)滤波器因其高效的频率选择特性而广受欢迎。与FIR滤波器相比,IIR滤波器能够在相同性能要求下使用更少的计算资源&#xff…...

5 款 AI 写论文哪个好?2026 实测:真文献 + 实图表,虎贲等考 AI 成毕业论文首选

毕业季选 AI 写论文工具,最纠结的莫过于 “5 款 AI 写论文哪个好”—— 通用 AI 文献造假、轻量工具功能残缺、专项平台适配不足,能同时满足真实文献、可溯源数据、学术规范图表、全流程写作的工具少之又少。经过对 5 款主流 AI 论文工具的深度实测&…...

国产ZYNQ四核ARM实战:手把手教你用SGI中断实现CPU0与CPU1的核间通信

国产ZYNQ四核ARM实战:SGI中断实现CPU核间通信全解析 在嵌入式系统开发中,多核处理器间的协同工作一直是提升性能的关键。国产ZYNQ平台搭载的四核ARM Cortex-A9处理器,为高性能嵌入式应用提供了强大支持。本文将深入探讨如何利用SGI&#xff0…...

JAVA旅游路线规划小程序开发源码uniapp代码片段

开发环境准备确保已安装HBuilderX(uniapp官方IDE)或VSCode(需安装uniapp插件)。Node.js版本建议12,Java开发环境需配置JDK8和Maven。项目结构设计src/ ├── common/ // 公共资源 │ ├── css/ …...

ITSM系统中的ITIL流程为什么越做越慢?IT服务台正在被“过度设计”拖累

一、流程越标准,为什么效率却越低?在企业IT管理升级的过程中,引入ITIL流程几乎是一种“共识”。作为一套成熟的方法论,它为IT服务管理提供了清晰的框架:事件管理、问题管理、变更管理、服务请求管理等,每一…...

如何限制PDF的打印、复制编辑等操作?限制PDF打印编辑复制的三种方法

当你存在个别PDF不想被被人打印,复制或编辑时,可以对PDF相关权限进行限制。 本篇文章介绍三种方法,来实现PDF权限的限制和PDF文件的加密,覆盖了WPS、MAC电脑、在线工具。可根据自身情况选择工具。 在介绍3个方法之前,…...

AI编程革命:Codex自动写脚本实战指南

告别重复造轮子:Codex写脚本的技术文章大纲理解Codex的基本能力Codex是基于GPT-3的AI模型,能够将自然语言转换为代码。 支持多种编程语言,包括Python、JavaScript、Go等。 适用于自动化脚本、数据处理、API调用等场景。识别适合自动化的重复任…...

论文“焕新术”:书匠策AI,降重降AIGC的秘密武器大揭秘!

在学术的浩瀚宇宙中,每一篇论文都是研究者智慧的结晶,它们如同星辰般璀璨,照亮着知识的殿堂。然而,当这些星辰在查重的天空中闪烁时,重复率过高却成了不少研究者心中的“暗礁”。别怕,今天我要带你走进一个…...

subr_autoconf.c 深度解析:BSD 内核自动配置核心模块

subr_autoconf.c 深度解析:BSD 内核自动配置核心模块 这是 OpenBSD/NetBSD 内核的自动配置(Autoconfiguration)核心实现文件,是内核硬件枚举、设备驱动匹配、设备树构建、热插拔/卸载的中枢代码。我会从核心作用、工作原理、语法规范、上下游依赖、关键数据结构五个维度完…...

节点内存超限原因解析

你提供的截图显示的是一个 Kubernetes 节点(Worker 节点)的资源监控界面,其中:CPU 使用量:请求/限制/使用量 36.67% / 52.54% / 1.62%内存使用量:请求/限制/使用量 41.87% / 60.75% / 69.95%️ 注意&…...

像素时装锻造坊应用指南:快速生成电商海报、社交配图的像素艺术时装

像素时装锻造坊应用指南:快速生成电商海报、社交配图的像素艺术时装 1. 像素艺术的商业价值与创作痛点 在电商和社交媒体时代,视觉内容的生产效率直接决定营销效果。传统设计流程中,制作一张商品海报或社交配图需要经历:构思→草…...

DCDC 电源拓扑详解,硬件电源基础干货

做硬件设计,电源是绕不开的话题。不管你画什么板子,总得给芯片供电。很多人会用DCDC芯片,照着参考电路画,能跑就行。但你真的理解背后的原理吗?为什么有的用Buck,有的用Boost?电感怎么选&#x…...

**发散创新:基于Flink实时流处理的电商订单异常检测系统设计与实践**在现代电商场景中

发散创新:基于Flink实时流处理的电商订单异常检测系统设计与实践 在现代电商场景中,订单数据的实时性与准确性直接决定了用户体验和业务决策效率。传统的批处理方式已无法满足“秒级响应”的需求,而Apache Flink作为新一代流式计算引擎&#…...

光伏逆变器资料 8-10KW 5-8KW古瑞瓦特光伏逆变器电 路图、光伏逆变器资料

光伏逆变器资料 8-10KW 5-8KW古瑞瓦特光伏逆变器电 路图、光伏逆变器资料 古瑞瓦特的5-10KW资料逆变器带程序光伏逆变器资料 8-10KW 5-8KW古瑞瓦特光伏逆变器电 路图、光伏逆变器资料 古瑞瓦特的5-10KW资料逆变器带程序 古瑞瓦特逆变器资料,古瑞瓦特光并…...

Cadence AnalogLib vprbs参数详解:从Seed到Taps,手把手教你配置PRBS7序列

Cadence AnalogLib vprbs参数详解:从Seed到Taps的工程实践指南 在混合信号电路验证中,伪随机二进制序列(PRBS)的准确建模常常成为验证链路的瓶颈。作为Cadence AnalogLib库中的隐藏瑰宝,vprbs模块虽然界面简洁&#x…...

3分钟搞定:Microsoft Word APA第7版参考文献格式终极配置指南

3分钟搞定:Microsoft Word APA第7版参考文献格式终极配置指南 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition 你是否曾被学术论文的参考文献…...

cmu15445 2025fall lec13 Query Execution Pt.1

lec13 Query Execution Pt1目前已经基本实现了基础模块(排序,aggregation,join),接下来就是如何把这些东西整合到一起来执行查询intro从query plan 里细化了 1 pipeline:一系列算子的序列,元组在他们之间连续流动,不需要中间存储 …...

RANSAC(随机采样一致性算法)

🧮 数学原理与公式推导 1. 迭代次数计算公式 迭代次数 N N N 的确定基于概率理论: N = log ⁡ ( 1 − p ) log ⁡ ( 1 − ( 1 − e ) s ) N = \frac{\log(1-p)}{\log(1-(1-e)^s)} N...

哔哩下载姬downkyi:如何用5分钟解决B站视频下载的三大痛点

哔哩下载姬downkyi:如何用5分钟解决B站视频下载的三大痛点 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&a…...

一键转换:Save Image as Type终极指南 - 3秒解决浏览器图片格式难题

一键转换:Save Image as Type终极指南 - 3秒解决浏览器图片格式难题 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirr…...

告别虚拟机!用Termux在安卓手机上跑Ubuntu的保姆级教程(含自动登录配置)

告别虚拟机!用Termux在安卓手机上跑Ubuntu的保姆级教程(含自动登录配置) 每次出差都要背着沉重的笔记本,或是临时需要调试代码却发现手边没有电脑?现在,你的安卓手机就能变身便携Linux工作站。想象一下&…...

终极解决方案:如何在MusicBee中完美获取网易云音乐同步歌词

终极解决方案:如何在MusicBee中完美获取网易云音乐同步歌词 【免费下载链接】MusicBee-NeteaseLyrics A plugin to retrieve lyrics from Netease Cloud Music for MusicBee. 项目地址: https://gitcode.com/gh_mirrors/mu/MusicBee-NeteaseLyrics 还在为Mus…...

番茄小说下载器:5分钟打造个人离线图书馆的终极指南

番茄小说下载器:5分钟打造个人离线图书馆的终极指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾在通勤地铁上、旅行途中或网络信号不佳的地方&#xf…...

Windows Cleaner完整教程:5分钟学会磁盘清理技巧,彻底解决C盘爆满问题

Windows Cleaner完整教程:5分钟学会磁盘清理技巧,彻底解决C盘爆满问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 还在为Windows系统C…...

3分钟搞定微信多设备登录:免Root实现安卓平板模式

3分钟搞定微信多设备登录:免Root实现安卓平板模式 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 还在为微信只能登录一个设备而烦恼吗?想象一下这样的场景:你的手机登录了…...

Qt虚拟键盘开发避坑指南:如何用QKeyEvent模拟真实按键,避免焦点丢失的坑?

Qt虚拟键盘开发实战:精准事件传递与焦点控制技术解析 在嵌入式设备和触屏应用中,虚拟键盘的实现质量直接影响用户体验。许多开发者会遇到这样的困境:精心设计的键盘界面点击后,输入框的光标却神秘消失,或者按键事件无法…...

1个终极网盘直链解析解决方案:如何摆脱下载限速实现全速下载?

1个终极网盘直链解析解决方案:如何摆脱下载限速实现全速下载? 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中…...