位置: IT常识 - 正文

高翔ORB-SLAM2稠密建图编译(添加实时彩色点云地图+保存点云地图)

编辑:rootadmin
高翔ORB-SLAM2稠密建图编译(添加实时彩色点云地图+保存点云地图) 目录前言系统版本一、准备工作下载源码二、编译 ./build.sh1.删除一些build文件夹2.创建 Vocabulary 文件夹3.在CMakeLists.txt中取消编译器的一些设置4.编译5.运行TUM数据集6.实时查看彩色点云地图1)2)7.保存彩色点云地图三、编译 ./build_ros.sh1.将该工程添加至 **ROS_PACKAGE_PATH**2.编译1.错误12.错误23.错误3前言

推荐整理分享高翔ORB-SLAM2稠密建图编译(添加实时彩色点云地图+保存点云地图),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本文写于2022年5月18日。

系统版本

Ubuntu18.04 + ROS melodic

一、准备工作

ORBSLAM2_with_pointcloud_map 是基于 ORB_SLAM2 改动的, ORB_SLAM2 编译前一些库的安装以及编译时的报错参考此篇博客

下载源码

ORBSLAM2_with_pointcloud_map源码地址 将源码下载到 ~/catkin_ws/src 目录下面 如果没有安装 Ros Melodic ,参考Ubuntu18.04安装Ros Melodic 以及测试rviz 如果安装了 Ros Melodic ,没有创建ROS空间,参考此篇博客

二、编译 ./build.sh

使用 "ORB_SLAM2_modified/"目录下的代码,而不是压缩文件

1.删除一些build文件夹

删除ORB_SLAM2_modified/Thirdparty/DBoW2/build、ORB_SLAM2_modified/Thirdparty/g2o/build以及ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/build这3个 build 文件夹

2.创建 Vocabulary 文件夹

将 ORB_SLAM2 下的 Vocabulary 子文件夹复制粘贴到 ORB_SLAM2_modified 文件夹下

3.在CMakeLists.txt中取消编译器的一些设置

在 CMakeLists.txt 中删除 -march=native

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3 -march=native ")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3 -march=native")

在 Thirdparty/g2o/CMakeLists.txt 中删除 -march=native

# Compiler specific options for gccSET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -march=native") 4.编译

进入 ORB_SLAM2_modified 文件夹

cd ORB_SLAM2_modified

给 build.sh 文件权限

chmod +x build.sh

编译 build.sh 文件

./build.sh5.运行TUM数据集

使用如下命令./rgbd_tum path_to_vocabulary path_to_settings path_to_sequence path_to_association 我的命令如下

./bin/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/d/文档/TUM数据集/rgbd_dataset_freiburg1_desk Examples/RGB-D/associations/fr1_desk.txt

运行结果是黑白的点云图且无法保存点云地图,接下来修改一些代码。

6.实时查看彩色点云地图

参考链接

1)

在ORB_SLAM2_modified/include/Tracking.h添加

// Current Frame Frame mCurrentFrame; cv::Mat mImRGB; //添加这行 cv::Mat mImGray; cv::Mat mImDepth;2)高翔ORB-SLAM2稠密建图编译(添加实时彩色点云地图+保存点云地图)

在ORB_SLAM2_modified/src/Tracking.cc修改2处 第一处

cv::Mat Tracking::GrabImageRGBD(const cv::Mat &imRGB,const cv::Mat &imD, const double &timestamp){ mImRGB = imRGB;//添加这行 mImGray = imRGB; mImDepth = imD;

第二处

// insert Key Frame into point cloud viewer //mpPointCloudMapping->insertKeyFrame( pKF, this->mImGray, this->mImDepth ); mpPointCloudMapping->insertKeyFrame( pKF, this->mImRGB, this->mImDepth ); //修改地方7.保存彩色点云地图

参考此篇博客中间部分 修改ORB_SLAM2_modified/src/pointcloudmapping.cc,在其中调用 PCL 库的pcl::io::savePCDFileBinary函数就可以保存点云地图了 加入头文件

#include <pcl/io/pcd_io.h>

在 void PointCloudMapping::viewer() 函数中( 123 行附近)加入保存地图的命令,最后样式如下:

...for ( size_t i=lastKeyframeSize; i<N ; i++ ){ PointCloud::Ptr p = generatePointCloud( keyframes[i], colorImgs[i], depthImgs[i] ); *globalMap += *p;}pcl::io::savePCDFileBinary("vslam.pcd", *globalMap); // 只需要加入这一句...

修改之后重新编译程序 并且安装相应的工具,就可以查看生成的文件

#安装sudo apt-get install pcl-tools#查看pcl_viewer vslam.pcd

三、编译 ./build_ros.sh1.将该工程添加至 ROS_PACKAGE_PATH

打开终端输入

sudo gedit ~/.bashrc

在最后一行插入

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2_modified/Examples/ROS

注: ~/catkin_orb/src/ 为我 ORB-SLAM2_RGBD_DENSE_MAP-master 的路径,需要改成自己的文件路径

刷新 bash

source ~/.bashrc

检验 ROS path 是否被识别

echo $ROS_PACKAGE_PATH

显示了刚刚加入的路径,说明ROS路径配置成功了

2.编译

进入 ORB_SLAM2_modified 文件夹

cd ORB_SLAM2_modified

给 build_ros.sh 文件权限

chmod +x build_ros.sh

编译 build_ros.sh 文件

./build_ros.sh1.错误1

这里是ROS_PACKAGE_PATH的问题,在运行时,ROS 会优先查找最前端的工作空间中是否存在指定的功能包,如果不存在, 就顺序向后查找其他工作空间,直到最后一个工作空间为止(参考链接)。由于我已经添加了路径,但是在catkin_ws/src/ORB_SLAM2/Examples/ROS路径下先找到了指定文件,与终端进入的路径不一样导致了错误(我猜的)。 解决办法:将先搜索到的文件夹删掉,当此工程编译好了再还原。

2.错误2

找不到PCL头文件,参考链接

解决办法:将整个PCL相关头文件复制到该工程目录下,使用sudo cp -r命令 如果PCL库不是1.7版本的,修改 CMakeLists.txt 文件

find_package(Eigen3 3.1.0 REQUIRED)find_package(Pangolin REQUIRED)# adding for point cloud viewer and mapper#find_package( PCL 1.7 REQUIRED )find_package( PCL REQUIRED )3.错误3

参考链接 在ORB_SLAM2_modified/Examples/ROS/ORB_SLAM2/CMakeLists.txt文件中添加

-lboost_system

本文链接地址:https://www.jiuchutong.com/zhishi/288877.html 转载请保留说明!

上一篇:【今日七夕】 (© Martin Hale/Minden Pictures)(今夕七夕)

下一篇:汉密尔顿山顶的利克天文台,美国加利福尼亚州 (© Jeffrey Lewis/Tandem Stills + Motion)(汉密尔顿岛在哪里)

  • 现在苹果手机是什么系统(现在苹果手机是什么版本)

    现在苹果手机是什么系统(现在苹果手机是什么版本)

  • 微信备注信息过长看不到怎么办(微信备注过的人怎么找)

    微信备注信息过长看不到怎么办(微信备注过的人怎么找)

  • 618淘宝红包退货退吗(618淘宝红包退货怎么退)

    618淘宝红包退货退吗(618淘宝红包退货怎么退)

  • 电脑文件怎么重命名(电脑文件怎么重命名后缀)

    电脑文件怎么重命名(电脑文件怎么重命名后缀)

  • 抖音怎么设置可以让别人保存(抖音怎么设置可以微信支付)

    抖音怎么设置可以让别人保存(抖音怎么设置可以微信支付)

  • iphone11用18w快充伤电池吗(iphone11十八瓦快充)

    iphone11用18w快充伤电池吗(iphone11十八瓦快充)

  • ipad用贴膜吗(ipad有必要贴膜么经常用笔)

    ipad用贴膜吗(ipad有必要贴膜么经常用笔)

  • h开头的手机牌子有哪些(h开头的手机是什么手机)

    h开头的手机牌子有哪些(h开头的手机是什么手机)

  • 微信视频号好友看得到吗(微信视频号好友点赞怎么关闭)

    微信视频号好友看得到吗(微信视频号好友点赞怎么关闭)

  • 网络跳ping怎么办(wifi跳ping)

    网络跳ping怎么办(wifi跳ping)

  • 苹果设置隐私相机选项空白(苹果设置隐私相机)

    苹果设置隐私相机选项空白(苹果设置隐私相机)

  • qq来信息为什么不弹窗(qq来信息为什么没有声音是怎么回事)

    qq来信息为什么不弹窗(qq来信息为什么没有声音是怎么回事)

  • v1818a是什么手机型号(vivov1824a手机价格)

    v1818a是什么手机型号(vivov1824a手机价格)

  • 支付宝店铺会员卡怎么关闭(支付宝店铺会员卡怎么开通)

    支付宝店铺会员卡怎么关闭(支付宝店铺会员卡怎么开通)

  • 快手里面的直播可以看回放吗(快手里面的直播记录怎么删除)

    快手里面的直播可以看回放吗(快手里面的直播记录怎么删除)

  • 华为手机没有返回键怎么调出来(华为手机没有返回键在哪里设置)

    华为手机没有返回键怎么调出来(华为手机没有返回键在哪里设置)

  • 华为areal00是什么型号(华为areal10是什么型号手机)

    华为areal00是什么型号(华为areal10是什么型号手机)

  • mate30pro4g5g区别(mate30pro4g和5g买哪个)

    mate30pro4g5g区别(mate30pro4g和5g买哪个)

  • 苹果xsmax什么基带(苹果xsmax是什么基带版本)

    苹果xsmax什么基带(苹果xsmax是什么基带版本)

  • 抖音为什么能超过15秒(抖音为什么能超过抖音)

    抖音为什么能超过15秒(抖音为什么能超过抖音)

  • 怎么拉讨论组(怎么啦讨论组)

    怎么拉讨论组(怎么啦讨论组)

  • 怎么查手机号ip地址(手机怎么换ip地址)

    怎么查手机号ip地址(手机怎么换ip地址)

  • 查找失败424怎么解决(查找失败424什么意思)

    查找失败424怎么解决(查找失败424什么意思)

  • bios设置电脑定时自动开机/关机的设置方法图文教程(bios设置定时重启)

    bios设置电脑定时自动开机/关机的设置方法图文教程(bios设置定时重启)

  • 在Linux服务器上安装配置socks5代理的教程(linux服务器常用操作命令)

    在Linux服务器上安装配置socks5代理的教程(linux服务器常用操作命令)

  • phpcms如何更换模板(phpcms怎么用)

    phpcms如何更换模板(phpcms怎么用)

  • php变量有哪些特殊类型(php变量有哪些特殊值)

    php变量有哪些特殊类型(php变量有哪些特殊值)

  • 一般纳税人的现金收入
  • 浙江注册税务师考试时间
  • 电子税务局实名核验失败怎么回事啊
  • 去年滞纳金没入营业外今天怎么账务处理
  • 小规模纳税人缴纳上月应交增值税
  • 劳务报酬现金 过账
  • 出租的土地使用权是无形资产吗
  • 嵌入式软件产品的批准放行
  • 高危职业人身意外险
  • 营改增租金收入税率
  • 隐名股东违法吗
  • 长期股权变更
  • 周年庆典布置现场
  • 挂靠的项目税务局怎么交地税?
  • 股权交易要不要缴纳印花税?
  • 个人所得税法规定可减征个税的情形有
  • 印花税如何进行税种认定
  • 开票系统问题
  • 合并企业的增值税税率
  • 分期付款买车的人多吗
  • 撤销申报增值税流程
  • 行政单位结转结余形成的原因
  • 建筑工程劳务费占比例
  • win7防火墙设置不了
  • 固态硬盘如何接入电脑
  • 汇算清缴资产减值损失怎么填
  • 上个月做无票收入这个月开票,怎么做分录
  • 苹果手机最贵的软件是哪个
  • element组件的二次封装注册
  • linux的网络编程
  • php 图片水印
  • 华为od测试岗机试需要怎么准备
  • vue中解决跨域问题
  • fio命令详解
  • 租赁增值税发票税率
  • 企业一直零申报不经营
  • php跳转到指定网页代码
  • 期间费用指哪些费用
  • 视同销售是指什么
  • 售后回租的实际利率
  • 微店企业店铺和个人店铺的区别
  • mysql数据库函数
  • 季度所得税申报表营业收入怎么填
  • 个体工商户核定征收超额怎么缴税
  • 开发票给别人该如何收取税点?
  • 捐赠纳税调整额怎么算
  • 个体户记账报税
  • 员工餐费标准怎么算
  • 年金终值计算公式是
  • 拆迁房视同销售成本可以抵减吗?
  • 会计科目中其期末余额应列入资产负债表存货项目的有
  • 涉及销售费用如何计算
  • 公交充值卡发票能报销吗
  • 未开票州
  • 企业的支出包括( )支出
  • 企业不加入工会的原因
  • 发票专用章刻制
  • 备份还原工具怎么用
  • sql %和_
  • Windows Server 2008下的网络排错
  • freebsd操作命令
  • window系统怎么复制粘贴
  • xp系统本地连接启用不了
  • win32api.exe - win32api是什么进程
  • ubuntu 18.04怎么用
  • hp是什么软件缩写
  • pascl32.exe - pascl32是什么进程 有什么用
  • 基于jQuery中ajax的相关方法汇总(必看篇)
  • easyui validatebox验证
  • FIF互动帮助手册系列-HTML手册 flash版
  • IE6,IE7和firefox对DIV的支持区别
  • 教你学python
  • js date用法
  • xcopy /s /e
  • JavaScript function函数种类详解
  • python中scipy.stats
  • 陕西地方水利建设基金减免政策2023
  • 国家税务总局网站登录入口官网
  • 免除滞纳金的条件
  • 浪潮报销软件安装
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设