大家好,我是小鱼,最近因为工作上的需要,把自己一两年前做的开源库又进行了维护,新增了点云坐标转换功能,小鱼测试速度可以嗖嗖的.再次分享给大家.
这个库功能和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
关注
打赏
热门博文
- 一键安装失败
- ROS1/ROS2版本代号
- ROS节点间话题通讯问题
- ROS机械臂启动碰撞检测和启动捡拾算法时出现的两个错误,有大佬能帮忙解决吗
- 树莓派4B(Pi buster)一键安装apt存在问题,WARNING: apt does not have a stable CLI interface
- 如何去掉Gazebo的不对某个关节进行碰撞属性
- Ubuntu18.04 realsenseD435i深度摄像头外参标定的问题
- 运行sudo apt-get install ros-foxy-rmf-demos-gz时出现软件包不能安装的问题
- 运行ros2 control指令提示 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port
- setuptools-scm was unable to detect version for‘…/…/某git包‘