orocos_kdl windows 环境搭建
orocos_kdl windows 环境搭建
牺牲了一个周末,总算是搞出来了,感觉这写代码原本是在linux上跑的,强行在windows上很费事,强烈建议在linux上玩。
orocos 项目是开源机器人控制软件,详见:http://www.orocos.org/
包含以下几个部分,这篇文章主要用于学习运动学与动力学库,简称KDL。
源码可以从github下载:
git clone https://github.com/orocos/orocos_kinematics_dynamics.git
有源代码之后可以查看、运行demos,但首先需要搭建开发环境,搭建环境我也费了很大劲,由于全网都没有一个完整的教程,所以秉承开源精神将我搭建环境的方法分享出来。
平台:win7+visual studio 2015;
需要:CMake,boost,eigen3;(自己去下载,网上都有安装教程这里不啰嗦了)
git下来的orocos_kdl源码文件夹中有:
在进行cmake之前需要修改一下orocos_kdl中的CMakeLists.txt的内容,因为不修改的话cmake会报错EIGEN3_INCLUDE_DIR没有定义。在这个之前还需要将下载的eigen-eigen-5a0156e40feb文件夹放入orocos_kinematics_dynamics-1.3.1文件夹中,最好改名为eigen3。
这一步之后,还需要修改orocos_kdl\models\CMakeLists.txt里的内容,不然的话VS编译的时候会显示“无法打开文件orocos-kdl-models.lib”。
到这里之后就可以打开cmake-gui.exe了,在orocos_kdl中新建文件夹build,然后按下图的1-6操作,出现第7步说明成功了。注意这里一定要选BUILD_MODELS,不然后面只有一个example正常;ENABLE_TESTS是单元测试,选了cmake会报错,缺少支持的库;KDL_USE_NEW_TREE_INTERFACE不知道是啥,反正别选。这些都是坑,以后再填。
到这里之后就可以双击打开工程文件orocos_kdl.sln了。编译一下发现100多个报错,大概是:M_PI未定义、打不开文件<boost/timer.hpp>等。由于VS的<math.h>里面没有定义M_PI和M_PI_2等,所以这个可以手动定义:#define M_PI 3.14159265358979323846,只在几个demos里面会出现这个问题;打不开文件<boost/timer.hpp>是因为没装boost库,安装一下之后,一定要做这一步:视图->其他窗口->属性管理器,在属性管理器里面双击:
出现属性页窗口后:
然后:
之后点应用就ok了。
做完这个之后,再完整编译一次整个工程,一般会编译成功。
有三个demos可以运行:geometry、trajectory_example、chainiksolverpoa_lma_demo。
geometry主要是用于熟悉库中用于表示三维点的位置和姿态的方法;
trajectory_example是机械臂笛卡尔空间的轨迹规划;
chainiksolverpoa_lma_demo是逆解,使用了一个典型的机器人模型。
geometry的运行结果如下:
trajectory_example的运行结果如下:
chainiksolverpoa_lma_demo的运行结果如下:
这里面还有很多坑没填完,所以最好是在linux下搞这个,如果有在windows在搞过的请赐教!