OROCOS之KDl库在Linux系统下安装学习记录:01

OROCOS之KDL库在Linux系统下安装学习记录:01

OROCOS即open robot control softward的缩写,方便机器人开发人员快速开发机器人软件模块。kdl库在linux系统下安装比较简单,下边将详述安装过程。

0.KDL库在linux系统下所需的各种源码包

KDL库依赖于c++中的eigen库以及boost库,所以需要先下载这三个库的源码(linux系统下下载对应的格式)。最好将三个库的源码放在同一个目录下,方便找的同时也为了编译顺利通过,防止不可控的事情发生。(不过在后续的测试过程中发现,eigen库和boost库源码包似乎没有用到,因为linux系统下可以利用终端命令直接安装eigen库和boost库,后续会有介绍。但是最好还是下载源码包)
Eigen库源码下载地址:
https://eigen.tuxfamily.org/index.php?title=Main_Page
boost库源码下载地址
https://www.boost.org/
KDL源码下载
https://github.com/orocos/orocos_kinematics_dynamics

1.安装预处理

在第0步将各个源码安装包下载好放在linux系统下某个目录之后,打开终端命令行窗口,
No1:输入:sudo apt-get update
(用于更新缓存)
No2:输入:sudo apt-get install libeigen3-dev libcppunit-dev
(用于下载eigen库和cppunit库)
No3:输入:sudo apt-get install libboost-dev
(用于下载boost库)
No4:输入:sudo apt-get install doxygen graphviz
(用于安装“Doxygen”和“Graphviz”来生成api文档)
注1:正是因为执行了上述No2、No3两步操作,所以第0步中所下载的eigen库和boost库源码可能没用上
注2:eigen库和boost库的默认安装路径为:/usr/include/eigen3,/usr/include/boost,记住这些库编译的位置可以到时候单独使用它们哦。

2.正式安装开始

No1:进入之前下载好的kdl库源码所在的目录:
(我的kdl源码包所在的目录是:\home\file_download\orocos_kinematics_dynamics-master)
cd home
cd file_download
cd orocos_kinematics_dynamics-master
No2:进入源码包中的orocos_kdl文件夹下
cd orocos_kdl
No3:建立一个新的文件夹build,使得编译生成的文件和源文件区分开来
mkdir build
No4:进入新建的这个文件夹
cd build
No5:在build文件夹下边执行ccmake …操作
ccmake …
之后会出现如下界面
在这里插入图片描述通过enter键,将上述选项中的
BUILD_MODELS 改为ON
CMAKE_BUILD_TYPE 改为Release
ENABLE_EXAMPLES 改为ON
ENABLE_TESTS 改为ON
此处建立将CMAKE_INSTALL_PREFIX 默认的/usr/local/改为/usr/local/kdl,这样在以后使用kdl库的时候,和其它编译库分开,加上kdl字样显眼容易找到。
No.6:按照提示
点击键盘c键,配置之前的修改,
之后点击g键,从而生成配置信息
No.7:执行命令
make
No.8:执行命令
sudo make install
No.9:执行命令
make check
No.10:执行命令
make docs

3.安装完成

安装完成之后,bulid文件夹下的examples文件夹会生成三个可执行文件,1、chainiksolverpos_lma_demo
2、geometry
3、 trajectory_example
通过:
./chainiksolverpos_lma_demo
./geometry
./ trajectory_example
kdl库自带的三个例子完成编译
在这里插入图片描述在这里插入图片描述在这里插入图片描述

要在 CPP 使用 Orocos KDLKDL Parser,需要先安装 Orocos KDL KDL Parser 。下面是安装步骤: 1. 安装 Orocos KDL : ``` sudo apt-get install liborocos-kdl-dev ``` 2. 安装 KDL Parser : ``` sudo apt-get install libkdl-parser-dev ``` 安装完成后,可以在 CPP 使用这两个。使用 Orocos KDLKDL Parser 的示例代码如下: ```cpp #include <kdl/chain.hpp> #include <kdl/chainfksolver.hpp> #include <kdl/chainfksolverpos_recursive.hpp> #include <kdl/chainjnttojacsolver.hpp> #include <kdl_parser/kdl_parser.hpp> int main(int argc, char** argv) { // Load the robot description from the parameter server. std::string robot_description; ros::param::get("robot_description", robot_description); // Parse the robot description into a KDL tree. KDL::Tree robot_kdl; if (!kdl_parser::treeFromString(robot_description, robot_kdl)) { ROS_ERROR("Failed to construct KDL tree from robot description."); return 1; } // Create a solver for computing the forward kinematics of the robot. KDL::Chain robot_chain; robot_kdl.getChain("base_link", "end_effector_link", robot_chain); KDL::ChainFkSolverPos_recursive fk_solver(robot_chain); // Compute the forward kinematics of the robot for a given joint configuration. KDL::JntArray joint_positions(robot_chain.getNrOfJoints()); for (size_t i = 0; i < robot_chain.getNrOfJoints(); ++i) { joint_positions(i) = i * 0.1; } KDL::Frame end_effector_pose; fk_solver.JntToCart(joint_positions, end_effector_pose); // Create a solver for computing the Jacobian of the robot. KDL::ChainJntToJacSolver jac_solver(robot_chain); // Compute the Jacobian of the robot for a given joint configuration. KDL::Jacobian jacobian; jac_solver.JntToJac(joint_positions, jacobian); return 0; } ``` 这段代码演示了如何使用 Orocos KDLKDL Parser 实现机器人的正运动学和雅克比矩阵计算。需要注意的是,这段代码是在 ROS 编写的,如果在其他环境使用,需要根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值