OROCOS之KDL(1)—— windows环境搭建篇





注意:以下配置有缺陷,非完美支持,留坑待填,请绕道


0. 说明

  • IDE环境:Qt 5.12
  • 编译器:MinGW
  • 系统:Windows 10

之前有网友说这个框架只适合在ubuntu下玩,我不太同意这个观点,这就是个C++库嘛,能正常编译不就行了吗?

1. 依赖库的版本查看

KDL库是依赖与Eigen库的,不多赘述,直接通过KDL库中的CMakeList文件查看Eigen的版本信息。

在这里插入图片描述
在这里插入图片描述

既然文件里说了,Eigen3的版本为3.1.2及更高,保险起见,就用3.1.2的版本。

下载完,解压文件夹,待用。

2. 环境配置

CMake的配置方式太麻烦,新手容易出问题,我们直接上个简单粗暴的方法(当然,简单粗暴也就意味着可能会存在一些问题),使用qmake进行配置。

直接在*.pro文件中加入:

# 注意:根据自己的实际情况修改

INCLUDEPATH += G:\CodeBase\eigen_3_1_2
INCLUDEPATH += G:\CodeBase\orocos_kdl

3. 测试

#include <iostream>
#include <Eigen/Dense>
#include <src/frames.hpp>

using namespace Eigen;
using namespace KDL;
using namespace std;

int main()
{
//--------   Eigen测试 ---------
    Matrix2d a;
    a << 1, 2,
    3, 4;

    MatrixXd b(2,2);
    b << 2, 3,
    1, 4;

    std::cout << "a + b =\n" << a + b << std::endl;
//------------ KDL测试 -----------
//    Vector v = Vector(1,2,3);
    KDL::Vector v1(1,2,3); //隐式创建对象
    for(int i=0; i<3; ++i){
        cout<<v1[i]<<";";
    }

    cout<<"\n";
    KDL::Vector v0 = KDL::Vector::Zero(); //显式创建对象
    KDL::Vector vec; //隐式创建对象,调用默认构造函数,成员数据被初始化为0
    cout<<vec.x()<<";"<<vec.y()<<";"<<vec.z()<<"\n";
//    std::cout<<v.data[0]<<std::endl; //获取数组的第一个元素
    for(int i=0; i<3; ++i){
        cout<<v0(i)<<" "; //循环输出数组的元素
    }
    cout<<"\n";
    cout<<v0.x()<<" "; //获取数组的第一个元素
    cout<<v0[0]; //获取数组的第一个元素

    return 0;
}

在这里插入图片描述
可以看到程序正常运行,环境搭建问题解决√

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章