FCL碰撞检测开源库的安装和链接

简介

  FCL是一个用于碰撞检测和碰撞可能性估计的开源库,经常和SLAM中的八叉树地图Octomap一起在路径规划中使用。

下载

  FCL官网提供了多种下载的方式,第一种是下载ros中的FCL库,但是fuerte对应的是Ubuntu12.04,而我尝试着下载melodic版本的FCL,却被告知没有找到软件源。因此建议使用第二种方式,也即在github上下载。github的地址:https://github.com/flexible-collision-library/fcl

  值得注意的是,github网站上有FCL库的多个版本,从0.3.0到0.7.0,而从0.6.0开始FCL的开发者对FCL库的目录、代码等都做了修改,导致有点面目全非。有些路径规划的源代码用的就是FCL库的历史版本,如果使用新版本编译,就会报错,诸如头文件目录不对、函数参数列表不正确等等的错误。

  如果想要下载历史版本,可以点击网页右边的releases,进去后选择历史版本的assets,便可以下载zip或者tar.gz的压缩包。如下图: 

  目前FCL库的历史版本只能下载压缩包,无法使用git clone -b version来下载。如果想下载最新版本,则直接键入:

git clone https://github.com/flexible-collision-library/fcl.git

安装

  FCL库的安装步骤较为简单,只需执行以下步骤:

cd fcl
mkdir build
cd build
cmake ..
make
sudo make install

  最后一步值得注意,它会把FCL的静态库文件放到usr文件夹中。

链接FCL库

  主要是CMakeLists.txt中的引用比较麻烦。一开始以为按部就班三部曲:find_package、include_directories、target_link_libraries即可。但是在生成可执行文件时,总是报“xx函数未定义的引用”的错。网上也说了这是识别不了函数实现的cpp文件的原因。但是具体怎么写还是不清楚。最后摸索出来只需要多一步link_libraries,直接给编译器指定静态库绝对路径。因此FCL库的引用如下:

find_package(FCL REQUIRED)
include_directories(${FCL_INCLUDE_DIRS})
link_libraries("/usr/local/lib/libfcl.so.0.5.0" "/usr/local/lib/libfcl.so.7" "/usr/local/lib/libfcl.so")

这里指定了绝对路径后target_link_libraries中可以不用写。link_libraries中的路径可以在刚才执行sudo make install时看到:

   至此FCL库链接完毕。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值