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来实时了。最后侥幸成功了。
过程如下:
在orocos_kinematics_dynamics-1.3.2\orocos_kdl
建立build
文件夹。
打开Cmake
设置如下:
点击Finish
点击Configure
,Cmake
配置如下
主要是设置EIGEN3_INCLUDE_DIR
:选择eigen3的路径;CMAKE_INSTALL_PREFIX
:这个是build后include
、lib
文件所在的地方,默认在C盘,网上说可能因为权限的原因写不进去,所以最好改成其他路径。
打开build
文件夹中的orocos_kdl.sln
依次点击build
(生成)->Batch Build
(批生成)
选择选择如下,点击build
,等待。
生成成功:
查看生成的include
、lib
文件
测试
用VS2019创建C++空项目
包含头文件
因为Orocos-KDL
依赖Eigen3
,所以项目也要包含eigen3的头文件。如何在VS2019使用eigen3,网上有许多帖子,就不再赘述了。
这里我使用的是相对路径,项目文件结构如下。其中orocos_kdl
文件夹下的include
和lib
就是刚才生成的。
添加库目录
最后,如果我没有猜错的话,这里填的就是生成的lib的文件的名字,我在Debug模式下所以添加orocos-ldld.lib
文件,在release
模式下应该添加orocoslib.lib
吧?没有添加这一名字,运行例子的时候会出现链接错误。这也是我使用mingw生成lib文件无法使用的原因。
在最初下的orocos_kdl/examples
的三个例子粘贴到项目里
trajectory_example.cpp
会报错M_PI
未定义,在main函数前自己定义就行
运行结果
geometry.cpp
同样是M_PI
未定义
运行结果
chainiksolverpos_lma_demo.cpp
由于这个cpp文件包含boost
类和一些头文件如model.h
不在include
文件夹内,我现在尚未跑起来。
最后,因为我也是刚接触orocos-kdl
,许多东西还要开始学习,希望大家不吝赐教。谢谢!