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

ubuntu20.04在noetic下编译orbslam2

ubuntu20.04在noetic下编译orbslam2

参考链接1:https://blog.csdn.net/qq_58869016/article/details/128660588
参考链接2:https://blog.csdn.net/dong123456789e/article/details/129693837
在noetic下的安装环境
1.库安装

sudo apt-get update
sudo apt-get install  cmake gcc g++ git
sudo apt-get install libblas-dev liblapack-dev

2.安装Pangolin0.5

sudo apt-get install libxkbcommon-dev
sudo apt-get install wayland-protocols
sudo apt install libglew-dev
git clone https://github.com/cheukwaylee/Pangolin-0.5
cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install

3.源码编译安装Eigen3.3.9:
http://eigen.tuxfamily.org/index.php?title=Main_Page

mkdir build
cd build
cmake ..
make
sudo make install

4.ROS-Noetic自带Opencv4.2,因此无需另外安装Opencv。

在编译之前需要修改的地方

第一处修改
将ORB_SLAM2, Example/ROS/ORB_SLAM2 以及Thirdparty/DBoW2下的CMakelist.txt中修改opencv版本

#原find_package(OpenCV 3.0 QUIET)
find_package(OpenCV 4.2 QUIET)
if(NOT OpenCV_FOUND)find_package(OpenCV 2.4.3 QUIET)if(NOT OpenCV_FOUND)message(FATAL_ERROR "OpenCV > 2.4.3 not found.")endif()
endif()

第二处修改
ORBextractor.h中头文件修改


#include <vector>
#include <list>
// #include <opencv/cv.h> 这一行注释掉,添加以下两行
#include<opencv2/imgproc/imgproc_c.h>
#include <opencv2/highgui/highgui_c.h>

第三处修改
在Example/Monocular ,Stereo,RGB-D下面的.cc文件中

 # 参考链接:https://blog.csdn.net/m0_56140527/article/details/132496600#将下行中CV_LOAD_IMAGE_UNCHANGED替换为cv::IMREAD_UNCHANGED# im = cv::imread(vstrImageFilenames[ni],CV_LOAD_IMAGE_UNCHANGED);im = cv::imread(vstrImageFilenames[ni],cv::IMREAD_UNCHANGED);#这是因为opencv4.x以上,有些宏,API名字改了,需要改为新的#CV_LOAD_IMAGE_UNCHANGED 改为 cv::IMREAD_UNCHANGED#CV_LOAD_IMAGE_GRAYSCALE  改为 cv::IMREAD_GRAYSCALE#CV_LOAD_IMAGE_COLOR    改为 cv::IMREAD_COLOR#CV_LOAD_IMAGE_ANYDEPTH   改为 cv::IMREAD_ANYDEPTH#CV_MINMAX 改成 NORM_MINMAX

调用安卓相机实时运行单目模式下的slam

1、下载Android_Camera-IMU,将其中的Camera-Imu.apk文件发送至手机端进行安装。

git clone https://github.com/hitcm/Android_Camera-IMU.git

2.安装工具包

sudo apt-get install ros-noetic-imu-tools  # 修改对应自己的 ROS 版本

3.查看自己电脑的ip 地址:

ip address

获得地址后,在手机端打开Camera-Imu.apk,将ip地址输入,点击Connect

4.调用手机相机

第一个终端:
roscore
第二个终端cd Android_Camera-IMUroslaunch android_cam-imu.launch

在rviz中设置:
在这里插入图片描述
在By topic中添加Image显示图像,添加Imu显示imu(注意要将Fixed Frame的map修改为//imu,之后会显示/imu)

在运行ORB_SLAM2之前对相机进行标定
1.
安装相机校准功能包:

sudo apt-get install ros-noetic-camera-calibrationsudo apt-get install libcanberra-gtk-module
终端1运行:
roscore
终端2运行:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/camera/image_raw camera:=/camera --no-service-check

标定后,点击
CALIBRATE
SAVE
查看标定以后的文件内容如右图所示。 <camera_matrix type_id=“opencv-matrix”> 是相机内参矩阵,顺序为 fx, 0, cx; 0, fy, cy; 0, 0, 1。 <distortion_coefficients type_id=“opencv-matrix”> 是畸变参数,其顺序为 k1, k2, p1, p2, k3。

然后在/catkin_ws/src/ORB_SLAM2/Examples/Monocular/目录下中新建一个配置文件 AndroidPhone.yaml

运行

终端1:
roscore
终端2:
cd Android_Camera-IMU
roslaunch android_cam-imu.launch终端3:rosrun ORB_SLAM2 Mono /home/xxx/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/xxx/catkin_ws/src/ORB_SLAM2/Examples/Monocular/AndroidPhone.yaml

相关文章:

ubuntu20.04在noetic下编译orbslam2

ubuntu20.04在noetic下编译orbslam2 参考链接1&#xff1a;https://blog.csdn.net/qq_58869016/article/details/128660588 参考链接2&#xff1a;https://blog.csdn.net/dong123456789e/article/details/129693837 在noetic下的安装环境 1.库安装 sudo apt-get update sudo …...

64. 最小路径和

最小路径和 描述 : 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 题目 : LeetCode 64.最小路径和 64. 最小路径和 解析 : class So…...

惰性加载函数(js的问题)

在web开发中&#xff0c;因为浏览器之间的实现差异&#xff0c;一些嗅探工作总是不可避免。 var addEvent function( elem, type, handler ){if ( window.addEventListener ){return elem.addEventListener( type, handler, false );}if ( window.attachEvent ){return elem.…...

jmeter,读取CSV文件数据的循环控制

1、构造csv数据 保存文件时需要注意文件的编码格式 id,name,limit,status,address,start_time 100,小米100,1000,1,某某会展中心101,2023/8/20 14:20 101,小米101,1001,1,某某会展中心102,2023/8/21 14:20 2、在线程组下添加【CSV数据文件设置】元件 3、CSV文件数据的循环控…...

移植LVGL到像素屏,从此玩转像素屏0门槛

硬件方面 先上渲染图 实物图 配置 主控&#xff1a;esp32 micro32 plus主频&#xff1a;240MhzFlash&#xff1a;8MPSRAM&#xff1a;2M 软件方面 众所周知&#xff0c;LVGL是一个十分优秀的图形框架&#xff0c;小到几百kb的单片机&#xff0c;大到Linux都可以运行。既然它…...

stateflow 之图函数、simulink函数和matlab函数使用及案例分析

目录 前言 1. 图函数graph function 2.simulink function 3.matlab function 4.调用stateflow中的几种函数方式 前言 对于stateflow实际上可以做simulink和matlab的所有任务&#xff0c;可以有matlab的m语言&#xff0c;也可以有simulink的模块&#xff0c;关于几种函数在…...

C# 加载本地文件设置应用程序图标

static class Program{[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Form mainForm new Form1();mainForm.Show();//IntPtr hProcess Process.GetCurrentProcess().MainWindowHandle;// 设置应用程…...

苹果计划将全球1/4的IPhone产能转移至印度

KlipC报道&#xff1a;据相关人士报道&#xff0c;苹果希望在未来2到3年内每年在印度生产超过5000万部iphone&#xff0c;要是该计划得以实现&#xff0c;印度将占领全球iPhone产量的四分之一。 KlipC的分析师Alex Su表示&#xff1a;“此次iPhone15推出是苹果印度制造计划的一…...

el-date-picker 选择一个或多个日期

el-date-picker可选择多个日期 type“dates” 加个s即可 <div><span>el-date-picker选择多个日期</span><el-date-pickertype"dates"v-model"dateList"placeholder"选择一个或多个日期"></el-date-picker></di…...

5个创建在线帮助文档的好方法!

在线帮助文档是企业为用户提供支持服务的重要工具&#xff0c;它能够帮助用户更好地了解和使用产品&#xff0c;提高用户体验。然而&#xff0c;创建一份优秀的在线帮助文档需要掌握一定的技巧和方法。接下来就介绍一下创建在线帮助文档的5个好方法&#xff0c;帮助企业更好地为…...

听GPT 讲Rust源代码--src/tools(14)

File: rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-analyzer/crates/cfg/src/lib.rs这个文件是Rust语言分析器&#xff08;Rust Analyzer&#xff09;的一部分&#xff0c;用于处理和管理条件编译指令&#xff08;Cond…...

arcgis api for js 中使用API的代理页面(跨越配置)

以下仅作为自己阅读官网api的对reques的理解做的备忘笔记。一知半解&#xff0c;仅供参考。 1、获取或者构建第三方代理 官网解释&#xff1a;代理在其自己的 Web 服务器上安装并运行&#xff0c;而不是在 Esri 服务器或安装了 ArcGIS Enterprise 的计算机上安装和运行&#…...

Unity_FairyGUI发布导入Unity编辑器资源报错

Unity_FairyGUI发布导入Unity编辑器资源报错 报错&#xff1a; FairyGUI: settings for Assets/UI/XMUI/XMSubway_atlas0.png is wrong! Correct values are: (Generate Mip Mapsunchecked) UnityEngine.Debug:LogWarning (object) FairyGUI.UIPackage:LoadAtlas (FairyGUI.P…...

1.5【应用开发】缓冲区(二)

二,附加缓冲区 你可以通过分别调用以下函数来附加一个缓冲区(screen_buffer_t类型),以将其与像素图、流或窗口相关联: screen_attach_pixmap_buffer() //用于附加像素图缓冲区 screen_attach_stream_buffers()//用于附加流缓冲区 screen_attach_window_buffers()屏幕附加…...

RTMP流设置超时时间失败

使用FFmpeg(版本是5.0.3&#xff09;将rtmp流作为输入&#xff0c;设置超时时间&#xff08;使用-timeout参数&#xff09;&#xff0c;结果报错&#xff1a;Cannot open Connection tcp://XXX:1935?listen&listen_timeout 通过./ffmpeg -help full 命令查看FFmpeg帮助&am…...

如何一步步让MySQL支撑亿级流量

1 主从读写分离 大部分互联网业务都是读多写少&#xff0c;因此优先考虑DB如何支撑更高查询数&#xff0c;首先就需要区分读、写流量&#xff0c;这才方便针对读流量单独扩展&#xff0c;即主从读写分离。 若前端流量突增导致从库负载过高&#xff0c;DBA会优先做个从库扩容上去…...

MFC CLXHHandleEngine动态库-自定义设置对话框使用

实现的效果如下所示&#xff1a; void CSampleDlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 CSgxMemDialog dlg(180, 100); dlg.SetEnable(true); dlg.SetWindowTitle(_T("自定义对话框")); dlg.AddStatic(1000, //控件资源…...

Python生成器(Generator)(继续更新...)

学习网页&#xff1a; Welcome to Python.orghttps://www.python.org/https://www.python.org/ Python生成器 生成器&#xff08;Generator&#xff09;是 Python 的一种特殊类型的迭代器。生成器允许你创建自己的数据流&#xff0c;每次从数据流中获取一个元素&#xff0c;…...

Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…...

快速学习C++中的模板

模板是一个让C支持范型编程的重要功能&#xff0c;它本质上是一个万能变量适配器&#xff1b;vector,pair等都是使用模板实现的 模板是C的一个强大特性&#xff0c;它允许您编写通用的代码来处理不同的数据类型。您可以有函数模板和类模板。 函数模板: 函数模板允许您创建一…...

Java POI读取大文件慢如何优化

用java poi处理大型excel文件时&#xff0c;往往会遇到阅读速度慢的问题&#xff0c;严重影响程序性能。本文将针对“java poi打开大文件的慢优化方法&#xff1f;”这个问题讨论了几个可行的解决方案&#xff0c;以帮助开发者提高程序效率。问题在于java poi 默认情况下&#…...

Claude 90分钟挖穿20年漏洞!5w星“安全”系统跌下神坛,Linux内核也未能幸免

鹭羽 发自 凹非寺量子位 | 公众号 QbitAIGitHub狂揽5w星、以安全著称的Ghost CMS&#xff0c;刚刚跌下了神坛。只因Anthropic的研究员给Claude下达了一个指令——找出系统漏洞。结果90分钟&#xff0c;精准定位Ghost CMS首个高危漏洞&#xff0c;并在无身份验证的情况下窃取到管…...

【技术解析】PSMNet:如何通过金字塔池化与堆叠沙漏3D CNN革新立体匹配?

1. PSMNet为何能成为立体匹配的里程碑&#xff1f; 第一次看到PSMNet在KITTI榜单上霸榜时&#xff0c;我正在调试自己的立体匹配模型。当时最让我震惊的不是它的精度数字&#xff0c;而是那些传统算法总出错的遮挡区域、弱纹理区域&#xff0c;在PSMNet的视差图里竟然都清晰可辨…...

手把手教你用DrissionPage搭建个人新闻聚合器:自动抓取百度热搜并保存到Excel

用DrissionPage打造智能新闻聚合器&#xff1a;从百度热搜抓取到Excel自动化分析 每天手动刷新闻不仅耗时&#xff0c;还容易错过重要信息。想象一下&#xff0c;如果有个私人助手能自动收集全网热点&#xff0c;整理成结构化的报告&#xff0c;甚至生成直观的可视化图表——这…...

误删Anaconda?4招紧急救援方案

问题背景与常见场景Anaconda被误删可能由误操作、系统崩溃、病毒攻击等原因导致&#xff0c;涉及环境、包、配置等关键数据丢失。抢救前的准备工作立即停止对Anaconda所在磁盘的写入操作&#xff0c;避免数据被覆盖。 确认删除方式&#xff08;回收站、ShiftDelete、格式化等&a…...

ASPICE 的起源与发展历程(二)

ASPICE 并非汽车行业原生创造&#xff0c;其核心底层源自通用软件过程评估体系&#xff0c;是汽车行业基于自身高安全、高可靠的产业特性&#xff0c;定制化迭代的行业专属标准。&#xff08;一&#xff09;底层起源&#xff1a;通用SPICE 准的诞生1994 年&#xff0c;国际标准…...

利用爱毕业aibiye等智能软件,论文写作与编程工作流程得到革新,AI为学术研究提供新思路

文章总结表格&#xff08;工具排名对比&#xff09; 工具名称 核心优势 aibiye 精准降AIGC率检测&#xff0c;适配知网/维普等平台 aicheck 专注文本AI痕迹识别&#xff0c;优化人类表达风格 askpaper 快速降AI痕迹&#xff0c;保留学术规范 秒篇 高效处理混AIGC内容&…...

硬件工程师成长指南:从理论到实战的完整路径

1. 硬件工程师的成长路线&#xff1a;从理论到实践的完整规划作为一名从业十年的硬件工程师&#xff0c;我见过太多新人一上来就埋头焊板子、调电路&#xff0c;结果浪费大量时间在低水平重复。硬件设计就像下围棋&#xff0c;没有全局思维的人永远只能当个业余爱好者。今天我想…...

基于COMSOL光学仿真的光子晶体光纤与微纳光学研究

comsol光学仿真光子晶体光纤&#xff0c;comsol光学方方向COMLOS微纳光学&#xff0c;仿真双芯光子晶体光&#xff0c;锥形光纤 光子晶体光光纤滤波器等&#xff0c;bpm&#xff0c;rsoft&#xff0c;fullware&#xff0c;论文复现在光学仿真领域&#xff0c;COMSOL Multiphysi…...

Agent-S实战指南:突破性智能体框架如何实现72.6%人类级计算机交互性能

Agent-S实战指南&#xff1a;突破性智能体框架如何实现72.6%人类级计算机交互性能 【免费下载链接】Agent-S Agent S: an open agentic framework that uses computers like a human 项目地址: https://gitcode.com/GitHub_Trending/ag/Agent-S 在人工智能与计算机交互的…...