Halcon算子学习:create_pose

在这里插入图片描述

create_pose

创建3D位姿
( : : TransX, TransY, TransZ, RotX, RotY, RotZ, OrderOfTransform, OrderOfRotation, ViewOfTransform : Pose)
输入:

  • TransX
    沿x轴平移(以[m]为单位)。
    默认值:0.1
    建议值:-1.0,-0.75,-0.5,-0.25,-0.2,-0.1,-0.5,-0.25,-0.125,-0.01、0.0、0.01、0.125、0.25、0.5、0.1、0.2、0.25、0.5 ,0.75、1.0

  • TransY
    沿y轴平移(以[m]为单位)。
    默认值:0.1
    建议值:-1.0,-0.75,-0.5,-0.25,-0.2,-0.1,-0.5,-0.25,-0.125,-0.01、0.0、0.01、0.125、0.25、0.5、0.1、0.2、0.25、0.5 ,0.75、1.0

  • TransZ
    沿z轴平移(以[m]为单位)。
    默认值:0.1
    建议值:-1.0,-0.75,-0.5,-0.25,-0.2,-0.1,-0.5,-0.25,-0.125,-0.01、0.0、0.01、0.125、0.25、0.5、0.1、0.2、0.25、0.5 ,0.75、1.0

  • RotX
    绕Rodriguez向量的x轴或x分量旋转(以[°]为单位或无单位)。
    默认值:90.0
    建议值:0.0、90.0、180.0、270.0
    典型值范围:0≤RotX≤360

  • RotY
    绕Rodriguez向量的y轴或y分量旋转(以[°]为单位或无单位)。
    默认值:90.0
    建议值:0.0、90.0、180.0、270.0
    典型值范围:0≤RotY≤360

  • RotZ
    绕Rodriguez矢量的z轴或z分量旋转(以[°]或不带单位)。
    默认值:90.0
    建议值:0.0、90.0、180.0、270.0
    典型值范围:0≤RotZ≤360

  • OrderOfTransform
    旋转和平移的顺序。
    默认值:“ Rp + T”
    建议值:“ Rp + T”,“ R(p-T)”

  • OrderOfRotation
    旋转值的含义。
    默认值:“ gba”
    建议值:“ gba”,“ abg”,“ rodriguez”

  • ViewOfTransform
    变换视角。
    默认值:“point”
    建议值:“ point”,“ coordinate_system”

输出:

  • Pose
    3D姿势。
    元素数:7

算子描述

1.create_pose创建3D姿势-Pose。 姿势描述了刚性3D变换,即由任意平移和旋转组成的变换,具有6个参数:TransX,TransY和TransZ分别指定沿x,y和z轴的平移,而RotX ,RotY和RotZ描述旋转。

2.3D姿态通常以两种方式使用:首先,描述一个坐标系相对于另一坐标系的位置和方向(例如,零件坐标系相对于相机坐标系的姿态,简而言之:零件相对姿态;
其次是描述如何在两个坐标系之间转换坐标(例如,将点从零件坐标转换为摄像机坐标)。

3.方向表示(旋转)

1)围绕任意轴的3D旋转可以多种方式由3个参数表示。 HALCON允许您使用参数OrderOfRotation在其中三个中进行选择:如果传递值’gba’,则旋转将通过以下围绕三个轴的旋转链来描述(有关旋转矩阵Rx,Ry,Rz的内容,请参见hom_mat3d_rotate):
在这里插入图片描述
2)Rgba 在文献中表示为“ Yaw-Pitch-Roll 翻滚-偏航-仰俯”
请注意,您可以通过两种方式“读取”该链:如果从右侧开始,则始终相对于全局(即固定或“旧”)坐标系进行旋转。 因此,可以理解为:首先绕着z轴旋转,然后绕着“旧” y轴旋转,最后绕着“旧” x轴旋转。 相反,如果您从左到右阅读,则相对于局部(即“新”)坐标系进行旋转。 然后,对应于以下内容:首先绕x轴旋转,绕“新” y轴旋转,最后绕“新(等)” z轴旋转。

从右到左读取对应于以下算子调用顺序:

  hom_mat3d_identity (HomMat3DIdent)hom_mat3d_rotate (HomMat3DIdent, RotZ, 'z', 0, 0, 0, HomMat3DRotZ)hom_mat3d_rotate (HomMat3DRotZ, RotY, 'y', 0, 0, 0, HomMat3DRotYZ)hom_mat3d_rotate (HomMat3DRotYZ, RotX, 'x', 0, 0, 0, HomMat3DXYZ)

相反,从左向右读取对应于以下算子调用顺序:

  hom_mat3d_identity (HomMat3DIdent)hom_mat3d_rotate_local (HomMat3DIdent, RotX, 'x', HomMat3DRotX)hom_mat3d_rotate_local (HomMat3DRotX, RotY, 'y', HomMat3DRotXY)hom_mat3d_rotate_local (HomMat3DRotXY, RotZ, 'z', HomMat3DXYZ)

3)在OrderOfRotation中传递“ abg”时,旋转对应于以下链:
在这里插入图片描述
Rabg在文献中表示为“ Roll-Pitch-Yaw 翻滚-偏航-仰俯”。

4)如果在OrderOfRotation中传递“rodriguez”,则旋转参数RotX,RotY和RotZ将被解释为所谓的Rodriguez旋转向量的x,y和z分量。 向量的方向定义为(任意)旋转轴。 向量的长度通常定义为正方向的旋转角度。 此处,使用Rodriguez向量的变体,其中向量的长度定义为旋转角一半的正切值:
在这里插入图片描述

请注意,这些3D位姿可能是模棱两可的,这意味着齐次变换矩阵可以具有多个位姿表示形式。 例如,对于Rgba (b=±90)以下位姿对应于相同的齐次变换矩阵:

// 两种变换形式下,最终变换后的坐标位姿一样的create_pose(0, 0, 0, 30 , 90, 54, 'Rp+T', 'gba', 'point', Pose1)create_pose(0, 0, 0, 17, 90, 67, 'Rp+T', 'gba', 'point', Pose2)

如果这会导致问题,则可以改用齐次变换矩阵或四元数(axis_angle_to_quat)表示旋转。

4.对应的齐次变换矩阵

1)您可以使用运算符 pose_to_hom_mat3d 获得与姿势相对应的齐次变换矩阵。 在标准定义中,这是以下齐次变换矩阵,可以将其分解为两个单独的矩阵,一个用于平移(H(t)),一个用于旋转(H(R)):
在这里插入图片描述
2)坐标转换

下面的等式描述了如何使用位姿(Pose)或更确切地说,即其相应的齐次变换矩阵2H1 (输入和输出点作为齐次矢量,另请参见affine_trans_point_3d)将一个点的从坐标系1转换为坐标系2。 请注意,要将点从坐标系1转换为坐标系2,请使用描述坐标系1相对于坐标系2的姿态的转换矩阵(HomMat3DFrom1In2)
在这里插入图片描述
这对应于以下算子调用:

  pose_to_hom_mat3d(PoseOf1In2, HomMat3DFrom1In2)affine_trans_point_3d(HomMat3DFrom1In2, P1X, P1Y, P1Z, P2X, P2Y, P2Z)

3)非标准位姿定义

到目前为止,我们已经描述了标准姿势定义。 要创建此类姿势,请为参数OrderOfTransform选择(默认)值“ Rp + T”,为ViewOfTransform选择“ point”。 通过为这些参数指定其他值,您可以创建非标准位姿类型,我们将在下面简要描述。 请注意,仅为了向后兼容才支持这些表示类型。 我们强烈建议使用标准类型。

如果为OrderOfTransform选择’R(p-T)’,则创建的位姿对应于以下变换链,即旋转和平移的顺序相反,并且平移取反:
在这里插入图片描述
如果为ViewOfTransform选择’coordinate_system’,则转换顺序保持不变,但旋转角度将被取反。 请注意,与其名称相反,这并不等同于变换坐标系
在这里插入图片描述
4)返回的数据结构

创建的3D姿势以Pose返回,该姿势是长度为7的元组。 前三个元素包含平移参数TransX,TransY和TransZ,然后是旋转参数RotX,RotY和RotZ。 最后一个元素对使用参数OrderOfTransform,OrderOfRotation和ViewOfTransform选择的姿势的表示类型进行编码。 下表列出了可能的组合。 如前所述,我们建议仅使用OrderOfTransform ='Rp + T’和ViewOfTransform ='point’的表示类型(代码0、2和4)

在这里插入图片描述
您可以使用convert_pose_type将姿势转换为其他表示类型,并使用get_pose_type查询类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Halcon算子学习:sample_object_model_3d

sample_object_model_3d ( : : ObjectModel3D, Method, SampleDistance, GenParamName, GenParamValue : SampledObjectModel3D) 示例一个3D对象模型 输入: ObjectModel3D 对3D对象模型的处理进行采样。 Method 选择不同的子采样方法。 默认值:“fast” 值列表:‘…

剑桥大学发布2019年度AI发展报告,预测未来12个月AI产业6件大事

来源:人工智能和大数据近日,剑桥大学发布了2019年度AI发展报告,在这份137页的报告中,涵盖了AI研究、人才、产业等多方面内容,值得一提的是,这份报告专门开辟了一个章节来介绍中国AI技术的发展。一、研究和技…

SQL Server安全(8/11):数据加密(Data Encryption)

在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用&#xf…

模拟人脑项目彻底宣告失败:耗资10亿欧,10年前轰动全球,如今死得悄无声息...

来源:凹非寺10年砸入10亿欧元,为了用计算机模拟人脑。这个十年前曾轰动全球的项目,如今彻底“死”了,死得悄无声息。要不是有位西方记者提起,人们几乎已经完全遗忘。模拟人脑?呵,实际连一只蠕虫…

变量传值

变量传值 PHP传方式有两种:赋值传值、引用传值 赋值传值: 将一个变量的值传递给另一个变量,array数组 示例: 引用传值: 将一个变量的内存地址传给另一个变量 写时复制: 对变量使用赋值传值时,PH…

物理学的忧伤,从现代物理学的死锁谈起

来源:量子学派“这是一篇信息量极大的文章,我不知道有多少人能真正读完。但希望大家能静下心来,暂且抛开生活的油盐酱醋茶,好好去感受一下——这些似乎离我们的生活太远的智慧和知识。”盛宴已过,天才再无用武之地&…

EPSON 程序

EPSON 代码程序 1.EPSON SPEL 语言代码示例: // String RCdata$, InData$, toks$(0), data1$, data2$, data3$ //定义字符型变量名需要添加“$”符号 Integer N, x Double VX(500), VY(500), VZ(500) #define delay_Time 0.1 Function mainSetNet #201, "19…

有人机/无人机混合编队协同作战研究综述与展望

来源: 人机与认知实验室摘要:有人机与无人机混合编队协同作战是未来空战的重要形式。有人机是中央指挥,而无人机直接接受有人机的指挥和控制,并进行战场态势感知、目标打击等。有人机和无人机可以看成空间上分离而逻辑上一体的巨型…

中国独角兽报告:2019

来源:泽平宏观文:恒大研究院 任泽平 连一席 谢嘉琪导读独角兽企业代表着新经济的活力,行业的大趋势,国家的竞争力。2018年全球资本市场风起云涌,独角兽势力大洗牌。有些独角兽融资困难,光环不再&#xff1b…

软银千亿美元愿景基金PPT,孙正义解读股权投资IRR=44%

来源:股权投资论坛(PE821010)综合“正和岛(zhenghedao)、皮卡丘财经、猎云网(ilieyun)、财立方(icailifang)、腾讯科技(qqtech)等综合 日本软银公司成立于1981年&#x…

Halcon算子学习:create_sheet_of_light_model

create_sheet_of_light_model (ProfileRegion : : GenParamName, GenParamValue : SheetOfLightModelID) 创建一个执行线结构光技术3D测量的的模型 输入: ProfileRegion 包含要处理的轮廓的图像的ROI。(如果所提供的区域不是矩形的,则使用其…

腾讯研究院院长司晓:互联网大脑的人文侧面

1989年万维网推出至今,互联网已经走过了30个年头。在这激荡的30年,随着社交网络、移动通信、云计算、物联网、工业互联网、大数据、人工智能等新技术和新事物不断涌现,互联网持续建立起复杂而庞大的连接,成为驱动经济与社会快速变…

Halcon算子学习:get_sheet_of_light_result

get_sheet_of_light_result ( : ResultValue : SheetOfLightModelID, ResultName : ) 获得用线结构光技术进行测量的标志性结果 输出: ResultValue 理想的测量结果。 SheetOfLightModelID 要使用的线结构光模型的句柄 输入: ResultName 规定应提供何…

5G芯片Top10一览,谁才是最后的赢家?

来源:Electronic Products、电子工程世界从无线网络基础设施和基站到智能手机再到物联网设备应用,这些芯片组有望简化向5G通信的过渡。5G有望提供一个完全互联的移动世界,其市场范围从联网汽车、智能城市、智能手机到物联网(IoT)设备&#xf…

HALCON标定板制作、标准文件输出方法、算子讲解

利用 Halcon软件自制标定板 参考博客: halcon相机标定及图像矫正 Halcon学习 标定助手 关键算子: gen_caltab ( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : ) 为具有矩形排列标记的标定板生成标定板描述文件和相应的后…

国产光刻机的现状究竟如何?

来源:人民网-上海频道随着信息社会的迅速发展,手机、电脑、电视等各种电子设备越来越“迷你”,从之前的“大哥大”到现在仅仅几个硬币厚的时尚手机,从老式的矮胖电视到如今轻薄的液晶电视,都不离开集成电路的发展&…

如何使用UR机器人模拟软件URsim

如何使用UR机器人模拟软件URsim 机器人软件适用版本:Polyscope v1.3及以上 适用机器人:UR3、UR5、UR10 由于优傲机器人的系统是基于Linux核心开发的,模拟软体URsim也是在Linux系统下运行,通常大家使用的电脑系统为Windows&#…

中国团队新型类脑芯片登上《自然》封面

来源:澎湃新闻网从AlphaGo战胜人类顶级围棋选手,到人工智能系统以90%准确率诊断儿科疾病,近年来,人工智能的突破大多从智能的某个领域接近或超过人类智能,距离达到人类水平的人工通用智能(AGI,A…

20145324 《Java程序设计》第6周学习总结

20145324 《Java程序设计》第6周学习总结 教材学习内容总结 第十章 1、使用输入串流将数据从来源取出 InputStream 使用输出串流将数据写入目的地 OutStream 2、dump()方法并没有限定来源或目的地真实形式,依赖InputStream、OutStream 3、可以使用dump()从HTTP服务器…

MATLAB Robotic Toolbox 机器人工具箱示例

程序是基于Matlab2016a,工具箱版本为Robotic Toolbox 10.2 参考博客: MATLAB机器人工具箱使用 Matlab Robotic Toolbox V9.10工具箱(三):轨迹规划 六轴机器人建模方法、正逆解、轨迹规划实例与Matalb Robotic Toolbox 的实现 效果&#xff1a…