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;
}

在這裏插入圖片描述
可以看到程序正常運行,環境搭建問題解決√

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