KDL与Eigen数据转换
来源:互联网 发布:网络大电影分析 编辑:程序博客网 时间:2024/06/07 04:38
在ROS使用过程中,KDL和Eigen是使用比较多的两个库了,两个库都各有优势。
比如KDL是针对机器人运动学的,可以用来求解正逆向运动学,速度、雅克比矩阵等,也支持力的表述,很方便,但对矩阵运算却不是那么方便,Eigen有着强大的矩阵计算能力。其实KDL内部有些数据结构也是采用Eigen的,比如JntArray,它的成员data就是一个VectorXd。
在前几天使用过程中,需要转换数据类型,有点懒不想自己写,就查了一下,还真的查到了一个:eigen_conversions https://github.com/ros/geometry .
使用的时候需要包含头文件 #include <eigen_conversions/eigen_kdl.h>
这个头文件里包含的函数有:
void quaternionKDLToEigen(const KDL::Rotation &k, Eigen::Quaterniond &e); /// Converts an Eigen quaternion into a KDL rotation void quaternionEigenToKDL(const Eigen::Quaterniond &e, KDL::Rotation &k); /// Converts a KDL frame into an Eigen Affine3d void transformKDLToEigen(const KDL::Frame &k, Eigen::Affine3d &e); /// Converts a KDL frame into an Eigen Isometry3d void transformKDLToEigen(const KDL::Frame &k, Eigen::Isometry3d &e); /// Converts an Eigen Affine3d into a KDL frame void transformEigenToKDL(const Eigen::Affine3d &e, KDL::Frame &k); /// Converts an Eigen Isometry3d into a KDL frame void transformEigenToKDL(const Eigen::Isometry3d &e, KDL::Frame &k); /// Converts a KDL twist into an Eigen matrix void twistKDLToEigen(const KDL::Twist &k, Eigen::Matrix<double,6,1> &e); /// Converts an Eigen matrix into a KDL Twist void twistEigenToKDL(const Eigen::Matrix<double,6,1> &e, KDL::Twist &k); /// Converts a KDL vector into an Eigen matrix void vectorKDLToEigen(const KDL::Vector &k, Eigen::Matrix<double,3,1> &e); /// Converts an Eigen matrix into a KDL vector void vectorEigenToKDL(const Eigen::Matrix<double,3,1> &e, KDL::Vector &k); /// Converts a KDL wrench into an Eigen matrix void wrenchKDLToEigen(const KDL::Wrench &k, Eigen::Matrix<double,6,1> &e); /// Converts an Eigen matrix into a KDL wrench void wrenchEigenToKDL(const Eigen::Matrix<double,6,1> &e, KDL::Wrench &k);这里面有常见需要用到的类型转换,可以轻松将KDL的数据转为Eigen的数据结构,从而方便进行矩阵运算。
阅读全文
0 0
- KDL与Eigen数据转换
- Eigen::Matrix4f与Eigen::Affine3f互相转换
- sfkasnlkfaslkdasjkldjas;kdl
- 使用“外部”数据来初始化openCV对象(Eigen对象与openCV对象的相互转化)
- Eigen
- Eigen
- Eigen与Malab函数对照
- Eigen与Matlab函数对应
- ubuntu eigen 安装与使用
- Eigen与matlab的比较
- ubuntu eigen 安装与使用
- ubuntu eigen 安装与使用
- Eigen局部坐标系和世界坐标系转换
- 与、的数据转换
- 数据转换与性能
- 数据转换与验证
- Eigen与Matlab语法及语义辞典
- cuda与Eigen不兼容的解决方案
- SpringMVC随笔——认识拦截器
- mybatis 的<choose> <when>标签和<if test >标签的区别
- VirtualBox克隆CentOS之后网络的配置
- js关闭当前页面/关闭当前窗口/移动端 代码
- Unity检测设备网络是否链接 链接的是否是wifi
- KDL与Eigen数据转换
- python 破解并解压zip压缩文件
- ubuntu16.04安装最新版本的wine
- BD2509
- 优雅的删除索引(visible)
- DNS域名解析
- Linux中僵死进程
- Java 方法的隐式参数
- 液晶屏种类