VS2019、Cmake搭建Orocos KDL环境

VS2019、Cmake搭建Orocos KDL环境

最近要用C++写一个求六轴机器人逆解的程序,在网上找了一些资料,决定使用开源机器人库OROCOS-KDL。在花费两天的时间后,终于能在VS2019上跑起来。

主要参考内容

https://zhuanlan.zhihu.com/p/65496560

前面的过程基本和该答主一样

Eigen3源码下载

git clone https://github.com/eigenteam/eigen-git-mirror.git

KDL源码下载

git clone https://github.com/orocos/oroco

后面用mingw编译的时候使用的时用ming32-make替换make

但生成的是下面liborocos-kdl.dll.a文件,没有.lib文件。于是我只好使用VS2019来实时了。最后侥幸成功了。

VS2019、Cmake搭建Orocos KDL环境

过程如下:

orocos_kinematics_dynamics-1.3.2\orocos_kdl建立build文件夹。

VS2019、Cmake搭建Orocos KDL环境

打开Cmake设置如下:

VS2019、Cmake搭建Orocos KDL环境

点击Finish点击Configure,Cmake配置如下

VS2019、Cmake搭建Orocos KDL环境

主要是设置EIGEN3_INCLUDE_DIR:选择eigen3的路径;CMAKE_INSTALL_PREFIX:这个是build后includelib文件所在的地方,默认在C盘,网上说可能因为权限的原因写不进去,所以最好改成其他路径。

打开build文件夹中的orocos_kdl.sln

VS2019、Cmake搭建Orocos KDL环境

依次点击build(生成)->Batch Build(批生成)

VS2019、Cmake搭建Orocos KDL环境

选择选择如下,点击build,等待。

VS2019、Cmake搭建Orocos KDL环境

生成成功:

VS2019、Cmake搭建Orocos KDL环境

查看生成的includelib文件

VS2019、Cmake搭建Orocos KDL环境

测试

用VS2019创建C++空项目

包含头文件

VS2019、Cmake搭建Orocos KDL环境

因为Orocos-KDL依赖Eigen3,所以项目也要包含eigen3的头文件。如何在VS2019使用eigen3,网上有许多帖子,就不再赘述了。

这里我使用的是相对路径,项目文件结构如下。其中orocos_kdl文件夹下的includelib就是刚才生成的。

VS2019、Cmake搭建Orocos KDL环境

添加库目录

VS2019、Cmake搭建Orocos KDL环境

最后,如果我没有猜错的话,这里填的就是生成的lib的文件的名字,我在Debug模式下所以添加orocos-ldld.lib文件,在release模式下应该添加orocoslib.lib吧?没有添加这一名字,运行例子的时候会出现链接错误。这也是我使用mingw生成lib文件无法使用的原因。

VS2019、Cmake搭建Orocos KDL环境

VS2019、Cmake搭建Orocos KDL环境

在最初下的orocos_kdl/examples的三个例子粘贴到项目里

VS2019、Cmake搭建Orocos KDL环境

trajectory_example.cpp

会报错M_PI未定义,在main函数前自己定义就行

VS2019、Cmake搭建Orocos KDL环境

运行结果

VS2019、Cmake搭建Orocos KDL环境

geometry.cpp

同样是M_PI未定义

VS2019、Cmake搭建Orocos KDL环境

运行结果

VS2019、Cmake搭建Orocos KDL环境

chainiksolverpos_lma_demo.cpp

由于这个cpp文件包含boost类和一些头文件如model.h不在include文件夹内,我现在尚未跑起来。

最后,因为我也是刚接触orocos-kdl,许多东西还要开始学习,希望大家不吝赐教。谢谢!