qpOASES在ros包中建立动态链接库
摘要:本文主要记录本人在ubuntu系统下ros包中使用qpOASES的注意事项
qpOASES库下载地址:qpOASES的安装包可以在github上下载,百度也可以搜索到
1. 安装过程中的坑
qpOASES原理在此不再介绍,相信看到这篇文章的同学也已经有所了解,如果不了解,可以看看其它博客和相关论文,这里主要记录一下我在ros包中使用qpOASES时踩过的坑。根据qpOASES库中安装手册(doc/manual.pdf)的介绍,安装过程主要分为以下几步:
- 下载
- 解压缩(如果下载的是压缩文件)
- LICENSE介绍
- 正式安装总个两行命令
4.1 cd (就是你的安装目录)
4.2 make - 运行实例检验是否安装成功:
5.1 cd /bin (我下载下来的安装包里面居然没有bin文件夹?也不知道为啥,github网页上也没有看到,所以需要自己新建一个命名为bin的空文件夹,不然安装不成功哦!)
5.2 ./example1 如果运行成果说明安装成功 - 可选项。cd /doc,doxygen doxygen.config
真正郁闷的事才刚刚出现,在ros包的cmakelist中居然链接不上qpOASES库,.cpp文件里也没法包含qpOASES的相关头文件,应该是因为上述安装过程只建立的静态的链接库。安装过程要修改一下,将上述第4步修改成以下几步
4.1 cd
4.2 cmake .
4.3 make
4.4 sudo make install
以上4个步骤顺利完成后,就可以在/usr/local/include目录下看到qpOASES文件夹和qpOASES.hpp的文件了,这个时候就可以在ros包中使用qpOASES库了,在你的程序中就可以直接#include <qpOASES.hpp>。
2. cmakelist设置
cmakelist中要做如下设置:
- set(QPOASES_INLUDE_DIRS /usr/local/include/qpOASES)
- include_directories(${QPOASES_INLUDE_DIRS})(当然,括号里面可能还有你其他的头文件路径)
- target_link_libraries里面要添加qpOASES,如target_link_libraries(qptest1 ${catkin_LIBRARIES} qpOASES)
然后编译就可以通过了
本文记录仅供参考,欢迎交流。
祝 编程愉快