WiFi SLAM包配置记录

WiFi SLAM包配置记录

readme的内容:

1. go to src/exlib/carmen/src and run ./configure,
2. when asked to select the laser info, please use NO,
3. when asked to choose the robot, select 6
4. compile this folder
5. go back to exlib and try to compile the rest #编译剩下的其他包 
6. wifi slam is located in carmenx/ambisense_slam/example_wifi_slam

编译顺序:

wifislam-src-exlib-carmen
安装csparse
wifislam-src-exlib-g2o
wifislam-src-exlib-GeographicLib-1.44
wifislam-src-exlib-gzstream
wifislam-src-exlib-libdistance-0.2.2

wifislam-src-exlib-newmat
#这个包会遇到缺少文件的问题,缺少的文件放在missingfiles里了
wifislam-src-exlib-xstream 
# 这个包刘老师给的编译不了,修改不来makefile 找了一个可以编译的版本放在missingfiles里了
wifislam-src-exlib
wifislam-src-utils
#这里编译完之后,会在wifislam-lib里出现一个静态库需要放到/usr/local/lib/下
wifislam-src
# 不用管编译是否成功 虽然写文章的时候编译成功了 但是不能install
wifislam-src-carmenx # 好像上面的编译成功了这条就编译成功了

1.carmen

在这里插入图片描述在这个界面运行./configure

新系统会需要安装几个包:GTK2.0Canlib
GTK2.0安装:

sudo apt-get install build-essential
#非必须 sudo apt-get install gnome-core-devel 
sudo apt-get install pkg-config
sudo apt-get install devhelp
sudo apt-get install libglib2.0-doc libgtk2.0-doc
apt-get install glade libglade2-dev #非必须
sudo apt-get install libgtk2.0-dev
# 或者 apt-get install libgtk2.0*,

安装Kvaser Canlib:

sudo apt-get install build-essential 
wget --content-disposition "https://www.kvaser.com/downloads-kvaser/?utm_source=software&utm_ean=7330130980754&utm_status=latest"
# 把这个包加入到MissingFiles里了
tar xvzf linuxcan.tar.gz
cd linuxcan
make 
sudo make install 

然后会提示你有些库还是没有,其实不安装也可以,如果非要安装就按照下面的步骤一步一步来:
在这里插入图片描述

首先是 tcpd.h :

sudo apt-get install libwrap0-dev

然后是 jpeglib.h:
下载地址 选择 jpegsrc.v9e.tar.gz 我也放入MissingFiles里了
然后解压后:

./configure
sudo make
sudo make install

Wand库:

sudo apt-get install libmagickwand-dev

Java库安装了也不行不知道怎么安装所以跳过…
安装之前需要先安装bisonFLEX
先bison再FLEX
bison:

# 法1:
sudo apt-get install bison

# 法2: 下载后编译安装

FLEX:

#法1:
sudo apt-get install flex

#法2:下载解压编译
./autogen.sh
./configure
sudo make
sudo make install

doxygen:

sudo apt-get install git
sudo apt install cmake
git clone https://github.com/doxygen/doxygen.git
# 我也把这个包放进MissingFiles了
# 在doxygen解压的目录下:
cd doxygen/
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make -j12
make install

然后是SWIG:
需要先安装pcre

# 文件在missingfiles里,需要下载的话用迅雷打开ftp链接即可
./configure
sudo make 
sudo make install

swig:

# 文件在missingfiles里,也可以自己下载
./configure
sudo make 
sudo make install

其他前置库:
boost库:

sudo apt-get install libboost-all-dev

mysql库:

sudo apt-get install libmysql++-dev

这个包其实挺好编译的:

./congfigure
# 让你选是否安装python二进制文件时选否
# 让你选是否安装python二进制文件时选否
# 让你选是否安装python二进制文件时选否 否则会报错
# 然后激光巴拉巴拉也选否
# 然后机器人型号选6
sudo make ##这里尽量不要多线程make 会报错
sudo make install

其它的也可以按照他们的指定的readme就编译好了
但是就是newmat包 太老了 很多文件缺失 而且编译会出错
在这里插入图片描述

2.g2o

先安装依赖:

sudo apt-get install cmake
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev
sudo apt-get install qtdeclarative5-dev
sudo apt-get install qt5-qmake
sudo apt-get install libqglviewer-dev #换成了 libqglviewer-headers

然后安装csparse:
去下载一个 suitesparse包:下载地址 也可以用missingfiles里的
下载下来之后 只在csparse包里 编译
在这里插入图片描述编译命令:

make library
# 然后进入 Lib文件夹
cd Lib/
sudo cp libcsparse.a /usr/local/lib/

这样可以只编译源文件 就会快一些 编译完之后 会生成

mkdir build
cd build
cmake ../
sudo make -j6 #加速编译
sudo make install

偶尔会出现的问题:
1.如果没有安装libsuitesparse-dev 或 csparse包 可能会导致最后编译不通过
解决方法:重新安装一遍依赖然后重新编译一次g2o
2.编译时出现c++: internal compiler error: Killed (program cc1plus)
问题分析:Ubuntu虚拟机内存不足
解决办法:加内存

3.GeographicLib-1.44

./congfigure
sudo make -j6 
sudo make install

4.gzstream

sudo make 
sudo cp libgzstream.a /usr/local/lib/

5.libdistance-0.2.2

sudo make
sudo cp libdistance.a /usr/local/lib/

6.xstream

# 使用missingfiles里的替换掉原来工程里的
sudo make
cd src/.lib/
sudo cp libxstream.a /usr/local/lib/

7.newmat

安装gcc4.8因为需要

sudo apt-get install gcc-4.8   
sudo apt-get install g++-4.8  

首先补充缺失的文件:

sudo apt-get install libnewlib-dev
sudo ln -s /usr/include/locale.h /usr/include/xlocale.h
sudo ln -s /usr/include/newlib/sys/_sigset.h /usr/include/x86_64-linux-gnu/bits/sigset.h
sudo cp huge_val.h huge_valf.h huge_vall.h inf.h nan.h /usr/include/x86_64-linux-gnu/bits/

然后再把几个特定文件编译好:

g++ -c newmat9.cpp -o newmat9.o
g++ -c newfft.cpp -o newfft.o
g++ -c myexcept.cpp -o myexcept.o
g++ -c newmatex.cpp -o newmatex.o
sudo cp newmat9.o newfft.o myexcept.o newmatex.o .obj/
### 编译好之后放进`/.obj`文件夹

编译好之后的静态库文件会出现在:/wifislam/lib/文件夹下

sudo cp libnewmat.a /usr/local/lib/

至此,exlib下的全部编译安装完了,因此需要到exlib下make一下,不管成功或失败


然后,按照前面编译顺序,依次往下编译即可,编译完成之后就可以使用wifislam了

关于 global.h没有的方法:

是因为在deepin下 没有mysql的包导致的,解决方法:
利用apt-cache search libmysql 检查安装源中类似的包
然后安装libmysql++-dev即可 :sudo apt-get install libmysql++-dev

关于编译WiFislam时 缺少libcsparse包

关于xstream.a

法1:直接下载一个可以编译的包 直接去github上好像就可以搜到 然后把编译成功的 .a文件放到/usr/local/lib里面
补充:已经把可以编译通过的包放进missingfiles了
法2:直接下载.a文件放到文件夹/usr/local/lib

最后编译

在这里插入图片描述
大功告成。

总结

后来发现,主要的方法就是把各个小包编译成功后生成的库文件放到/usr/local/lib 文件夹下 就可以编译成功了。

其他:有缺失的linux文件(库)可以上这个链接寻找一下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值