Ubuntu20.04安装各种库----简洁版

2023-11-15


建议先装anaconda再装ros, python,opencv啥该有的都有了
下面仅仅安装ros没有的库

Eigen3

  • 作用:线性代数开源库, 提供了有关线性代数、矩阵和矢量运算、数值分析及相关的算法
  • 安裝方法:
sudo apt-get install libeigen3-dev

使用時注意添加頭文件:

#添加头文件
include_directories("/usr/include/eigen3")

Sophus

  • 作用:李代数库,支持三维运动的SO(3)、SE(3),此外还支持二维运动的SO(2)、SE(2)和相似变换Sim(3)等内容.
  • 安裝:
git clone http://github.com/strasdat/Sophus
cd Sophus
mkdir build
cd build
cmake ..
make
sudo make install

默認安裝爲模板類,如果使用非模板類,需要在git clone後,用git checkout a621ff滾動到非模板類版本
安装时可能会出现错误:

Could not find a package configuration file provided by "fmt" with any of
  the following names:

    fmtConfig.cmake
    fmt-config.cmake
  • 解决方案:安装fmt:
git clone https://github.com/fmtlib/fmt.git
cd fmt
mkdir build
cd build
cmake ..
make
sudo make install
  • 注意,使用时在cmakelist中添加:
target_link_libraries(fmt)

Pangolin

  • 作用:一款开源的OPENGL显示库,可以用来视频显示
  • 安装:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make
sudo make install

最后使用sudo ldconfig使得环境变量生效.

Ceres

如果没有ros还需要安装其他依赖, 考虑已经装了ros,只需要
安装:
sudo apt-get install libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev
接着源码安装ceres:

git clone https://github.com/ceres-solver/ceres-solver
cd ceres-solver
mkdir build && cd build
cmake ..
make -j16
sudo make install

注意使用事项:
Ceres库的头文件安装在"/usr/local/include/ceres/“目录下,库文件安装在”/usr/local/lib/"目录下。在CMakeList.txt中添加头文件和库文件路径的命令:

find_package( Ceres REQUIRED )
include_directories( ${CERES_INCLUDE_DIRS})           #添加头文件目录 
add_executable( 可执行文件名 源文件名.cpp )           #添加可执行文件
target_link_libraries( 可执行文件名 ${CERES_LIBRARIES} )  #添加库文件目录

g2o

先安装依赖环境:
sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3
接着源码安装:
先退出conda环境,以免冲突:conda deactivate然后:

git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build && cd build
cmake ..
make -j16
sudo make install

接着测试深蓝学院vins-course的小demo地址

期间存在的问题:

  • 官方已经放弃使用ceres/local_parameterization.h
    在这里插入图片描述因此我选择临时撤退,先sudo make uninstall卸载已经安装的ceres版本, 然后安装十四将给的文件进行安装

另外还会出现opencv问题, 同样可以去官网或者直接用高博十四讲给的3.1版本opencv, 安装后注意使用时要根据情况指定版本:

# find_package(OpenCV REQUIRED) 	  # 默认是opencv4, 因为我装ros自带的4
find_package(OpenCV 3 REQUIRED)       # 这里指定为3

而后编译vins-mono即可:
在这里插入图片描述

参考文献:
视觉SLAM十四讲环境搭建(测试环境Ubuntu20.04)总结很全!!!
也不错
里面有一丢丢有问题,结合着看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20.04安装各种库----简洁版 的相关文章

  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • FileStream 构造函数和默认缓冲区大小

    我们有一个使用 NET 4 用 C 编写的日志记录类 我想添加一个构造函数参数 该参数可以选择设置文件选项 WriteThrough http msdn microsoft com en us library system io fileo
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • 防止 boost::asio::io_context 在空轮询调用时停止

    此代码调用发布的句柄 boost asio io context ioc boost asio post ioc std cout lt lt lol lt lt std endl ioc poll 而这并没有 boost asio io
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • std::forward_as_tuple 将参数传递给 2 个构造函数

    我想传递多个参数以便在函数内构造两个对象 以同样的方式std pair
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 如何通过 JsonConvert.DeserializeObject 在动态 JSON 中使用 null 条件运算符

    我正在使用 Newtonsoft 反序列化已知的 JSON 对象并从中检索一些值 如果存在 关键在于对象结构可能会不断变化 因此我使用动态来遍历结构并检索值 由于对象结构不断变化 我使用 null 条件运算符来遍历 JSON 代码看起来像这
  • 是否有相当于 Clang/LLVM 的 .spec 文件,在哪里可以找到参考?

    The gcc驱动程序可以配置为使用特定的链接器 特定的选项和其他细节 例如覆盖系统头 specs files 当前 截至撰写本文时 GCC 版本 4 9 0 的手册此处描述了规范文件 https gcc gnu org onlinedoc
  • 在 EnvDTE 中调试时捕获 VS 局部变量

    是否可以使用 EnvDTE 进行 vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据 或者可以通过其他方法吗 我想创建一个自定义的本地窗口 我们可以修改它以根据需要显示一些较重的内容 而无需为高级用户牺牲原始的本地
  • 我可以让 ungetc 取消阻止阻塞的 fgetc 调用吗?

    我想在收到 SIGUSR1 后使用 ungetc 将 A 字符重新填充到标准输入中 想象一下我有充分的理由这样做 调用 foo 时 stdin 中的阻塞读取不会被收到信号时的 ungetc 调用中断 虽然我没想到它会按原样工作 但我想知道是
  • IEnumerable.Except 不起作用,那么我该怎么办?

    我有一个 linq to sql 数据库 非常简单 我们有 3 个表 项目和用户 有一个名为 User Projects 的连接表将它们连接在一起 我已经有了一个获得的工作方法IEnumberable
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 更改 Windows Phone 系统托盘颜色

    有没有办法将 Windows Phone 上的系统托盘颜色从黑色更改为白色 我的应用程序有白色背景 所以我希望系统托盘也是白色的 您可以在页面 XAML 中执行此操作
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用

随机推荐

  • 通行时间估计 读书笔记

    Learning to Estimate the Travel Time Didichuxing 中文提示 通行时间估计 特征提取 对路段中所有可能获取的数据进行特征提取 包括交叉路口 route 信号灯信息 路段长度 宽度 车道数 本段在
  • 【2023】华为OD机试真题Java-题目0198-整理扑克牌

    整理扑克牌 题目描述 给定一组数字 表示扑克牌的牌面数字 忽略扑克牌的花色 请安如下规则对这一组扑克牌进行整理 步骤一 对扑克牌进行分组 规则如下 当牌面数字相同张数大于等于4时 组合牌为炸弹 三张相同牌面数字 两张相同牌面数字 且三张牌与
  • 统计学---之样本方差与总体方差的区别

    前段日子重新整理了一下这个问题的解答 跟大家分享一下 如果有什么错误的话希望大家能够提出来 我会及时改正的 话不多说进入正题 首先 我们来看一下样本方差的计算公式 刚开始接触这个公式的话可能会有一个疑问就是 为什么样本方差要除以 n 1 而
  • Java加密技术(十一)——双向认证

    对于双向认证 做一个简单的描述 服务器端下发证书 客户端接受证书 证书带有公钥信息 用于验证服务器端 对数据加密 解密 起到OSI五类服务的认证 鉴别 服务和保密性服务 这只是单向认证 为什么 因为客户端可以验证服务器端 但服务器端不能验证
  • Mac前往服务器文件夹变成灰色,[mac]解决移动硬盘文件显示灰色的问题

    在mac上创建的文件 在复制到移动硬盘上后 变成灰色且不能操作 项目已被 macOS 使用 不能打开 在移动硬盘上变成灰色的文件 双击会提示 项目已被 macOS 使用 不能打开 打开终端输入 ls eln 灰色文件路径 image png
  • 新手如何使用pycharm

    开启coding之旅 我在写代码的时候 我总是因为安装包和环境的问题 代码总是bug不断 短段的两天时间 我整天扑在上面研究 不断地抓头 短段两天 我感觉我的头发都凸了一点了 后来我实在解决不了 于是直接付费请教别人帮我装机 就为了完成最简
  • Jenkins 设置镜像_在k8s上安装Jenkins及常见问题

    持续集成和部署是DevOps的重要组成部分 Jenkins是一款非常流行的持续集成和部署工具 最近试验了一下Jenkins 发现它是我一段时间以来用过的工具中最复杂的 一个可能的原因是它需要与各种其它工具集成才能完成任务 而集成的方法又各不
  • XML转JavaBean的简单实现

    一个基于JSON的简单的XML转为Bean的方法 之前在做一个WEB SERVICE的交互的时候 写的一个基于JSON的XML转Bean的方法 就把它整理处理 如下 gt pom xml 所有需要的依赖包如下
  • 使用ChatGPT自动编写Python爬虫脚本

    都知道最近ChatGPT聊天机器人爆火 我也想方设法注册了账号 据说后面要收费了 ChatGPT是一种基于大语言模型的生成式AI 换句话说它可以自动生成类似人类语言的文本 把梳理好的有逻辑的答案呈现在你面前 这完全不同于传统搜索工具 Cha
  • Unity Mesh网格编程(三) Shader实现水面或旗帜飘扬效果

    Upgrade NOTE replaced Object2World with unity ObjectToWorld Upgrade NOTE replaced mul UNITY MATRIX MVP with UnityObjectT
  • 【Unity3D小功能】Unity3D中实现UI擦除效果、刮刮卡功能

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好 我是佛系工程师 恬静的小魔龙 不定时更新Unity开发技巧 觉得有用记得一键三连哦 一 前言 使用Unity3D实现UI的擦拭效果 刮刮卡
  • php图片居中显示图片,CSS实现图片居中的三种方式

    在我们的WEB前端css开发过程中 我们避免会遇到让图片居中的情况 为了网页美观以及用户的体验 我们有时候就要让图片居中 那么我们也都知道图片居中的方法有很多 今天我们就给大家详细介绍下CSS实现图片居中的三种方式 1 利用display
  • Docker入门命令

    文章目录 1 安装Docker 2 搜索 下载镜像 3 查询本地镜像 4 启动镜像到容器 5 查询已启动镜像 容器 6 进入容器环境 7 创建镜像 7 1 基于已有镜像的容器创建 7 2 基于本地模板导入 7 3 基于Dockerfile创
  • AI绘图:教你几个提示词 100%生成美丽小姐姐

    许多常用提示对于确保高质量的成像结果至关重要 我们将教您一些基本的提示词和设置 以节省您在初始探索过程中的时间 本次用到的模型ChilloutMix 基础设置 默认设置包括图片 大小 512 x 512 采样器 DPM SDE Karras
  • 逆序栈(使用递归)

    题目 一个栈依次压入1 2 3 4 5那么从栈顶到栈底分别为5 4 3 2 1 将这个栈转置后 从栈顶到栈底为1 2 3 4 5 也就是实现了栈中元素的逆序 请设计一个算法实现逆序栈的操作 但是只能用递归函数来实现 而不能用另外的数据结构
  • springBoot添加自定义拦截器

    文章目录 前言 步骤如下 首先新建一个自己的拦截器 其次 把自己的拦截器注册到spring中 让其生效 前言 新的项目需要校验用户是否登录 在springBoot项目中添加一个自定义的拦截器拦截到所有请求进行逻辑判断 步骤如下 首先新建一个
  • 资讯汇总230429

    230429 11 44 大华股份 重点投入大模型和多模态方向 会持续按需扩容算力 大华股份在业绩说明会表示 GPT 的发展具有里程碑式的意义 公司会重点投入大模型和多模态方向 过去在大模型领域的算法和工程能力已经有一定的积累 先进技术研究
  • 内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由腾讯游戏云发表于云 社区专栏 内行看门道 看似 佛系 的 QQ炫舞手游 背后的音频技术一点都不简单 3月14日 腾讯旗下知名手游 QQ炫舞 正式上线各大应用商店 并迅速登上Ap
  • 卡尔曼滤波与目标跟踪(由cv模型的kf推理到CTRV模型的radar与lidar))(一)

    引用AdamShan 引用知乎陈光 基于cv模型的行人状态预测 卡尔曼滤波与目标追踪 卡尔曼的理论 一 初始化 我们认为小车在第1秒时的状态x与测量值z相等 二 预测 Prediction 完成初始化后 我们开始写Prediction部分的
  • Ubuntu20.04安装各种库----简洁版

    目录 Eigen3 Sophus Pangolin Ceres g2o 建议先装anaconda再装ros python opencv啥该有的都有了 下面仅仅安装ros没有的库 Eigen3 作用 线性代数开源库 提供了有关线性代数 矩阵和