大家好,今天我们聊下Jetson_TX1中Kintinous框架移植问题!这里我使用的是Ubuntu 16.04系统
由于交叉编译的问题和驱动版本的问题,x86架构的软件不能直接通过apt-get或者一键式安装。
这也就是说,我们需要重新在arm57下重新编译源码,但是在编译的过程中会涉及到交叉编译的问题。一下几点是我对Kintinous总结:
一、依赖问题
1、其实很简单,点开 build.sh 其中
把以上的内容删除 ,因为我们用的16.04系统。
2、选用opencv2.4.9 (最好用这个,不然他的相关依赖都可能需要修改)
3、pcl用apt-get 就可以
4、flann、suitespare
git clone https://github.com/sfabbro/suitesparse.git
这是一个autotool 工具,打开链接
http://dev.gentoo.org/~bicatali/distfiles/
其中要用到cholmod 、flann、suitsparseconfig、amd……直接通过 ./configure --enable-shared 生成makefile 然后make 和sudo make install
其他的正常安装即可。
5、isam库的Bug 问题
动态链接上出现没有定义isam::pose3d::dim
这里我提出一种方法:
在isamlib下生成个pose3d.cpp内容为
#include<isam/Pose3d.h>
namespace isam
{
const int Pose3d::dim;
}
重新编译下isam 生成libisam.so库
二、tx1 内存封顶问题
增加swap,可以参考我的专栏第二讲,如何增加swap。
三、总结
1、在编译到97%,容易出现内存封顶的情况
2、TX1玩Kintinuous是作死的表现,实时很差。最好使用TX2,性能上提升两倍,在CPU也很大提升!
3、如果出现类似不匹配的驱动函数(cuda),可以查看自己的cuda 的型号CUDA_ARCH_BIN 添加一个即可。
好了,如何你有什么问题不懂太明白,欢迎qq513459395!