ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)

ORB-SLAM2程序的准备工作及编译(途中解决各种疑难杂症)

  • 第一步(Prerequisites):准备各种库和预备包
    • 第二步(Building):建立ORB-SLAM2库
      • 第三步(Running):编译与调试

第一步(Prerequisites):准备各种库和预备包

1.首先要确定是否安装了C++11或者C++0x编译器
没有安装的,可以用命令:
1.1 更新包列表:

sudo apt update

1.2 安装build-essential软件包:

sudo apt install build-essential

这个命令会安装一堆新包,包括gcc,g++和make,耐心等待即可。
1.3最后可以验证GCC编译器是否成功安装:

gcc --version

输出:
gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0
Copyright © 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2.下载Pangolin包,
2.1参考这个链接(可以现在windows上下载号tgz,再解压成文件复制到ubutun里)
或命令(推荐):

git clone https://github.com/stevenlovegrove/Pangolin.git

2.2 编译安装

cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install

(1)在执行make -j4的时候可能会遇到如下问题:No package 'xkbcommon’
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第1张图片解决这个问题,执行如下命令:

sudo apt-get install libxkbcommon-dev

(2)也可能遇到问题:No package ‘wayland-protocols’ found
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第2张图片解决方法:

sudo apt-get install wayland-protocols

然后依次执行上面的命令,make -j4执行成功如下图所示:
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第3张图片ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第4张图片3.依赖项:
c++11
OpenGL (Desktop / ES / ES2)

sudo apt install libgl1-mesa-dev

Glew

sudo apt install libglew-dev

CMake (for build environment)

sudo apt install cmake

Python2 / Python3, for drop-down interactive console

sudo apt install libpython2.7-dev

Wayland
pkg-config

sudo apt install pkg-config

Wayland and EGL

sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

Building

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .

Python

sudo python -mpip install numpy pyopengl Pillow pybind11
git submodule init && git submodule update

The python module pypangolin must be on your python path, either through installation, or by setting it explicitly:
(输入自己的pypangolin路径)

import sys
sys.path.append('path/of/pypangolin.so')

4.下载并安装OpenCV(至少是2.4.3版本以上的,这里下载的是OpenCV 3.2 source)
也可以通过指令下载:

git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git

(一定要下载对应的opencv_contrib)!!!(我就是下载了不对应的报了若干若干若干的错误!!!!)
这个过程需要等待一段时间,具体依赖与你的网速啦,下载成功后,可以在你的home目录下看见opencv和opencv_contrib两个文件夹,将opencv_contrib目录移到opencv目录下。

在下载的过程中,我们可以添加opencv所需要的依赖库:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

以上步骤完成后,我们进入opencv目录,创建build目录:

cd opencv
mkdir build

进入build目录,开始编译,执行(注意后面的两个点不能少):

cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

在执行cmake指令的时候,需要下载一个ippicv_linux_20151201.tgz文件,如果网不好,可能会卡在:
ICV: Downloading ippicv_linux_20151201.tgz…
这时候可以单独下载 ippicv_linux_20151201.tgz文件:文件大小36.5MB,下载链接:https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz
下载后放到 ‘/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/’ 文件夹下再重新cmake就行了。

5.ROS的下载(可选可不选):RGB-D,stereo等样例要用到ROS。

第二步(Building):建立ORB-SLAM2库

1.克隆储存库:

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

若git指令没找到,即出现:
在这里插入图片描述运行:

sudo apt install git

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第5张图片继续运行上面的git指令:

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

在这里插入图片描述执行:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

在这里出错了:
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第6张图片真正的问题是:configure: error: no acceptable C compiler found in $PATH

解决方法:执行 yum install gcc-c++

然后继续make 可以正常执行。

所以安装:yum

1.1 打开终端,首先安装build-essential程序包,输入命令:

apt-get install build-essential

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第7张图片已满足。
1.2 接着安装yum,输入命令:

apt-get install yum

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第8张图片1.3 安装完成,但是没有源,不能直接使用yum来安装软件,于是尝试着把fedora上的源放到ubuntu上使用。首先进入网址下载fedora-163.repo和fedora-updates-163.repo这两个文件, 并复制到/etc/yum/repos.d/目录下。
利用cd进入下载的文件夹,复制:

sudo cp fedora-163.repo /etc/yum/repos.d/
sudo cp fedora-updates-163.repo /etc/yum/repos.d/

1.4 复制完成后编辑这两个文件,将$releasever全部替换成17(其他的数字也可以,这个表示fedora的发行版本)。替换命令为:起始行,终止行s/被替换内容/替换内容/g,即

1,29s/$releasever/17/g
1,29s/$releasever/g

这时候,出现了文件只允许读,不允许写的状况。
所以打开文件(为这里用的vim),编辑结束后,加上:

:w !sudo tee %

输入密码
在这里插入图片描述一直按enter键确认
在这里插入图片描述完成编辑
1.5 最后运行命令:

yum makecache 

来生成缓存。之后就可以使用yum了,但是如果你想直接使用yum安装软件可要小心点,因为你的系统并不是fedora,最多相当于一个没有安装任何软件的fedora。

这时候出现了一个致命的错误:

Error: Cannot retrieve repository metadata (repomd.xml) for repository: fedora

在CSDN and google上查阅了大量资料,根本无济于事,误人子弟。这个问题其实就是链接打不开
下面介绍解决措施:

1.5.1 删除路径/etc/yum.repos.d/下的fedora-163.repo和fedora-updates-163.repo文件,然后在/etc/yum.repos.d目录中建立fedora.repo文件。
Tip:删除文件的命令:
强制删除文件夹并提示

sudo rm -r 文件夹名 

强制删除文件夹不提示 (最暴力)

sudo rm -rf 文件夹名

可按照配置生成器进行repo文件的生成,并根据提示保存配置,
在fedora.repo文件中输入:

[fedora]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[fedora-debuginfo]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/releases/$releasever/Everything/$basearch/debug/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[fedora-source]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/releases/$releasever/Everything/source/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[updates]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[updates-debuginfo]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/updates/$releasever/$basearch/debug/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[updates-source]
name=Fedora $releasever - $basearch
baseurl=http://mirrors.zju.edu.cn/fedora/updates/$releasever/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

显然这个baseurl不能用,所以换用国内的源(镜像站点),推荐中科大、阿里云、浙大、网易等的源。
1.5.2 查找对应的路径:
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第9张图片1.5.3 替换baseurl:

[fedora]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/x86_64/os/
[fedora-debuginfo]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/x86_64/debug/
[fedora-source]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/source/SRPMS/
[updates]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/
[updates-debuginfo]
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/x86_64/debug/
[updates-source]
name=Fedora $releasever - $basearch
baseurl=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Everything/source/SRPMS/

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第10张图片1.5.4 运行命令:

yum makecache

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第11张图片成功。
继续运行命令:

cd ORB_SLAM2
chmod +x build.sh
./build.sh

报错:
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第12张图片google上的解决措施
这实际上是Opencv的版本的问题,还记得我说过opencv版本要对应,于是下载opencv 3.4.1:
命令:

get -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip官网

安装依赖库:

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev  

在opencv-3.4.1文件夹的目录下创建编译文件夹build,进入~/opencv-3.4.4/build,执行cmake

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第13张图片执行make

sudo make

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第14张图片执行make install命令

sudo make install

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第15张图片 配置OpenCV的编译环境,目的是让系统找到OpenCV的库的路径,打开编写一个空白的文件opencv.conf

sudo gedit /etc/ld.so.conf.d/opencv.conf 

在opencv.conf中添加如下内容

/usr/local/lib  

使刚配置路径生效

sudo ldconfig  

打开bash文件,配置bash

sudo gedit /etc/bash.bashrc  

在打开的bash.bashrc的最末尾添加如下代码

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第16张图片保存关闭文件,使刚才的配置生效
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第17张图片2.安装Eigen
使用命令

sudo apt-get install libeigen3-dev

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第18张图片官网:Egien
3.进入ORB_SLAM2目录,给build.sh文件可执行权限,编译ORB-SLAM2,运行如下命令

cd ORB_SLAM2
chmod +x build.sh
./build.sh

在这里插入图片描述
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第19张图片编辑bash文件

sudo  gedit ~/.bashrc

将包含Examples/ROS/ORB_SLAM2的路径添加到ROS_PACKAGE_PATH环境变量中。打开.bashrc文件并在最后添加的内容如图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201012214541408.png#pic_center

第三步(Running):编译与调试

问题一:usleep问题(致命)
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第20张图片解决usleep问题:在ORB-SLAM2中的include文件夹里面的system.h加入#include
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第21张图片打开Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h
将以下代码:

template <typename MatrixType>
class LinearSolverEigen: public LinearSolver<MatrixType>
{ public: typedef Eigen::SparseMatrix<double, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet<double> Triplet;
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;

修改为:

template <typename MatrixType>
class LinearSolverEigen: public LinearSolver<MatrixType>
{ public:
typedef Eigen::SparseMatrix<double, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet<double> Triplet;
typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, int> PermutationMatrix;

或运行时出现如下错误
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第22张图片解决办法:在~/home/crown/Desktop/ORB_SLAM2/Examples/ROS/ORB_SLAM2/文件夹下修改CMakeLists.txt文件,在set(LIBS…)后面添加如下的一句话,井使它生效

-lboost_system

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第23张图片问题二:install cimpiler error:killed(program cciplus)
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第24张图片直接关机重启就好了。
问题三:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
在这里插入图片描述解决办法:
1.直接运行sudo chmod 777 /etc,避免出现mkdir无法创建该包的错误.,如下图
在这里插入图片描述2.自己相应文件夹下/etc/ros/rosdep/sources.list.d去创建目录 20-default.list
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第25张图片效果如下:
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第26张图片问题5.在home打开终端继续执行命令,会出现另外的错
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
在这里插入图片描述解决办法:sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
在这里插入图片描述ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第27张图片问题5:
/src/ros_rgbd.cc:35:
/home/mango/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/…/…/…/Thirdparty/g2o/g2o/types/…/core/jacobian_workspace.h:30:10: fatal error: Eigen/Core: No such file or directory
#include
^~~~~~~~~~~~
compilation terminated.
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第28张图片ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第29张图片分别将se3_ops.h、se3quat.h…等等出现问题的XXX.h文件找到,打开将里面的

#include 

改为:

#include 

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第30张图片问题6:出现error:'usleep’问题(最多的!)
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第31张图片解决办法:根据提示哪个文件有这个问题,将它找到,在引入头文件地方添加如下

#include

或者在/home/crown/ORB_SLAM2/include/system.h
添加

#include

问题7:在编译ORB-SLAM2时,出现cpp项目编译时报错: c++: internal compiler error: Killed
原因是内存不够,并且没swap,增加swap
解决办法

sudo -s
dd if=/dev/zero of=/tmp/newdisk bs=1M count=8000
du -sh /tmp/newdisk
mkswap -f /tmp/newdisk 
free -m
chmod 0600 /tmp/newdisk
swapon /tmp/newdisk
free -m

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第32张图片下载数据集
有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从下载序列并解压缩。
ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第33张图片ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第34张图片编译
PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg
我的数据集放在/home/crown/Desktop/Dataset-slam目录下

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/mango/catkin_ws/src/rgbd_dataset_freiburg1_xyz

执行以下命令。KITTIX.yaml分别将序列0到2、3和4到12 更改为KITTI00-02.yaml,KITTI03.yaml或KITTI04-12.yaml。更改PATH_TO_DATASET_FOLDER未压缩的数据集文件夹。更改SEQUENCE_NUMBER为00,01,02,…,11。
运行步骤和上面一样:

./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER

上面青色就是要修改的部分,其中“PATH_TO_DATASET_FOLDER”就是要找到你要运行的数据集的位置,你要找到你下载的数据集关键文件夹“dataset/sequences/”在哪。然后一步步执行。我保存并运行的是序列00数据,且保存在Data/KITTI目录下
所以就是

./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTI00-02.yaml Data/KITTI/data_odometry_gray/dataset/sequences/00

Tip:
1.(font)字体
infinality字体渲染

The default font is ugly. Copy Microsoft’s truetype font is not a good method, it’s nasty.(默认字体不是很好看,而且复用微软的真实类型字体不是一个好方法,这很不好。)
I use infinality. Though the website don’t update anymore.
First, download fontconfig-infinality and freetype-infinality:
(使用无限式。 虽然网站不再更新。首先,下载fontconfig-infinality和freetype-infinality)

wget http://www.infinality.net/fedora/linux/20/noarch/fontconfig-infinality-1-20130104_1.noarch.rpm
wget http://www.infinality.net/fedora/linux/20/x86_64/freetype-infinality-2.4.10-1.20120615_01.fc17.x86_64.rpm

然后使用rmp指令安装:

sudo rpm -ivh fontconfig-infinality-1-20130104_1.noarch.rpm freetype-infinality-2.4.10-1.20120615_01.fc17.x86_64.rpm 

可以手动的解决…
then, set the font renderr style using infinality script. I choose osx style. the command is:(然后选择一个风格:)

sudo /etc/fonts/infinality/infctl.sh setstyle

MONACO字体
用MONACO作为等宽字体。

wget http://jsdx.sc.chinaz.com/Files/DownLoad/font2/908.rar   # 下载MONACO字体
sudo yum install unrar         # 下载unrar:
unrar x 908.rar   # 解压
cd 908
sudo mkdir -p /usr/share/fonts/my_font
sudo mv MONACO.TTF /usr/share/fonts/my_font/
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv  # 更新字体缓存

opencv
用指令下载opencv:

yum list *opencv*

或者也可以使用合适的安装包去下载:

sudo yum install opencv-core opencv opencv-devel opencv-python

close SELinux
SELinux is useless for common people. Just close it.(SELinux是基本无用,还不如减少内存,关了它)

sudo vim /etc/selinux/config

改变目录:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled            # here we modify "enforcing" to "disabled"
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

chrome
First, download chrome. I don’t like using a repo for chrome, since every time the system updates, it speed down.

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

then use yum to download depences:

yum install redhat-lsb
yum install libXScrnSaver

now let’s install chrome:

sudo rpm -ivh google-chrome-stable_current_x86_64.rpm 

python

这里配置了python、python-devel以及pip

sudo dnf install python python-devel python-pip

然后创建pip的用户自配置文件,使用阿里云的源来加速访问,即创建并编辑~/.pip/pip.conf,内容为:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

git
git配置ssh

ssh-keygen -t rsa -C "zchrissirhcz"//注意。zchrissirhcz为用户名
//然后三次回车
cat /home/forwhat.cn/.ssh/id_rsa.pub
//复制cat出来的内容

然后到github上个人账户设置中配置SSH Keys:把cat出来的内容贴上去
vim
I use vundle to manage my vim plugins.

sudo yum install vim
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
mkdir -p workspace/gitwhat
cd workspace/gitwhat
git clone https://github.com/zchrissirhcz/dotfiles
mkdir -p ~/.vim/colors
cp molokai.vim ~/.vim/colors

then open vim and do bundle install:

:BundleInstall

fcitx输入法
不必卸载默认的ibus。

sudo yum install fcitx-pinyin
sudo yum install fcitx-configtool
sudo yum install im-chooser
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
im-chooser

弹出的对话框中选择fcitx。重启后可以使用。
配置: 使用 fcitx-configtool 进行配置。
在全局配置的快件键->显示高级选项中,我把切换激活/非激活输入法设定为左shift,输入法切换键设定为Ctrl+Space。

如果ctrl+空格无法设定,结果显示是LCtrl,也就是左Control键。这种情况是你的Ctrl+Space被别的程序捕获了,比如我在系统设置->全部设置->键盘->快捷键->打字->切换至下个输入源,这里设定为了Ctrl+Space,这里改掉,fcitx那里就可以设定Ctrl+Space来激活输入法了。

快捷键
配置开启终端快捷键
设置->键盘->快捷键->自定义快捷键->添加:

name:terminal
command:/usr/bin/gnome-terminal
#按键设定为Ctrl+Alt+T

配置截屏快捷键

mkdir ~/bin
cd ~/bin
vim screenshot

添加如下内容:

#!/bin/bash
gnome-screenshot -ai

添加软链接并添加可执行权限:

sudo ln -sf /home/chris/bin/screenshot /usr/bin/screenshot
chmod +x ~/bin/screenshot

最后到:设置->键盘->快捷键->自定义快捷键->添加:

name:screenshot
command:screenshot
#按键设定为Ctrl+Alt+Q

美化终端显示[(安装Arc GTK主题(7k+))]
1.直接在 Ubuntu 16.04 LTS 的「终端」中使用如下命令先行添加 Arc GTK theme 源之后进行安装:

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04/ /' >> /etc/apt/sources.list.d/arc-theme.list"

2.要让 Arc GTK 主题源难免正常工作并定期收到主题更新,还需要安装在终端中执行如下命令安装软件源的密钥,不然无法正常使用:

wget http://download.opensuse.org/repositories/home:Horst3180/xUbuntu_16.04/Release.key
sudo apt-key add - < Release.key

3.上面第一行代码会自动下载 Arc GTK theme repository key,第二行代码会导入并启用软件 repo,当系统提示「OK」时表示已经导入成功,此时使用如下命令便可开始安装 Arc GTK 主题:

sudo apt update
sudo apt install arc-theme

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第35张图片4.主题安装好之后,我们还是使用 Unity Tweak Tool 来对其进行激活使用。Ubuntu 16.04 LTS 的官方源中已经提供了 Unity Tweak Tool,使用如下命令进行安装:

sudo apt install unity-tweak-tool

ORB-SLAM2项目的准备工作及其程序的编译(途中解决各种疑难杂症)_第36张图片5.打开 Unity Tweak Tool 工具,在「主题」选项的 GTK 主题列表中选择喜欢的 Arc GTK 主题系列(Arc、Arc-dark 或 Arc-darker 主题)即可。

取消终端下光标闪烁

gsettings set org.gnome.desktop.interface cursor-blink false

virtualbox虚拟电脑目录的移动
比如原来放在$HOME下,现在空间不够了,但是/opt是有空间的。怎样移动过去呢?

先用命令移动整个目录到目标位置
再设置全局的虚拟电脑目录(管理-》全局设定-》默认虚拟电脑位置)
(可能要修改/etc下的一个vbox配置文件)
然后发现原来的vbox都报错了打不开 刷新也没用
在vbox主界面中删除原有的vbox
在vbox主界面 控制-》注册-》选择新位置的vdi文件
vdi文件扩容

VBoxManage modifyhd         <uuid>|<filename>     [--resize <megabytes>|--resizebyte <bytes>]

比如:

vboxmanage modifyhd fedora22.vdi --resize 20480

然后进入系统(你当然是要在关闭它时候才修改vdi文件大小的。。),发现还是原来容量,但是有了一块‵空闲区域`。
fdisk命令已经不太会用了。不过gparted很好用:

sudo yum install gparted

在终端中打开文件夹,以及在文件夹中打开终端

sudo dnf install nautilus-terminal nautilus-open-terminal

你可能感兴趣的:(图像处理,深度学习,ubuntu,linux,slam)