CN112634357B - 用于机器人二维视觉系统的通讯数据处理方法及系统 - Google Patents

用于机器人二维视觉系统的通讯数据处理方法及系统 Download PDF

Info

Publication number
CN112634357B
CN112634357B CN202011610303.7A CN202011610303A CN112634357B CN 112634357 B CN112634357 B CN 112634357B CN 202011610303 A CN202011610303 A CN 202011610303A CN 112634357 B CN112634357 B CN 112634357B
Authority
CN
China
Prior art keywords
array
character string
token
storing
recvstring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011610303.7A
Other languages
English (en)
Other versions
CN112634357A (zh
Inventor
于福才
徐昌军
豆祥忠
彭欢
曹雏清
高云峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhu Robot Technology Research Institute of Harbin Institute of Technology
Original Assignee
Wuhu Robot Technology Research Institute of Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhu Robot Technology Research Institute of Harbin Institute of Technology filed Critical Wuhu Robot Technology Research Institute of Harbin Institute of Technology
Priority to CN202011610303.7A priority Critical patent/CN112634357B/zh
Publication of CN112634357A publication Critical patent/CN112634357A/zh
Application granted granted Critical
Publication of CN112634357B publication Critical patent/CN112634357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Manipulator (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于机器人二维视觉系统的通讯数据处理方法,包括如下步骤:S1、检测当前位姿字符串的首个字符标识是否为指定字符,所述指定字符用于指示工业相机识别到了目标物体;S2、若检测结果为是,则对当前位姿字符串进行位姿数据的提取;位姿字符串由目标物体的状态信息和位姿信息组成,状态信息与位姿信息之间、位姿信息的位姿数据之间通过分隔符进行分隔。本发明提供了一种新的位姿数据分解及读取方法,能快速的获取目标物体的位姿数据。

Description

用于机器人二维视觉系统的通讯数据处理方法及系统
技术领域
本发明属于数据处理技术领域,更具体地,本发明涉及一种用于机器人二维视觉系统的通讯数据处理方法及系统。
背景技术
在机器人二维视觉系统中,通常视觉软件作为服务端,机器人作为客户端,两者之间通过基于TCP/IP协议的Socket通信。视觉软件服务端对采集到的图像进行处理,得到识别到的所有目标物的位置姿态数据信息并将该数据信息以字符串变量的形式通过Socket发送到机器人客户端,机器人客户端对接收的数据进行分解,获取目标物体的位姿数据,在基于目标物体的位姿数据确定目标物体在定位坐标系中的位姿,现有的位姿数据处理方式存在位姿数据获取速度慢的问题。
发明内容
本发明提供了一种基于用于机器人二维视觉系统的通讯数据处理方法,旨在提供改善上述问题。
本发明是这样实现的,一种用于机器人二维视觉系统的通讯数据处理方法,所述方法具体包括如下步骤:
S1、检测当前位姿字符串的首个字符标识是否为指定字符,所述指定字符用于指示工业相机识别到了目标物体;
S2、若检测结果为是,则对当前位姿字符串进行位姿数据的提取;
位姿字符串由目标物体的状态信息和位姿信息组成,状态信息与位姿信息之间、位姿信息的位姿数据之间通过分隔符进行分隔。
进一步的,位姿数据的提取方法具体包括如下步骤:
S1、检测位姿字符串的字符数是否大于255,若检测结果为否,则执行步骤S2,检测结果为是,则截取首个字符及首个分隔符后,执行步骤S3;
S2、将位姿字符串存放于字符串数组RecvString$(0)中,基于分隔符对字符串数组RecvString$(0)进行分解,再分解的字符串转化为数值进行存储;
S3、对位姿字符串进行分段截取,形成若干字符串数组RecvString$(strnum),依次对各字符串数组RecvString$(i)进行字符串的分解、数值转化及转化数据的存储,对相邻字符串数组间的首尾字符进行字符的衔接,将衔接后的字符放入当前字符串数组的尾部或下一字符串数组的头部。
进一步的,所述步骤S2具体包括如下步骤:
S21、基于分隔符对字符串数组RecvString$(0)中的字符串进行分解,将分解后的字符存放于令牌数组Recvstr$中,并返回令牌数numtoke;
S22、初始化令牌数的循环变量j=0及real型数组recpos的下标k=0,检测j是否小于等于
Figure BDA0002872088890000021
若检测结果是,则执行步骤S23,若检测结果为否,则执行步骤S24;
S23、将令牌数组Recvstr$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr$中令牌数为(j*2+2)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S22;
S24、将real型数组中的数据存放于机器人位姿数据中。
进一步的,所述步骤S3具体包括如下步骤:
S31、检测当前字符串数组是否为最后一个字符串数组,若检测结果为否,则执行步骤S32;
S32、基于分隔符对当前字符串数组RecvString$(i)进行分解,将分解后的数据存放于令牌数组Recvstr2$中,并返回令牌数numtoke;
S33、检测令牌数numtoke是奇数还是偶数,若令牌数numtoke为奇数,则对前(numtoke-1)个令牌数对应的字符串进行数值转化及转化数值的存储,并将衔接后的字符串放入下一字符串数组的头部,若令牌数numtoke为偶数,则对前(numtoke-2)个令牌数对应的字符串进行数值转化及转化数据的存储,并将衔接后的字符串放入当前字符串数组的尾部,再最后两个令牌数对应的字符串进行数值转化及转化数值的存储。
进一步的,针对奇数令牌数numtoke的字符串数组RecvString$(i)的数据处理方法具体包括如下步骤:
将衔接字符串变量midstr连接令牌数组Recvstr2$中的首个字符串Recvstr2$(0),并赋值于首个字符串Recvstr2$(0);
S341、初始化令牌数的循环变量j=0,令衔接字符串变量midstr$为空,检测j是否小于等于
Figure BDA0002872088890000031
若检测结果为否,则执行步骤S342,若检测结果为是,则执行步骤S343;
S342、将令牌数组Recvstr2$中令牌数(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S341;
S343、将当前字符串数组RecvString$(i)中令牌数为(numtoke-1)的字符串赋值给衔接字符串变量midstr$;
S344、检测当前字符串数组RecvString$(i)的最右端是否为分隔符,若检测结果为是,则执行步骤S345,若检测结果为否,则执行步骤S346;
S345、将衔接字符串变量midstr$中的字符串转为数值存放于real型数组recpos(k,0)中,将下一字符串数组RecvString$(i+1)的首个分隔符前的字符串转为数组存放于real型数组recpos(k,1)中,在符串数组RecvString$(i+1)剔除首个分隔符前的字符串,令衔接字符串变量midstr$为空,k=k+1,i=i+1,执行步骤S31;
S346、检测字符串数组RecvString$(i+1)的最左端是否为分隔符,若检测结果为是,则执行步骤S347,若检测结果为否,则执行步骤S348;
S347、删除字符串数组RecvString$(i+1)中的第一个分隔符,将衔接字符串变量midstr$中的字符串转为数值存放于real型数组recpos(k,0)中,将字符串数组RecvString$(i+1)的第一个分隔符前的字符串转为数组存放于real型数组recpos(k,1)中,在符串数组RecvString$(i+1)剔除首个分隔符前的字符串,令衔接字符串变量midstr$为空,k=k+1,i=i+1,执行步骤S31;
S348、令i=i+1,执行步骤S31。
进一步的,针对偶数令牌数numtoke的字符串数组RecvString$(i)的数据处理方法具体包括如下步骤:
将衔接字符串变量midstr连接令牌数组Recvstr2$中的首个字符串Recvstr2$(0),并赋值于首个字符串Recvstr2$(0);
S351、初始化令牌数的循环变量j=0,检测j是否小于等于
Figure BDA0002872088890000041
若检测结果为是,则执行步骤S352,若检测结果为否,则执行步骤S353;
S352、将令牌数组Recvstr2$中令牌数为(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S351;
S353、检测当前字符串数组RecvString$(i)的最右端是否为分隔符,若检测结果为是,则执行步骤S354,若检测结果为否,则执行步骤S355;
S354、将牌数组Recvstr2$中令牌数为(numtoke-2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(numtoke-1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,i=i+1,执行步骤S31;
S355、检测下一字符串数组RecvString$(i+1)的最左端是否为分隔符,若检测结果为是,则执行步骤S354,若检测结果为否,则执行步骤S356;
S356、基于分隔符对下一字符串数组RecvString$(i+1)进行分解,存储于令牌数组Recvstr3$,将令牌数组Recvstr2$中令牌数(numtoke-1)对应的字符串连接令牌数组Recvstr3$中首个令牌对应的字符串,并赋值给令牌数组Recvstr2$中的最后一个令牌数,在下一字符串数组RecvString$(i+1)进行删除首个字符串,将令牌数组Recvstr2$中令牌数为(numtoke-2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(numtoke-1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,i=i+1,执行步骤S31。
进一步的,若当前字符串数组为最后一个字符串数组,其数据处理方法具体包括如下步骤:
S36、对符串数组RecvString$(strnum)进行数据的分解处理,其处理方法具体如下:
S361、基于分隔符对当前字符串数组RecvString$(strnum)进行分解,将分解后的数据存放于令牌数组Recvstr 4$中,并返回令牌数numtoke,将衔接字符串变量midstr$连接令牌数组Recvstr 4$中第一个令牌数对应的字符串,并赋值令牌数组Recvstr 4$中第一个令牌数;
S362、初始化令牌数的循环变量j=0,检测j是否小于等于
Figure BDA0002872088890000051
若检测结果是,则执行步骤S363,若检测结果为否,则执行步骤S364;
S363、将令牌数组Recvstr 4$中令牌数为(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr 4$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S362;
S364、将real型数组中的数据存放于机器人位姿数据中。
本发明是这样实现的,一种用于机器人二维视觉系统的通讯数据处理系统,所述系统包括:
工业相机,与工业相机通讯连接的视觉软件,与视觉软件通讯连接的机器人,其中,工业相机用于采集目标物体图像,视觉软件用于检测目标物体及获取目标物体的位姿,将目标物体的状态信息和位姿信息转换成字符串,发送至机器人,机器人基于上述的用于机器人二维视觉系统的通讯数据处理方法来读取各目标物体的位姿数据。
本发明提供了一种新的位姿数据分解及读取方法,能快速的获取目标物体的位姿数据。
附图说明
图1为本发明实施例提供的基于目标物体状态信息的位姿数据处理流程图;
图2为本发明实施例提供的字符串数组下标为零的字符处理流程图;
图3为本发明实施例提供的字符串数组下标大于0,令牌数numtoke为奇数的数据处理流程图;
图4为本发明实施例提供的字符串数组下标大于0,令牌数numtoke为偶数的数据处理流程图;
图5为本发明实施例提供的符串数组RecvString$(strnum)进行数据的分解处理方法流程图。
具体实施方式
下面对照附图,通过对实施例的描述,对本发明的具体实施方式作进一步详细的说明,以帮助本领域的技术人员对本发明的发明构思、技术方案有更完整、准确和深入的理解。
通讯数据处理系统包括:
服务端视觉软件及客户端机器人,其中,服务端视觉软件接收工业相机采集到的图像,对工业相机采集到的图像进行处理,得到目标物的位姿及相机视野中目标物的大致数量(目标物在相机视野中一般存在堆积,取目标物在图像中所占的像素面积作为目标物的大致数量参考)等状态信息,并将数据信息以字符串变量的形式发送给客户端机器人,
其中,字符串变量的格式的第一个字符描述目标物物料状态,后续的位姿字符依次描述目标物的X坐标、Y坐标、Z坐标、旋转角θ,目标物物料状态与位姿字符通过分隔符进行分割,各目标物体的X坐标、Y坐标、Z坐标之间通过分隔符进行分割;
服务端视觉软件对目标物物料状态及目标物位姿描述分为三种:(1)服务端视觉软件能识别检测到目标物且相机视野中目标物物料为充足状态,则发送给客户端机器人的字符串变量中的第一个字符标识为“C”;(2)服务端视觉软件检测到目标物物料在图像中所占像素面积小于某一阈值,为缺料状态时,则发送给客户端机器人的字符串变量中的第一个字符标识为“S”;(3)服务端视觉软件没有识别检测到目标物且相机视野中目标物物料为充足状态,则发送给客户端机器人的字符串变量中的第一个字符标识为“Z”;
机器人在设定的端口接收到服务端视觉软件发送的数据信息后,需将数据信息分解得到的有关目标物状态信息和位姿信息,数据信息分解得到的各个识别检测目标物的位姿存放于机器人位姿数据中。由于机器人中字符串变量容纳最大为255个字符,若接收到的数据信息大于255个字符,则还需将数据截取存放于机器人的字符串数组中,再进行数据分解衔接。数据分解衔接策略如下:
机器人接收到目标物体的位姿字符串,判断位姿字符串中的字符数recnum是否大于255个,若小于等于255个,则直接将位姿字符串存放到字符串数组RecvString$(0)中;若大于255个,则将位姿字符串截取到字符串数组RecvString$(strnum)中,strnum表示将位姿字符串截取成strnum+1个字符串数组,依次存放于字符串数组RecvString$()中,前strnum个字符串数组RecvString$()中存放255个字符串。
分析字符串RecvString$(0)中首个字符标识为“C”,则表示视觉软件识别到目标物的位姿信息,下一步将数据分解到机器人位姿数据中;若首个字符标识为“S”,机器人通过IO控制其他设备补充物料;若首个字符标识为“Z”,机器人通过IO控制其他设备动作改变目标物位,分解提取目标物物料状态信息流程如图1所示:
S1、针对含有各目标物体位姿数据的字符串进行如下操作:检测位姿字符串的字符数是否大于255,若检测结果为否,则执行步骤S2,检测结果为是,则截取首个字符及首个分隔符后,执行步骤S3;
S2、将位姿字符串存放于字符串数组RecvString$(0)中,进行位姿字符串分解并存放于机器人位姿数据中;
图2为本发明实施例提供的字符串数组下标为零的字符处理流程图,该方法具体包括如下步骤:
S21、基于分隔符对字符串数组RecvString$(0)中的字符串进行分解,将分解后的字符存放于令牌数组Recvstr$中,并返回令牌数numtoke;
S22、初始化令牌数的循环变量j=0及real型数组recpos的下标k=0,检测j是否小于等于
Figure BDA0002872088890000091
若检测结果是,则执行步骤S23,若检测结果为否,则执行步骤S24;
S23、将令牌数组Recvstr$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr$中令牌数为(j*2+2)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S22;
S24、将real型数组中的数据存放于机器人位姿数据中。
S3、对位姿字符串先进行分段截取,再进行字符串的分解衔接;
分段截取:依次位姿字符串截取到字符串数组RecvString$(strnum)中,strnum表示将位姿字符串截取成strnum+1个字符串数组,前strnum个字符串数组RecvString$()中存放255个字符串;
分解衔接过程具体如下:
S31、检测当前字符串数组是否为最后一个字符串数组,即当前的字符串数组下标i是否小于等于(strnum-1),若检测结果为是,则执行步骤S32,若检测结果为否,则执行步骤S36;
S32、基于分隔符对当前字符串数组RecvString$(i)进行分解,将分解后的数据存放于令牌数组Recvstr2$中,并返回令牌数numtoke,将衔接字符串变量midstr连接令牌数组Recvstr2$中的首个字符串Recvstr2$(0),并赋值于首个字符串Recvstr2$(0);
S33、检测令牌数numtoke是奇数还是偶数,若令牌数numtoke为奇数,则执行步骤S341至步骤S348,若令牌数numtoke为偶数,则执行步骤S351至步骤S356;
图3为本发明实施例提供的字符串数组下标大于0,令牌数numtoke为奇数的数据处理流程图,该方法具体包括如下步骤:
S341、初始化令牌数的循环变量j=0,令衔接字符串变量midstr$为空,检测j是否小于等于
Figure BDA0002872088890000101
若检测结果为否,则执行步骤S342,若检测结果为是,则执行步骤S343;
S342、将令牌数组Recvstr2$中令牌数(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S341;
S343、将当前字符串数组RecvString$(i)中令牌数为(numtoke-1)的字符串(即最后一个字符串)赋值给衔接字符串变量midstr$;
S344、检测当前字符串数组RecvString$(i)的最右端是否为分隔符(本发明采用逗号作为分隔符),若检测结果为是,则执行步骤S345,若检测结果为否,则执行步骤S346;
S345、将衔接字符串变量midstr$中的字符串转为数值存放于real型数组recpos(k,0)中,将下一字符串数组RecvString$(i+1)的首个分隔符前的字符串转为数组存放于real型数组recpos(k,1)中,在符串数组RecvString$(i+1)剔除首个分隔符前的字符串,令衔接字符串变量midstr$为空,k=k+1,i=i+1,执行步骤S31;
S346、检测字符串数组RecvString$(i+1)的最左端是否为分隔符(逗号),若检测结果为是,则执行步骤S347,若检测结果为否,则执行步骤S348;
S347、删除字符串数组RecvString$(i+1)中的第一个分隔符,将衔接字符串变量midstr$中的字符串转为数值存放于real型数组recpos(k,0)中,将字符串数组RecvString$(i+1)的第一个分隔符前的字符串转为数组存放于real型数组recpos(k,1)中,在符串数组RecvString$(i+1)剔除首个分隔符前的字符串,令衔接字符串变量midstr$为空,k=k+1,i=i+1,执行步骤S31;
S348、令i=i+1,执行步骤S31。
图4为本发明实施例提供的字符串数组下标大于0,令牌数numtoke为偶数的数据处理流程图,该方法具体包括如下步骤:
S351、初始化令牌数的循环变量j=0,检测j是否小于等于
Figure BDA0002872088890000111
若检测结果为是,则执行步骤S352,若检测结果为否,则执行步骤S353;
S352、将令牌数组Recvstr2$中令牌数为(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S351;
S353、检测当前字符串数组RecvString$(i)的最右端是否为分隔符,若检测结果为是,则执行步骤S354,若检测结果为否,则执行步骤S355;
S354、将牌数组Recvstr2$中令牌数为(numtoke-2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(numtoke-1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,i=i+1,执行步骤S31;
S355、检测下一字符串数组RecvString$(i+1)的最左端是否为分隔符,若检测结果为是,则执行步骤S354,若检测结果为否,则执行步骤S356;
S356、基于分隔符对下一字符串数组RecvString$(i+1)进行分解,存储于令牌数组Recvstr3$,将令牌数组Recvstr2$中令牌数(numtoke-1)对应的字符串连接令牌数组Recvstr3$中首个令牌对应的字符串,并赋值给令牌数组Recvstr2$中的最后一个令牌数,在下一字符串数组RecvString$(i+1)进行删除首个字符串,将令牌数组Recvstr2$中令牌数为(numtoke-2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(numtoke-1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,i=i+1,执行步骤S31。
图5为本发明实施例提供的符串数组RecvString$(strnum)进行数据的分解处理方法流程图,该方法具体包括如下步骤:
S36、对符串数组RecvString$(strnum)进行数据的分解处理,其处理方法具体如下:
S361、基于分隔符对当前字符串数组RecvString$(strnum)进行分解,将分解后的数据存放于令牌数组Recvstr 4$中,并返回令牌数numtoke,将衔接字符串变量midstr$连接令牌数组Recvstr 4$中第一个令牌数对应的字符串,并赋值令牌数组Recvstr 4$中第一个令牌数;
S362、初始化令牌数的循环变量j=0,检测j是否小于等于
Figure BDA0002872088890000121
若检测结果是,则执行步骤S363,若检测结果为否,则执行步骤S364;
S363、将令牌数组Recvstr 4$中令牌数为(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr 4$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S362;
S364、将real型数组中的数据存放于机器人位姿数据中。
上面结合附图对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。

Claims (5)

1.一种用于机器人二维视觉系统的通讯数据处理方法,其特征在于,所述方法具体包括如下步骤:
检测当前位姿字符串的首个字符标识是否为指定字符,所述指定字符用于指示工业相机识别到了目标物体;
若检测结果为是,则对当前位姿字符串进行位姿数据的提取;
位姿字符串由目标物体的状态信息和位姿信息组成,状态信息与位姿信息之间、位姿信息的位姿数据之间通过分隔符进行分隔;
位姿数据的提取方法具体包括如下步骤:
S1、检测位姿字符串的字符数是否大于255,若检测结果为否,则执行步骤S2,检测结果为是,则截取首个字符及首个分隔符后,执行步骤S3;
S2、将位姿字符串存放于字符串数组RecvString$(0)中,基于分隔符对字符串数组RecvString$(0)进行分解,再将分解的字符串转化为数值进行存储;
S3、对位姿字符串进行分段截取,形成若干字符串数组RecvString$(strnum),依次对各字符串数组RecvString$(i)进行字符串的分解、数值转化及转化数据的存储,对相邻字符串数组间的首尾字符进行字符的衔接,将衔接后的字符放入当前字符串数组的尾部或下一字符串数组的头部;
所述步骤S2具体包括如下步骤:
S21、基于分隔符对字符串数组RecvString$(0)中的字符串进行分解,将分解后的字符存放于令牌数组Recvstr$中,并返回令牌数numtoke;
S22、初始化令牌数的循环变量j=0及real型数组recpos的下标k=0,检测j是否小于等于
Figure FDA0003832202590000011
若检测结果是,则执行步骤S23,若检测结果为否,则执行步骤S24;
S23、将令牌数组Recvstr$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr$中令牌数为(j*2+2)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S22;
S24、将real型数组中的数据存放于机器人位姿数据中;
所述步骤S3具体包括如下步骤:
S31、检测当前字符串数组是否为最后一个字符串数组,若检测结果为否,则执行步骤S32;
S32、基于分隔符对当前字符串数组RecvString$(i)进行分解,将分解后的数据存放于令牌数组Recvstr2$中,并返回令牌数numtoke;
S33、检测令牌数numtoke是奇数还是偶数,若令牌数numtoke为奇数,则对前(numtoke-1)个令牌数对应的字符串进行数值转化及转化数值的存储,并将衔接后的字符串放入下一字符串数组的头部,若令牌数numtoke为偶数,则对前(numtoke-2)个令牌数对应的字符串进行数值转化及转化数据的存储,并将衔接后的字符串放入当前字符串数组的尾部,再将最后两个令牌数对应的字符串进行数值转化及转化数值的存储。
2.如权利要求1所述用于机器人二维视觉系统的通讯数据处理方法,其特征在于,针对奇数令牌数numtoke的字符串数组RecvString$(i)的数据处理方法具体包括如下步骤:
将衔接字符串变量midstr$连接令牌数组Recvstr2$中的首个字符串Recvstr2$(0),并赋值于首个字符串Recvstr2$(0);
S341、初始化令牌数的循环变量j=0,令衔接字符串变量midstr$为空,检测j是否小于等于
Figure FDA0003832202590000021
若检测结果为否,则执行步骤S342,若检测结果为是,则执行步骤S343;
S342、将令牌数组Recvstr2$中令牌数(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S341;
S343、将当前字符串数组RecvString$(i)中令牌数为(numtoke-1)的字符串赋值给衔接字符串变量midstr$;
S344、检测当前字符串数组RecvString$(i)的最右端是否为分隔符,若检测结果为是,则执行步骤S345,若检测结果为否,则执行步骤S346;
S345、将衔接字符串变量midstr$中的字符串转为数值存放于real型数组recpos(k,0)中,将下一字符串数组RecvString$(i+1)的首个分隔符前的字符串转为数组存放于real型数组recpos(k,1)中,在字符串数组RecvString$(i+1)剔除首个分隔符前的字符串,令衔接字符串变量midstr$为空,k=k+1,i=i+1,执行步骤S31;
S346、检测字符串数组RecvString$(i+1)的最左端是否为分隔符,若检测结果为是,则执行步骤S347,若检测结果为否,则执行步骤S348;
S347、删除字符串数组RecvString$(i+1)中的第一个分隔符,将衔接字符串变量midstr$中的字符串转为数值存放于real型数组recpos(k,0)中,将字符串数组RecvString$(i+1)的第一个分隔符前的字符串转为数组存放于real型数组recpos(k,1)中,在字符串数组RecvString$(i+1)剔除首个分隔符前的字符串,令衔接字符串变量midstr$为空,k=k+1,i=i+1,执行步骤S31;
S348、令i=i+1,执行步骤S31。
3.如权利要求1所述用于机器人二维视觉系统的通讯数据处理方法,其特征在于,针对偶数令牌数numtoke的字符串数组RecvString$(i)的数据处理方法具体包括如下步骤:
将衔接字符串变量midstr连接令牌数组Recvstr2$中的首个字符串Recvstr2$(0),并赋值于首个字符串Recvstr2$(0);
S351、初始化令牌数的循环变量j=0,检测j是否小于等于
Figure FDA0003832202590000041
若检测结果为是,则执行步骤S352,若检测结果为否,则执行步骤S353;
S352、将令牌数组Recvstr2$中令牌数为(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S351;
S353、检测当前字符串数组RecvString$(i)的最右端是否为分隔符,若检测结果为是,则执行步骤S354,若检测结果为否,则执行步骤S355;
S354、将令牌数组Recvstr2$中令牌数为(numtoke-2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(numtoke-1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,i=i+1,执行步骤S31;
S355、检测下一字符串数组RecvString$(i+1)的最左端是否为分隔符,若检测结果为是,则执行步骤S354,若检测结果为否,则执行步骤S356;
S356、基于分隔符对下一字符串数组RecvString$(i+1)进行分解,存储于令牌数组Recvstr3$,将令牌数组Recvstr2$中令牌数(numtoke-1)对应的字符串连接令牌数组Recvstr3$中首个令牌对应的字符串,并赋值给令牌数组Recvstr2$中的最后一个令牌数,在下一字符串数组RecvString$(i+1)进行删除首个字符串,将令牌数组Recvstr2$中令牌数为(numtoke-2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr2$中令牌数为(numtoke-1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,i=i+1,执行步骤S31。
4.如权利要求1所述用于机器人二维视觉系统的通讯数据处理方法,其特征在于,若当前字符串数组为最后一个字符串数组,其数据处理方法具体包括如下步骤:
S36、对字符串数组RecvString$(strnum)进行数据的分解处理,其处理方法具体如下:
S361、基于分隔符对当前字符串数组RecvString$(strnum)进行分解,将分解后的数据存放于令牌数组Recvstr 4$中,并返回令牌数numtoke,将衔接字符串变量midstr$连接令牌数组Recvstr 4$中第一个令牌数对应的字符串,并赋值令牌数组Recvstr 4$中第一个令牌数;
S362、初始化令牌数的循环变量j=0,检测j是否小于等于
Figure FDA0003832202590000051
若检测结果是,则执行步骤S363,若检测结果为否,则执行步骤S364;
S363、将令牌数组Recvstr 4$中令牌数为(j*2)的字符串转化为数值后存储于real型数组recpos(k,0)中,将令牌数组Recvstr 4$中令牌数为(j*2+1)的字符串转化为数值后存储于real型数组recpos(k,1)中,令k=k+1,j=j+1,执行步骤S362;
S364、将real型数组中的数据存放于机器人位姿数据中。
5.一种用于机器人二维视觉系统的通讯数据处理系统,其特征在于,所述系统包括:
工业相机,与工业相机通讯连接的视觉软件,与视觉软件通讯连接的机器人,其中,工业相机用于采集目标物体图像,视觉软件用于检测目标物体及获取目标物体的位姿,将目标物体的状态信息和位姿信息转换成字符串,发送至机器人,机器人基于权利要求1至4任一权利要求所述的用于机器人二维视觉系统的通讯数据处理方法来读取各目标物体的位姿数据。
CN202011610303.7A 2020-12-30 2020-12-30 用于机器人二维视觉系统的通讯数据处理方法及系统 Active CN112634357B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011610303.7A CN112634357B (zh) 2020-12-30 2020-12-30 用于机器人二维视觉系统的通讯数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011610303.7A CN112634357B (zh) 2020-12-30 2020-12-30 用于机器人二维视觉系统的通讯数据处理方法及系统

Publications (2)

Publication Number Publication Date
CN112634357A CN112634357A (zh) 2021-04-09
CN112634357B true CN112634357B (zh) 2022-12-23

Family

ID=75286796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011610303.7A Active CN112634357B (zh) 2020-12-30 2020-12-30 用于机器人二维视觉系统的通讯数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN112634357B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116275587B (zh) * 2023-04-17 2023-10-27 霖鼎光学(江苏)有限公司 一种激光切割工件的控制系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011024554A1 (ja) * 2009-08-25 2011-03-03 日本電気株式会社 アセンブル装置、構文解析方法、及びアセンブラプログラム
CN108401461A (zh) * 2017-12-29 2018-08-14 深圳前海达闼云端智能科技有限公司 三维建图方法、装置、系统、云端平台、电子设备和计算机程序产品
CN109062204A (zh) * 2018-07-25 2018-12-21 南京理工大学 一种基于跟随领航者编队的多移动机器人控制系统
WO2019068319A1 (en) * 2017-10-04 2019-04-11 Telefonaktiebolaget Lm Ericsson (Publ) METHOD AND ARRANGEMENT FOR DETERMINING A TRACK OF A ROBOTIC DEVICE IN A CLOUD
CN109814482A (zh) * 2019-02-13 2019-05-28 珠海格力智能装备有限公司 机器人的控制器及其控制方法和工业机器人

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011024554A1 (ja) * 2009-08-25 2011-03-03 日本電気株式会社 アセンブル装置、構文解析方法、及びアセンブラプログラム
WO2019068319A1 (en) * 2017-10-04 2019-04-11 Telefonaktiebolaget Lm Ericsson (Publ) METHOD AND ARRANGEMENT FOR DETERMINING A TRACK OF A ROBOTIC DEVICE IN A CLOUD
CN108401461A (zh) * 2017-12-29 2018-08-14 深圳前海达闼云端智能科技有限公司 三维建图方法、装置、系统、云端平台、电子设备和计算机程序产品
CN109062204A (zh) * 2018-07-25 2018-12-21 南京理工大学 一种基于跟随领航者编队的多移动机器人控制系统
CN109814482A (zh) * 2019-02-13 2019-05-28 珠海格力智能装备有限公司 机器人的控制器及其控制方法和工业机器人

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"The Design and Study of the Drainage Pipelines Dredging Robot";Yuan Fucai等;《2010 International Conference on Computing, Control and Industrial Engineering》;20100628;第17-20页 *
"机器人自主抓取的三维点云基本形体简化算法";曹雏清等;《华中科技大学学报(自然科学版)》;20200131;第48卷(第1期);第13-19页 *

Also Published As

Publication number Publication date
CN112634357A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
CN111179324B (zh) 基于颜色和深度信息融合的物体六自由度位姿估计方法
CN108656107B (zh) 一种基于图像处理的机械臂抓取系统及方法
Verdoja et al. Fast 3D point cloud segmentation using supervoxels with geometry and color for 3D scene understanding
CN109760045B (zh) 一种离线编程轨迹生成方法及基于该方法的双机器人协同装配系统
Ückermann et al. Real-time 3D segmentation of cluttered scenes for robot grasping
CN114663514B (zh) 一种基于多模态稠密融合网络的物体6d姿态估计方法
CN112634357B (zh) 用于机器人二维视觉系统的通讯数据处理方法及系统
CN109376743A (zh) 图像处理方法、装置、图像识别设备及储存介质
Zhang et al. Vision-based reaching using modular deep networks: from simulation to the real world
CN114663686A (zh) 物体特征点匹配方法及装置、训练方法及装置
CN112581368B (zh) 一种基于最优图匹配的多机器人栅格地图拼接方法
Dai et al. Eaainet: An element-wise attention network with global affinity information for accurate indoor visual localization
CN106845555A (zh) 基于Bayer格式的图像匹配方法及图像匹配装置
EP3995993A1 (en) Process for the extension of deep-learning based 2d-object-detectors for the 6d-pose-estimation
WO2023168955A1 (zh) 拾取位姿信息确定方法、装置、设备和计算机可读介质
US20230360262A1 (en) Object pose recognition method based on triangulation and probability weighted ransac algorithm
Suzui et al. Toward 6 dof object pose estimation with minimum dataset
CN115130333A (zh) 一种数字孪生模型合并方法
CN113721628A (zh) 一种融合图像处理的迷宫机器人路径规划方法
Lin et al. 3D Pose estimation using genetic-based iterative closest point algorithm
CN113010724A (zh) 一种基于视觉特征点匹配的机器人地图选择方法及系统
Jeune et al. A unified framework for attention-based few-shot object detection
CN108664848A (zh) 图像目标的识别方法及装置
CN113516157A (zh) 嵌入式三维扫描系统和三维扫描装置
Bhuyan et al. Structure‐aware multiple salient region detection and localization for autonomous robotic manipulation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant