打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ABB机器人如何解析机器视觉主机发送的坐标数据

引言:一般机器人与视觉主机配合实现抓取或放置时,由视觉主机拍照定位,然后发出机械坐标的偏差值给机器人,一般会存在X方向的偏差,Y方向的偏差,和角度的偏差,故视觉主机发出是一串字符串,字符串中包含X,Y ,A,   在机器人接收到之后,需要解析,把字符串解析成数字然后再加到坐标点中去 ,X,Y可以直接加到坐标中去,角度不能直接加到坐标中,需要转换成机器人的4要素才能相相。

MODULE gaowei

    RECORD code  !建立一个名为code的自定义数据结构

        num x; !定义数据数字类型,变量名为x

        num y; !定义数据数字类型,变量名为y

        num a; !定义数据数字类型,变量名为a

 ENDRECORD

VAR code message;  !定义类型为code的message的变量名

VAR string receive_string; !定义接收到的变量名

 PROC main()

Var num x;

Var num y;

Var num a;

                 WHILE true DO 

    receive_string:=“10.2,15.5,30.4,”; !给变量赋坐标初值

!假定视觉发来的数据是X轴偏移10.2  Y轴偏侈15.5,角度偏移30.4

message:=Analysis(receive_string);  

!调用数据解析功能块,填入坐标数据据,用message来接收

            x:=message.x;  

            y:=message.y;

            a:=message.a;

    TPWrite ''\Num:=x;

           TPWrite ''\Num:=y;

           TPWrite ''\Num:=a;

           stop;

        ENDWHILE

ENDPROC

!建立一个返回数据类型为code的功能块,传入变量是视觉主机发送的位置及角度数据;

此功能块为封装之后的,所以朋友们可以直接调用,

 FUNC code Analysis(string received_string)

        VAR code message;

        VAR string Pos_Str{3};

        VAR num m:=1;

        VAR num n_arr:=1;

VAR bool bOK:=FALSE;

 FOR i FROM 1 TO StrLen(received_string) DO

 IF StrMemb(received_string,i,',') THEN

  Pos_Str{n_arr}:=StrPart(received_string,m,i-m);

  m:=i+1;

  n_arr:=n_arr+1;

            ENDIF

        ENDFOR

        bOK:=StrToVal(Pos_Str{1},message.x);

        bOK:=StrToVal(Pos_Str{2},message.y);

        bOK:=StrToVal(Pos_Str{3},message.a);

        received_string:='';

        RETURN message;

    ENDFUNC

ENDMODULE

运行效果图:



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
行走于 Swift 的世界中
prototype的使用原理
H5学习_番外篇_PHP的入门学习
30分钟掌握 C#7
ABB机器人字符串拆分转换数值指令
一个关于 absolute 关键字的小练习
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服