RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halc

RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halcon版本

UR协作机器人和Franka机器人导出的位姿为angleVector,三个量表示,在Matlab中angleVector是四个量表示。如果是三个量的表示推荐使用Python的scipy库做转换。

https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representation#Rotation_vector

[var1]

1.1 Quaternion转Matrix (带位置和姿态)

robotHtool =[0.10345922, -0.48407779, 0.29668114, -0.03533355, 0.09830182, -0.86382214, 0.49284846];

% w x y z

robotHtool_qua = Quaternion([robotHtool(7), robotHtool(4), robotHtool(5) , robotHtool(6)])

robotHtool_matrix = transl(robotHtool(1), robotHtool(2), robotHtool(3)) * robotHtool_qua.T

[var1]

2.1 UR机器人rotvec转换为RPY_rxryrz

UR机械臂通过30003端口发送过来的是rotation vector, 示教器Polyscope界面上Move标签栏中显示的是RPY_rxryrz

https://www.universal-robots.com/articles/ur/explanation-on-robot-orientation/

https://www.universal-robots.com/articles/ur/rpy-tofrom-rotation-vector/

scipy spatial transform官方帮助:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.transform.Rotation.html

from scipy.spatial.transform import Rotation as R

r = R.from_rotvec([-0.001220983, 3.1162765, 0.038891915])

Euler_xyz = r.as_euler('xyz', degrees=False)

2.2 川崎机器人Euler_ZYZ转四元数Quaternion

[var1]

3.1 Halcon 的姿态、齐次变换和四元数

create_pose函数是包含位置和姿态的,姿态格式为RPY_rx_ry_rz,注意输入为角度。pose_to_hom_mat3d是RPY_rx_ry_rz转为齐次矩阵。四元数的顺序是w, x, y, z

robot_V_cam := [0.418906862152, 0.471104634456, 0.729862740299, 2.851, -1.241, -0.008]

* Create pose use degrees.

create_pose (robot_V_cam[0], robot_V_cam[1], robot_V_cam[2], deg(robot_V_cam[3]), deg(robot_V_cam[4]), deg(robot_V_cam[5]), 'Rp+T', 'gba', 'point', Pose)

pose_to_hom_mat3d(Pose, robot_H_cam)

pose_to_quat(Pose, robot_Q_cam)

hom_mat3d_to_pose(robot_H_cam, pose_test1)

************************* xyz *********************************************

hom_mat3d_identity (HomMat3DIdentity)

hom_mat3d_translate (HomMat3DIdentity, robot_V_cam[0], robot_V_cam[1], robot_V_cam[2], HomMat3DTranslate)

hom_mat3d_rotate_local (HomMat3DTranslate, robot_V_cam[3], 'x', HomMat3DT_Rl)

hom_mat3d_rotate_local (HomMat3DT_Rl, robot_V_cam[4], 'y', HomMat3DT_Rl_Rm)

hom_mat3d_rotate_local (HomMat3DT_Rl_Rm, robot_V_cam[5], 'z', HomMat3D)

hom_mat3d_to_pose (HomMat3D, pose_test2)

********************* right-left old zyx **********************************

hom_mat3d_identity (HomMat3DIdent)

hom_mat3d_rotate (HomMat3DIdent, robot_V_cam[5], 'z', 0, 0, 0, HomMat3DRotZ)

hom_mat3d_rotate (HomMat3DRotZ, robot_V_cam[4], 'y', 0, 0, 0, HomMat3DRotYZ)

hom_mat3d_rotate (HomMat3DRotYZ, robot_V_cam[3], 'x', 0, 0, 0, HomMat3DXYZ3)

hom_mat3d_translate(HomMat3DXYZ3, robot_V_cam[0], robot_V_cam[1], robot_V_cam[2], HomMat3Dzyx)

hom_mat3d_to_pose(HomMat3Dzyx, pose_test3)

RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halc相关教程

matlab中quat2angle,RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halc相关推荐

  1. matlab中quat2angle,RPY_Euler_Quaternion_AngleAxis角度转化:Matlab、Python、Halcon版本

    UR协作机器人和Franka机器人导出的位姿为angleVector,三个量表示,在Matlab中angleVector是四个量表示.如果是三个量的表示推荐使用Python的scipy库做转换. 一. ...

  2. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  3. matlab中的timer模块,[转载]Matlab中Timer的使用

    Matlab中Timer的使用 鉴于Matlab中缺乏多线程机制,使用Timer无疑是一个很重要的工具,Matlab中Timer是一个Java对象. (1)Timer 的定义 t=timer(); 设 ...

  4. matlab中m文件是什么,MATLAB中M文件的使用

    运行方法: 使用matlab的时候,可以在"Command Window"内直接书写matlab代码,也可以将代码保存到M文件中,然后运行该文件.使用matlab主界面菜单&quo ...

  5. matlab 如何axis,在matlab中axis是什么意思,matlab中axis的用法

    在matlab中axis是什么意思轴在matlab中是什么意思,matlab中的Axis是指在绘图中通常使用axis函数来设置坐标值的范围,在matlab的命令窗口中输入doc轴或help轴即可获得该 ...

  6. 在MATLAB中使用数学符号,在matlab中怎么输入特殊符号 function在MATLAB中怎么用

    导航:网站首页 > 在matlab中怎么输入特殊符号 function在MATLAB中怎么用 在matlab中怎么输入特殊符号 function在MATLAB中怎么用 相关问题: 匿名网友: 一 ...

  7. 在matlab中怎样把图片转化为数据类型,matlab图像数据类型转换

    uint 8:无符号的8位(8bit)整型数据(unit 都是存储型) int :整型数据 1.在MATLAB中,数值一般都采用double型(64位)存储和运算. 2.为了节省存储空间,MATLAB ...

  8. Matlab中弧度转角度

    在平时使用过程中,我们可能会遇到弧度制和角度制之间的转换,在Matlab中使用rad2deg()就可以轻松地实现这个功能 There are 180º in radians: anglout = ra ...

  9. matlab中asix off_遗传算符MATLAB程序-入门必看

    % 下面举例说明遗传算法 % % 求下列函数的最大值 % % f(x)=10*sin(5x)+7*cos(4x) x ∈ [0,10] % % 将 x 的值用一个 10 位的二值形式表示为二值问题,一 ...

最新文章

  1. 7000 字 23 张图,Pandas一键生成炫酷的动态交互式图表
  2. 华为鸿蒙去哪里更新,华为鸿蒙OS正式尝鲜版名单更新,升级?还是不升级?
  3. 儿童编程软件python-Python编程工具pycharm的使用
  4. RSA的密钥把JAVA格式转换成C#的格式
  5. Ubuntu中重启ssh服务时提示:Job for ssh.service failed because the control process exited with error code. See
  6. 【Linux系统编程】 浅谈标准I/O缓冲区
  7. 玩转oracle 11g(28):ora-00064和程序异常终止
  8. python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python
  9. Spring Cloud 配置中心中的native配置
  10. 天猫回应“双11数据造假”:已启动司法流程;小米折叠手机专利曝光;ASP.NET感染勒索软件|极客头条...
  11. android tabspec英文自动大写问题,为什么不能在drawable下访问xml文件?所有的
  12. python 做网站用服务器_Python实现简单的Web服务器 Part2—支持动态网站
  13. 504 Gateway Time-out 和 502 Bad Gateway相关处理
  14. 百科知识:VTP(思科)
  15. Java窗口之文本框、按钮、菜单
  16. Samba瞎折腾一下
  17. mysql 全文索引无效_为什么MySQL全文索引不起作用?
  18. 企业邮箱怎么注册流程?企业邮箱域名怎么注册?
  19. 每日一言 api 接口
  20. 股票交易接口dll代码分享

热门文章

  1. java调python画图_Python Matplotlib plot 绘图
  2. 移动端布局三种视口_前端基础:必须要知道的移动端适配(4)——视口
  3. 机器学习算法应用30篇(十一)-理解逻辑回归及二分类、多分类代码实践
  4. linux c mysql教程_linux下c操作mysql之增删改查
  5. linux防火墙配置说明,Linux防火墙配置命令参数说明
  6. java golang速度_golang思考之运行速度
  7. 图像存在hadoop比在mysql中_比较SQL数据库和Hadoop
  8. suse linux安装rpm包,linux – 如何为Suse创建RPM
  9. 消息提示框-事件冒泡
  10. DOM基础操作(二)