大数跨境

优傲机器人技术应用——3点建立动态坐标系

优傲机器人技术应用——3点建立动态坐标系 AirkingRobots艾科伯特科技
2026-03-13
2
导读:在UR机器人中所有的坐标系都叫做特征,包换位置和姿态。通过UR自带的特征的建立方法可以通过3点建立一个特征。此特征必须在使用之前建立,无法在运行程序的过程中进行更改。

 优傲机器人

3点建立动态坐标系

UR机器人

技术应用方案




01


建立动态坐标系的意义


在机器人运动中分为关节运动和空间运动,空间运动即笛卡尔运动需要参考坐标系。机器人的空间运动默认是参考基座坐标系的,但是有些实际应用中由于物体的位置的变化,必须参考工件坐标系,因此建立坐标系也就变的很有意义了。

在UR机器人中所有的坐标系都叫做特征,包换位置和姿态。通过UR自带的特征的建立方法可以通过3点建立一个特征。此特征必须在使用之前建立,无法在运行程序的过程中进行更改。随着视觉的配合使用,越来越多的项目希望可以根据视觉得到的数据动态的修改特征,这样可以极大提高项目的柔顺行。

下面将介绍如何动态建立坐标系,分两个模块进行介绍,一是UR自带的3点建立特征的原理和过程;一个是依靠视觉数据动态建立坐标系。

02


3点建立特征的原理



2.1

建立特征的原理

首先介绍一下UR自带的3点建立特征的原理。在建立特征的过程中主要使用的是3个点的位置坐标(x、y、z)。首先确定特征的位置,第一个点P1的坐标为所建特征的原点;下面确定特征的姿态,第二个点P2为建立Y轴的正方向;第三个点P3和前两个点P1,P2共同确定出一个平面,此平面的法线即为Z轴,关于Z轴的正方向需要根据建立3点时所使用的TCP的Z轴的正方向小于180度;Y轴和Z轴的叉乘即为X轴,知道了X,Y,Z轴的向量也即知道了其姿态。下图代表了3点建立特征中每一步所代表的意义。

在了解了以上的原理后大家就可以自己根据外部的三个位置点建立一个坐标系了。需要注意的就是在建立外坐标系以后,要将其姿态数据最终转化为旋转矢量,UR机器人才可以使用。




2.2

建立特征的过程

下面为大家介绍一下UR机器人建立特征的过程。在“安装设置”中选中“特征”然后选择“平面”,在特征的菜单中会出现平面,里面还有需要设置的3个点,分别设置这三个点到指定的位置,便可以完成对特征的建立,如下图所示。



03


动态建立特征


优傲机器人3点建立特征,只能在程序使用前建立,无法在程序运行中进行动态修改。我们知道变量是可以更改的,因此将所建立的特征勾选为变量,这样其坐标值就可以改变了,从而间接的达到对特征的修改。特征的坐标值如何动态获得将是最为关键的问题点。UR自带的3点建立特征是通过一定数学运算、向量叉乘得到的,此方法运算量大且需要对机器人的知识有较深的了解,本节不再过多介绍,下面我们通过比较简单的方法,通过视觉传回来的数据进行建立。

首先我们在建立动态特征之前,需要使用UR建立特征的方法在根据工件上的3个Mark点建立特征,此Mark点在后续建立动态特征时依然使用。

通过3点标定得到特征Plan1,并把其选为变量。移动工件到新位置,通过视觉得到Mrak点P1的坐标X、Y,以及工件转过的角度θ,下面进行变化得到新位置下特征的坐标值。

将P1点的X、Y值付给Plan1_var的X和Y,从而得到特征的位置,其姿态借助于脚本便可以得到。

Plan1_rpy=rotvec2rpy([Plan1_var[3],Plan1_var[4],Plan1_var[5]])

Plan_rpy=[Plan1_rpy[0],Plan1_rpy[1],Plan1_rpy[2]+ d2r(θ)]

Plan1_vec=rpy2rotvec(Plan_rpy)

其中d2r(θ)代表的是绕着基座坐标系的Z轴所转过的角度。

通过以上便可以得到其在新位置下特征的坐标。

Plan1_var=P[p1.x,p1.y,z,Plan1_vec[0], Plan1_vec[1], Plan1_vec[2]]


04


实验验证


源程序:

程序

   BeforeStart

     camera_data≔[0.0,0.0,0.0,0.0]

     open≔socket_open("192.168.1.8",5050,"socket1")

     循环 open≟ False

       open≔socket_open("192.168.1.8",5050,"socket1")

   机器人程序

     MoveJ

     home

     MoveJ

      camera

     socket_send_line("s","socket1")

     循环 camera_data[0]≟0

       camera_data≔socket_read_ascii_float(3,"socket1")

     'New plan Feature'

     plan1_var[0]=camera_data[1]/1000

     plan1_var[1]=camera_data[2]/1000

     plan1_rpy≔rotvec2rpy(plan1_var[3],plan1_var[4],plan1_var[5])

     plan_rpy≔[plan1_rpy[0],plan1_rpy[1],plan1_rpy[2]+d2r(camera_data[3])]

plan_vec≔rpy2rotvec(plan_rpy)

     plan1_var[3]=plan_vec[0]

     plan1_var[4]=plan_vec[1]

     plan1_var[5]=plan_vec[2]







图片


艾科伯特(AirkingRobots)专注于具身智能机器人领域,提供 UR 等系列机器人的模仿学习、强化学习完整解决方案,涵盖数据采集设备定制、政策训练优化、跨载体迁移适配等全链条服务。如需了解具体技术细节或方案咨询,可联系 AirkingRobots 获取专业支持。

更多案例请关注公众号:


 




邮箱:info@airkingrobots.com


电话:13161062216

—— E N D ——



点个喜欢吧



【声明】内容源于网络
0
0
AirkingRobots艾科伯特科技
北京艾科伯特科技有限公司(Airking Robotics)是UR机器人,Robotiq,Robosense等机器人领域的金牌授权商,我们面向教育行业,航空航天,工业,生命科学等领域,致力于让协作机器人、移动机器人实现人机交互。
内容 78
粉丝 0
AirkingRobots艾科伯特科技 北京艾科伯特科技有限公司(Airking Robotics)是UR机器人,Robotiq,Robosense等机器人领域的金牌授权商,我们面向教育行业,航空航天,工业,生命科学等领域,致力于让协作机器人、移动机器人实现人机交互。
总阅读85
粉丝0
内容78