最简单易用的坐标转换库,新功能发布
本篇文章属于开源库TransForms系列,该库主要用于C++坐标转换使用,以及一些标定算法的实现和优化,目前还在不断更新中,请持续关注。
开源地址:https://gitee.com/ohhuo/transforms3d_cpp
基础模块:
- 基础坐标转换,四元数、欧拉角和旋转矩阵互相转换和齐次坐标生成-20210504
- 坐标转化组,帮你做那些头疼的关系换算-20210531
拓展模块:
- 坐等更新
- a. 原问题:大爷带着二大爷到三大爷家说四大爷被五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元,究竟谁是小偷?
- b.程序员版:A沿着B的x轴平移30mm,C相对于B的绕x轴旋转32度,D沿着C的z轴平移-24mm,E绕着F的y旋转20度,G和A的关系为xx,请问E到G的关系?
遇到这样的问题,只要给我时间,我一定能搞定。
我:报告老板,请给我半小时,我来理清楚! 老板:半小时?要不我给你放个长假,你回家慢慢理。
2.坐标换算问题?四元数、欧拉角、旋转矩阵,互相转换? 笔者在做机械臂的相关建模时,经常将坐标换来换去的,不仅容易错,还要拿起笔来写写啥的,真够心累的。
二、为什么不用现成的?抱歉,除了ROS的,其他的真的没找到,且ROS的还有一些功能上的缺失,比如坐标的逆解算。其次要做商业化产品,最终要去ROS勒~
三、怎么用? 1.五行代码搞定手眼标定???已知标记物在机器人基坐标系下的坐标,标记物在相机坐标系下的坐标,夹爪在机器人基坐标系下的坐标,求一下夹爪和相机之间的位姿关系?
//声明一个group
TransFormsGroup tfg;
//发布基坐标系下夹爪的位置和姿态 base@grapper
tfg.pushTransForm("base","grapper",TransForms::ComposeEuler(-0.544, -0.203,-0.037, 180, 0.00000, 140));
//发布相机下标记物的位置和姿态 camera@maker
tfg.pushTransForm("camera","marker", TransForms::ComposeEuler(0.020,-0.040,0.300,0,0,-45));
//发布基坐标系下标记物的位置和姿态 base@marker
tfg.pushTransForm("base","marker",TransForms::ComposeEuler(-0.663,-0.193,-0.231,-180,0,140));
//打印最终的手眼关系
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包‘