TX1安装Cartographer

http://note.youdao.com/noteshare?id=ee5bb74186ffba38783a050a9040b8d5

2018.8.16 TX1安装Cartographer(最新版本的Cartographer存在各依赖库版本要求变化,所以安装以前的版本(有基本的语义数据通路))

1.TX1上Eigen版本低于3.3.4,不能安装ceres-solver库,参照网址https://www.cnblogs.com/newneul/p/8256803.html 安装3.3.4版本Eigen

2.安装1.13.0版本ceres-solver,参照网址https://blog.csdn.net/xiat5/article/details/79164059

3.安装googletest(包含gmock),github安装包https://github.com/google/googletest

4.再次编译(sh build_cartographer.bash)出现错误未识别的proto3,安装较高版本的Protobuf(3以上版本),参照github上google/protobuf及安装说明

5.修改fixed_ratio_sample.cc Line27:改为最大采样频率1 -> 1.5

6.rplidar包中rplidar.launch需要添加tf变换

7.编译cartographer和cartographer_ros,前者用catkin_carto中脚本完成——sh build_cartographer.bash,后者用catkin_make——cd catkin_ws , catkin_make

8.编译过程中可能出现c++编译内部错误,初步判断由内存不够导致,按照网址https://blog.csdn.net/fenglailea/article/details/78852236增加交换空间,首先在板子上留出2G以上空间

运行cartographer,打开kobuki底盘电源,连接雷达、底盘与终端,终端输入:

roslaunch cartographer_turtlebot turtlebot_lidar_2d.launch (包含底盘启动文件、雷达启动文件、Cartographer启动文件)

最后嵌入式机器上可能在编译cc的时候一直提示c++ 错误,大概是内存不够的意思,这个时候建议切换到具体源码下,直接用ninja来编译,出错就重启,重复此操作,直到单一源码编译通过,,不过后来网上查了下有个方法可增加虚拟内存,亲测有效:

1. 创建分区文件,大小 2G
dd if=/dev/zero of=/swapfile bs=1k count=2048000
2. 生成 swap 文件系统
mkswap /swapfile
3. 激活 swap 文件
swapon /swapfile
4. 修改 /etc/fstab 文件,新增如下内容:
/swapfile swap swap defaults 0 0

猜你喜欢

转载自blog.csdn.net/jx18080136806/article/details/81775936