ROS kinetic下laser_scan_matcher 的安装

参考 :https://blog.csdn.net/zhu751191958/article/details/80165925
在开始只下载scan_tool的时候,执行catkin_make,会出现一堆报错,其中就有找不到csm包。经过查询实验,只用解决csm包就能正确catkin_make。整个步骤大概分为三步——安装csm,修改csm,安装scan_tool,修改scan_tool。

根据上述链接:

csm部分

在工作空间上(我是在/ros_ws下新建了csm_ws和/scantool_ws两个工作空间,放在一个也可以的)

// 进入~/ros_ws/csm_ws/src
cd /ros_ws/csm_ws/src
git clone https://github.com/AndreaCensi/csm.git
sudo gedit ~/.bashrc
在最后添加
export 	PKG_CONFIG_PATH=/home/ocean/ros_ws/csm_ws/src/csm/sm/pkg-config

然后修改一些文件内容:

在文件/home/ocean/ros_ws/csm_ws/src/csm/sm/csm/laser_data_json.h中,将头文件引用里
#include <json-c/json.h> 和 #include <json-c/json_more_utils.h>
分别改为
#include "/home/ocean/ros_ws/csm_ws/src/csm/sm/lib/json-c/json.h"
#include "/home/ocean/ros_ws/csm_ws/src/csm/sm/lib/json-c/json_more_utils.h respectively"
在文件/home/ocean/ros_ws/csm_ws/src/csm/sm/csm/hsm/hsm_interface.h中,将头文件引用里
#include <options/options.h> 
改为#include "/home/ocean/ros_ws/csm_ws/src/csm/sm/lib/options/options.h"
在文件/home/ocean/ros_ws/csm_ws/src/csm/sm/csm/json_journal.h中,将头文件引用里
#include <json-c/json.h> 和 #include <json-c/json_more_utils.h>
分别改为
#include "/home/ocean/ros_ws/csm_ws/src/csm/sm/lib/json-c/json.h"
#include "/home/ocean/ros_ws/csm_ws/src/csm/sm/lib/json-c/json_more_utils.h respectively"
在文件/home/ocean/ros_ws/csm_ws/src/csm/sm/csm/math_utils_gsl.h中,将头文件引用里
#include <egsl/egsl.h> 
改为#include "/home/ocean/ros_ws/csm_ws/src/csm/sm/lib/egsl/egsl.h"

然后在csm_ws里执行catkin_make

cd ~/ros_ws/csm_ws
catkin_make
sudo gedit ~/.bashrc
在最后添加 
source ~/ros_ws/csm_ws/devel/setup.bash
export PKG_CONFIG_PATH=/home/ocean/ros_ws/csm_ws/src/csm/sm/pkg-config
保存退出
source ~/.bashrc

至此,csm的安装和修改结束。

scan_tool部分

进入scan_tool的工作空间,下载源码,catkin_make

cd ~/ros_ws/scantool_ws/src
git clone https://github.com/ccny-ros-pkg/scan_tools.git
cd ..
catkin_make

报错,找不到csm包。
修改文件

/home/ocean/ros_ws/scantool_ws/src/scan_tools/laser_scan_matcher/include/laser_scan_matcher/laser_scan_matcher.h中,将头文件引用里
#include <csm/csm_all.h> 
改为#include "/home/ocean/ros_ws/csm_ws/src/csm/sm/csm/csm_all.h"

执行catkin_make
若是报错 /usr/bin/ld: 找不到 -lcsm-static
则:

执行locate libcsm 并且把libcsm-static.a复制到/usr/local/lib中
ocean@ocean-computer:~$ locate libcsm
/home/ocean/ros_ws/csm_ws/devel/lib/libcsm-static.a
/home/ocean/ros_ws/csm_ws/devel/lib/libcsm.so
ocean@ocean-computer:~$ sudo cp -r /home/ocean/ros_ws/csm_ws/devel/lib/libcsm-static.a /usr/local/lib/

我在树莓派中发现locate libcsm 不返回任何东西这时:

直接进入/home/ocean/ros_ws/csm_ws/devel/lib/
把libcsm-static.a复制到/usr/local/lib中
cd ~/ros_ws/csm_ws/devel/lib/
sudo cp -r libcsm-static.a /usr/local/lib/

然后 在scanntool_ws中执行catkin_make 成功通过,再添加到环境变量中,完成。

若有问题,请直接评论联系

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值