大家好,我是小鱼,最近因为工作上的需要,把自己一两年前做的开源库又进行了维护,新增了点云坐标转换功能,小鱼测试速度可以嗖嗖的.再次分享给大家.
这个库功能和ROS的TF相似,但完全基于Eigen实现,不用像ROS那样需要很多依赖,在自己开发机器人和导航系统的时候会派上用场.
开源地址1:https://gitee.com/ohhuo/transforms3d_cpp 开源地址2:https://github.com/fishros/transforms3d_cpp
基于Eigen的坐标转换库-TransForms3d- 实现一个更强大的坐标转换组,可以进行坐标关系推算,解放你的笔头和双手
- 增加点云转换函数,可以将点云从一个坐标系转到任意一个关联坐标系
- 实现欧拉角与旋转矩阵的互相转换,欧拉角到四元数的转换
- 实现四元数与旋转矩阵的互相转换,四元数到欧拉角的转换
- 实现通过齐次矩阵合成与转换
Git:仓库地址 | Wiki:函数列表
一、安装与使用 1.源码引入复制trans_forms_group.cpp
,trans_forms.cpp
,transforms3d.h
到你的工程即可
git clone https://gitee.com/ohhuo/transforms3d_cpp.git
cd transforms3d_cpp
mkdir build && cd build
cmake ..
sudo make install
sudo ldconfig
3.使用样例
例子1:利用TransformsGroup进行手眼矩阵估算
/*
* @Descripttion:
* @Author: sangxin
* @Date: 2021-05-01 21:04:19
* @LastEditTime: 2021-05-02 23:39:20
*/
#include
#include
#include
using namespace std;
using namespace Eigen;
#include "gtest/gtest.h"
TEST(TestTransFormGroup, BaseFindPath) {
/* base@grapper */
Matrix4d Tbg =
TransForms::ComposeEuler(-0.544, -0.203, -0.037, 180, 0.00000, 140);
/* camera@maker*/
Matrix4d Tcw = TransForms::ComposeEuler(0.020, -0.040, 0.300, 0, 0, -45);
/* base@bottle */
Matrix4d Tbw = TransForms::ComposeEuler(-0.663, -0.193, -0.231, -180, 0, 140);
TransFormsGroup tfg;
tfg.pushTransForm("base", "grapper", Tbg);
tfg.pushTransForm("camera", "bottle", Tcw);
tfg.pushTransForm("base", "bottle", Tbw);
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?