前言:搞工业机器人研究的,很少有不知道KDL的吧,机器人的正、逆运动学求解是一个非常重要的内容。
KDL源码编译安装
首先在github上下载KDL的最新源码,接着通过手动编译安装.
cd orocos_kinematics_dynamics-1.4.0/orocos_kdl
mkdir build && cd build
cmake -DCMAK_BUILD_TYPE=Release ..
make -j4
sudo make install
测试KDL是否安装成功
这里,我们来创建一个hello_kdl项目(毕竟,学习编程,从Hello World开始)
CMakeLists.txt文件的内容如下:
cmake_minimum_required(VERSION 2.8)
project(hello_kdl)
find_package(orocos_kdl REQUIRED)
include_directories(${orocos_kdl_INCLUDE_DIRS})
add_executable(${PROJECT_NAME} "main.cpp")
target_link_libraries(${PROJECT_NAME} ${orocos_kdl_LIBRARIES})
main.cpp文件内容如下:
#include <iostream>
#include <kdl/frames.hpp>
//using namespace KDL;
using namespace std;
int main(int argc, char** argv)
{
// 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;
}
运行结果为:
1;2;3;
0;0;0
0 0 0
0 0