搞SLAM装完一个新的ubuntu系统后需要的环境配置

2023-05-16

所有的文件上传百度云:
链接:
https://pan.baidu.com/s/1xheyHxPwaD8Tb9QJ6SAHUA
提取码: gmt9

一个搞SLAM的小白,新装完ubuntu系统后应该配置这些内容

    • 1.换源
    • 2.安装ubuntu的显卡驱动
    • 3.安装ros
    • 4.安装slam常用库
      • 4.1安装eigen库
        • 查看现存的Eigen3版本
      • 4.2安装PCL库
        • 查看pcl版本
      • 4.3安装ceres库
        • 安装完后查看Ceres版本
      • 4.4安装OpenCV库
        • 使用以下命令检查OpenCV版本
      • 4.5 Sophus库
      • 4.6 Pangolin
      • 4.7 g2o
      • 4.8 DBoW3
      • 4.9 安装gtsam
      • 4.10 安装gflags
      • 4.11安装glog
    • 5 安装配置vscode
    • 6 安装vim
    • 7 安装indicator-sysmonitor
    • 9 与windows出现时间冲突
    • 10 安装微信
    • 11 安装cloudcompare
    • 12 增加Swap交换空间大小

1.换源

推荐使用鱼香ros:

wget http://fishros.com/install -O fishros && . fishros

2.安装ubuntu的显卡驱动

参考:
https://blog.csdn.net/handily_1/article/details/119606399?spm=1001.2014.3001.5501
查看以下本机适配驱动:

sudo ubuntu-drivers devices

选择一个驱动安装

sudo apt install nvidia-driver-470

在nvidia-setting设置为性能模式
参考1
参考2

3.安装ros

推荐一行代码搭建机器人开发环境(ROS/ROS2/ROSDEP)

wget http://fishros.com/install -O fishros && . fishros

安装完后用roscore测试一下

4.安装slam常用库

4.1安装eigen库

一般考虑eigen3.3.3以上
链接:https://gitlab.com/libeigen/eigen/-/releases
点击other downloads->选择合适版本文件->点击.zip文件下载

随后在终端中输入以下指令:

cd eigen-3.3.7 # 进入eigen解压的目录,注意文件名
mkdir build  # 新建一个build文件夹
cd build  # 进入build文件夹
cmake ..  # 用cmake生成Makefile
sudo make install  # 安装 

注意现在此时Eigen头文件默认安装在/usr/local/include/eigen3中,以后需要这个库时,在对应的CMakeLists.txt中引用该目录即可

eigen软链接: 只使用find_package(Eigen3 REQUIRED)命令的话有可能无法找到,需要

sudo ln -s /usr/local/include/eigen3/Eigen /usr/include/Eigen
sudo ln -s /usr/local/include/eigen3/unsupported /usr/include/unsupported

查看现存的Eigen3版本

dpkg -s libeigen3-dev | grep Version

删除旧的Eigen库的方法:
通过以下指令查找Eigen库所在的位置:

sudo updatedb
locate eigen3

删除:

sudo rm -rf /usr/include/eigen3
sudo rm -rf /usr/lib/cmake/eigen3
sudo rm -rf /usr/local/include/eigen3
sudo rm -rf /usr/share/doc/libeigen3-dev 
sudo rm -rf /usr/local/share/pkgconfig/eigen3.pc /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums
sudo rm -rf /usr/local/lib/pkgconfig/eigen3.pc
sudo rm -rf /usr/local/share/eigen3

最后可再次利用以下代码查看删除情况:

sudo updatedb
locate eigen3
pkg-config --modversion eigen3

4.2安装PCL库

安装有问题参考:https://blog.csdn.net/handily_1/category_11560732.html?spm=1001.2014.3001.5482
安装依赖:

sudo apt-get update  
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common 
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev 这个需要自己下载正确版本安装
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk7.1-qt libvtk7.1 libvtk7-qt-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install openjdk-8-jdk openjdk-8-jre

下载编译

如果报错error 2:#include <boost/uuid/sha1.hpp>
原因:sha1.hpp的路径不对(查找自己电脑上sha1.hpp的路径)

解决:在pcl_visualizer.cpp中将#include <boost/uuid/sha1.hpp>改为#include
<boost/uuid/detail/sha1.hpp>

如报错undefined reference to LZ4_resetStreamHC' /bin/ld: ../../lib/libpcl_kdtree.so.1.8.0: undefined reference to
解决:kdtree/CMakeFiles/pcl_kdtree.dir/下的link.txt里在末尾写上:-llz4
ubuntu20编译pcl1.8报错可以
参考:https://www.pudn.com/news/632469aab283a472d0220bed.html

等待漫长的编译之后
sudo make install

查看pcl版本

如果是安装ROS时自带的PCL,查看 pcl 版本指令是:

gedit /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfigVersion.cmake

如果是通过源码安装的PCL,查看 pcl 版本指令是:

gedit /usr/local/share/pcl-1.8/PCLConfigVersion.cmake # 注意: 指令中 pcl-1.8/ 根据自己电脑 /usr/local/share/ 下的 pcl 文件夹而定,其他电脑可能是别的,比如 pcl-1.9/

4.3安装ceres库

参考:
https://blog.csdn.net/RuningLING/article/details/119419905
https://blog.csdn.net/weixin_44468210/article/details/107124825

官网下载链接:https://github.com/ceres-solver/ceres-solver
安装依赖:

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

然后:

cd ceres-solver
mkdir build
cd build
cmake ..
make
sudo make install

安装完后查看Ceres版本

因为Ceres库版本的定义在 /usr/local/include/ceres/version.h 里面,所以

sudo cat /usr/local/include/ceres/version.h 

#注意:将编译选项打开

cmake -DEIGENSPARSE=ON …

注:ceres1.14配合eigen3.4食用

4.4安装OpenCV库

使用以下命令检查OpenCV版本

pkg-config --modversion opencv

4.5 Sophus库

sophus依赖eigen库,3.3以下的版本的eigen请先卸载
ubuntu20之前我安装非模板类老是报错,最后原因就是eigen不对

非模板类:
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ..
make

4.6 Pangolin

sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST= 1 ..
make
sudo make install

4.7 g2o

sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-headers
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make
sudo make install

4.8 DBoW3

    git clone https://github.com/rmsalinas/DBow3.git
    cd DBow3
    mkdir build
    cd build
    cmake ..
    make
    sudo make install

4.9 安装gtsam

mkdir build

cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
sudo make install
sudo ldconfig

4.10 安装gflags

git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=gflags ../ 
make -j4
sudo make install

4.11安装glog

git clone https://github.com/google/glog
cd glog
mkdir build && cd build
cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
make
sudo make install
sudo ldconfig
# glog的头文件位于/usr/local/include
# glog的库文件位于/usr/local/lib

5 安装配置vscode

插件:

C/C++ #开发必备
C/C++ Advanced Lint #静态检查
C/C++ Extension Pack #扩展包
C/C++ Snippets #常用代码片段
Error Lens #错误高亮显示
Include AutoComplete #头文件自动补全
Code Runner #运行
 
Better C++ Synatx
C/C++ Themes
Chinese(Simplified)
CMake
CMake Tools
compareit
Git Graph

VScode中配置ROS环境
编译执行快捷键:ctrl+shift+b
运行节点执行快捷键ctrl + shfit + p
输入ROS:Run a Ros executable
依次输入创建的功能包的名称以及节点名称(即编译成功后二进制文件的名称,注意不是文件名),等价于rosrun

6 安装vim

自带的vim版本太老了

sudo apt install vim

7 安装indicator-sysmonitor

标题栏实时显示上下行网速、CPU及内存使用率

sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
sudo apt-get update
sudo apt-get install indicator-sysmonitor

开机自启动别忘了.

sudo apt-get install gnome-tweak-tool	
或者
sudo apt-get  install gnome

## 8 安装indicator-sysmonitor

9 与windows出现时间冲突

Linux的环境下此命令行的作用就是关闭UTC(不可以执行的话就加上sudo试试)。

timedatectl set-local-rtc 1 --adjust-system-clock

10 安装微信

https://blog.csdn.net/ccsodefhy/article/details/123193936

11 安装cloudcompare

之前直接sudo apt install 安装后打开pcd报格式错,需要安装不同版本

sudo snap install  cloudcompare
sudo snap refresh --edge cloudcompare

这样才能顺利打开pcd文件

12 增加Swap交换空间大小

this link

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

搞SLAM装完一个新的ubuntu系统后需要的环境配置 的相关文章

  • 占据栅格地图(occupancy grid maps) -- 二值贝叶斯滤波应用

    其实 xff0c 我想讲的关键点是二值状态的最优估计问题 xff0c 而不仅仅是栅格地图 Anyway xff0c that is a good example 机器人的地图表示方式有多种 xff0c 如拓扑地图 特征地图 直接表征法 栅格
  • 粒子滤波实现及推导

    一 应用 example xff1a 机器人全局定位 粒子滤波实现过程解读 二 推导 从贝叶斯到粒子滤波 三 工程化细节探讨 这是草稿 xff0c 待完善
  • 卫星信号的上行下行学习笔记

    gt gt gt gt gt gt 我的博客目录导航 最近被卫星电视信号的发射接收过程弄的头疼 xff0c 于是潜心找了本书 卫星电视接收DIY 细细看看下 1 地面信号上星 以前在家弄个 锅 看看电视 xff0c 电视里主持人录节目 xf
  • 信息与不确定性

    最近学习了吴军的 信息论40讲 xff0c 深有感触 xff0c 有感而发 xff01 本博文想要给你传递 xff08 或者说洗脑 xff09 两个主要观点 xff1a 信息是可以量化的 xff0c 用事件的不确定性表示 xff0c 增加相
  • AlexeyAB/darknet (YOLO)的编译 和 作为动态库进行使用 以及 训练 自定义 数据(检测网络和分类网络)

    ubuntu 编译 https github com AlexeyAB darknet 这个库很贴心了 xff0c 当然 xff0c 主要是 darknet的实现也很硬核 xff0c 自带图像编解码 xff0c 各种造轮子 文档 把 各种用
  • LoRa和NB-IoT有什么区别?LoRa的优势在哪些方面?

    对于LoRa技术 xff0c 行业内人士都不会陌生 xff0c 它也经常会被拿来和NB IoT技术比较 作为低功耗广域网 xff08 LPWAN xff09 的新兴技术 xff0c 两种技术都备受关注 对于LoRa技术 xff0c 行业内人
  • Source Insight 4.0最好看的主题

    推荐一款sourceinsight主题 xff0c 4 0适用 xff0c 配色本人觉得非常舒服 使用方法 xff1a 1 安装Sourceinsight 2 安装字体 xff1a YaHei Consolas Hybrid 1 12 tt
  • Notepad++最好看的主题

    Notepad 43 43 最好看的主题 xff0c 收藏了很久 xff0c 现在拿出来和大家分享 配色如下 xff1a 使用方法 xff1a 1 安装Notepad 43 43 2 将KamiTheme xml放到 Notepad 43
  • DTLS协议中client/server的认证过程和密钥协商过程

    1 DTLS介绍 1 1 DTLS的作用 互联网先驱们最开始在设计互联网协议时主要考虑的是可用性 xff0c 安全性是没有考虑在其中的 xff0c 所以传输层的TCP UDP协议本身都不具备安全性 SSL TLS协议是基于TCP socke
  • Ubuntu18.04 实现串口通信

    最近由于项目需要 xff0c 研究了关于在ubuntu下串口通信的功能实现 期间遇到一些问题 xff0c 跟大家分享下 1 代码 comm service h ifndef comm service h define comm servic
  • [STM32] 串口数据帧处理(第一弹)

    文章目录 1 串口使用的常用场景2 字节帧处理总结 1 串口使用的常用场景 使用串口的主要目的是实现数据的交互 xff0c 数据的交互的方法脱身于常用的场景 这里描述一个比较典型的场景 xff1a MCU作为主控制器通过串口和外部的设备或者
  • 串口编程—(1)串口基本知识

    串口是用来干什么的 xff1f 串行接口 简称串口 xff0c 也称 串行通信 接口或 串行通讯接口 xff08 通常指 COM接口 xff09 xff0c 是采用 串行通信 方式的扩展接口 串行接口 Serial Interface 是指
  • C语言操作redis数据库

    文章目录 1 开发环境2 C语言redis库 hiredi安装配置2 1 下载并且解压hiredis2 2 hiredis安装 3 hiredis简单测试4 运行出错解决办法5 验证5 1 运行程序5 2 redis客户端验证 1 开发环境
  • 5.0 NuttX File System

    转载请注明出处 xff1a 5 0 NuttX File System Alvin Peng的博客 CSDN博客 文章均出自个人理解 前言 前一段时间折腾了几个驱动 xff08 PWM Serial I2C xff09 xff0c 这次来折
  • 使用cmake构建一个大型项目框架

    文章目录 使用CMake构建一个大型项目工程1 大型工程目录结构介绍1 1 工程目录结构介绍1 2 工程目录说明 xff08 我是这样设计的 xff0c 你们也可以参考类似这样设计 xff09 1 3 最外层CMakeLists txt说明
  • github下载加速的几种方法

    文章目录 1 github加速的几种办法1 1 把github的代码 xff0c 转到码云上1 2 有人做了github的代下载网站 xff0c 可以从上面进行下载1 3 使用cnpmjs镜像进行加速1 4 使用国外服务器进行搭桥 2 总结
  • EasyLogger的代码解读和移植(linux和stm)

    文章目录 1 EasyLogger目录结构分析 2 EasyLogger之docs查看总结 2 1 EasyLogger之docs查看 2 1 2 api gt kernel md文档 2 1 3 port gt kernel md文档 2
  • C++之socket.io编译使用

    文章目录 1 什么是socket io2 开发环境配置2 1 获取socket io的源码2 2 cmake安装2 3 boost安装2 3 1 获取源码2 3 2 解压编译下载 2 4 rapidjson下载2 5 websocketpp
  • github push的改版

    1 记录一次github 推送时的错误 错误如下 xff1a remote Please see https github blog 2020 12 15 token authentication requirements for git
  • Frp内网穿透

    Frp内网穿透 所有经过服务器的内网穿透都是有一个服务端和客户端 因为都需要借助服务器的公网ip来访问进而达到内网穿透的效果 frp的github开源地址 https github com fatedier frp frp的说明文档 htt

随机推荐

  • linux常见的几种排序方法

    我们以数组a 61 2 6 8 9 1 2 进行排序输出作为列子 xff1a 下面我来总结几种方法来帮助大家学习 1 xff1a 常规排序 首先2和6对比 xff0c 2不比6大不因此不交换 xff0c 所以还是268912 xff0c 然
  • 值得推荐的C/C++框架和库

    值得学习的C语言开源项目 Libevent libev是一个开源的事件驱动库 xff0c 基于epoll xff0c kqueue等OS提供的基础设施 其以高效出名 xff0c 它可以将IO事件 xff0c 定时器 xff0c 和信号统一起
  • cmake教程4(find_package使用)

    本文主要内容如下 xff1a 1 cmake find package的基本原理 2 如何编写自己的 cmake module模块 3 使用cmake find package 使用不同版本的opencv lib问题 xff08 openc
  • A*算法

    如此好贴 xff0c 不能不转 xff01 原文地址 xff1a http dev gameres com Program Abstract Arithmetic AmitAStar mht 本文版权归原作者 译者所有 xff0c 我只是转
  • 3.5RC_Channel 和 SRV_channel

    前言 这部分是之前在折腾ROVER的时候梳理了一遍 xff0c 但是没有形成记录 xff0c 现在从新从对象的角度来分析一遍 xff0c 包括映射 转换 数据结构 等方面进行梳理 xff1b 数据结构 首先分析的入口是从Rover read
  • CAN通信详解

    本章我们将向大家介绍如何使用STM32自带的CAN控制器来实现两个开发板之间的CAN通讯 xff0c 并将结果显示在TFTLCD模块上 本章分为如下几个部分 xff1a 30 1 CAN简介 30 2 硬件设计 30 3 软件设计 30 4
  • VC中出现的一些小问题的解决办法

    本人用的是vc6 0的 xff0c 在实际调试过程中出现一些小的问题 xff0c 通过网上查询资料得以解决 xff0c 特此在此整理下 xff0c 方便后者参考 第一问题 xff1a 程序源码编写完成后编译没有问题 xff0c 而链接时出现
  • C++编译报错`XXX‘被多次定义总结;未定义的引用等等

    1 C 43 43 编译报错 96 XXX 被多次定义总结 报错原因 xff1a 诸如类似的报错都是因为可能在两个或者多个 cpp文件 h文件定义该全局变量 xff0c 属于重复定义问题 解决办法是 xff1a 在VScode全局搜索该变量
  • C++必备万能头文件“#include<bits/stdc++.h>”

    c 43 43 代码一个简单的头文件 xff1a span class token macro property span class token directive hash span span class token directive
  • Livox SLAM(带LIO+闭环检测优化)

    主题 xff1a Livox雷达LIO 43 闭环检测优化 开源地址 xff1a LiDAR SLAM 该开源为 Livox雷达实现了一个一体化且即用型的 LiDAR 惯性里程计系统 前端基于基于开源里程计框架LIO Livox获取里程计信
  • 大疆livox定制的格式CustomMsg格式转换pointcloud2

    官方livox driver驱动livox雷达发出的点云topic有两种 xff0c 一种是大疆览沃定制的格式CustomMsg格式 xff0c 另一种是将CustomMsg格式 转换过的pointcloud2格式 xff0c 参见 Liv
  • paddlepaddle

    项目用到了paddlespeech2 xff0c 学了几天paddlepaddle xff0c 简单记录一下 文章目录 1 手写数字识别任务2 极简方案构建手写数字识别模型模型设计训练配置训练过程模型测试 3 手写数字识别 之数据处理4 手
  • SC-Lego-LOAM解析(上)

    文章目录 正文imageProjectionfeatureAssociationFeature Extraction 正文 SC Lego LOAM实际上应该并不对应某一篇特定的论文 xff0c 而是韩国KAIST在github开源的代码
  • SC-Lego-LOAM解析(中)

    上回说到经过连续帧间匹配 xff0c 激光odo给出来一个位姿估计 xff0c 但是是存在不断的误差的积累的 xff0c 需要与绝对的参考 xff08 地图 xff09 进行匹配 xff0c 以及进行回环检测和全局位姿优化 这也是正是map
  • SC-Lego-LOAM解析(下)

    回环检测是一个相对独立的模块 xff0c 这里再开一篇专门说明 前面两篇已经说过 xff0c 先对点云做了预处理 xff0c 然后进行连续帧之间的匹配即激光odom xff0c 然后是scan to map匹配 xff0c 并保存关键帧的位
  • Blog文章导航

    文章超链接 为了更快速的找到感兴趣的文章 xff0c 把我之前写的blog做一个简单的归类 xff1a 一 Nuttx相关 关于Nuttx的开发环境搭建类的文章 xff1a 1 genromfs 的使用及nuttx下romfs制作 2 nu
  • 关于计算程序耗时的几个方法

    1 一个来自r3live的timer tool工具 xff1a 一个功能丰富的头文件 34 tools timer hpp 34 span class token macro property span class token direct
  • gitpush出现remote: Support for password authentication was removed on August 13, 2021.

    git push 报错 xff1a Username span class token keyword for span span class token string 39 https github com 39 span span cl
  • ubuntu解决github访问速度慢的一个小tip

    一 通过设置hosts来解决 xff1a 登录http tool chinaz com dns 查询以下域名映射 并分别取访问速度较快的一个ip xff0c 比如我的 github span class token punctuation
  • 搞SLAM装完一个新的ubuntu系统后需要的环境配置

    所有的文件上传百度云 xff1a 链接 https pan baidu com s 1xheyHxPwaD8Tb9QJ6SAHUA 提取码 gmt9 一个搞SLAM的小白 xff0c 新装完ubuntu系统后应该配置这些内容 1 换源2 安