本发明涉及机器人技术领域,尤指一种基于反光编码标签的信息获取方法和系统。
背景技术:
随着技术的发展、创新,机器人技术越来越成熟。目前,由于传感器器件成本、性能,软件算法成熟度、可靠性等方面的因素,大部分机器人使用的定位方式是基于单线激光雷达的。由于单线激光雷达,只能探测到固定高度平面内的物体距离信息,所以单线激光雷达很难通过检测到的轮廓,获取物体类别等准确信息,导致机器人也无法准确识别出物体类别。
然而,机器人实际应用场景中,又经常需要能检测出物体类别。常用的解决方法是增装rgb摄像头,或者rgbd深度摄像头等传感器,通过软件算法处理这些传感器的数据,实现物体识别,从而获取物体类别等信息。但是增装摄像头或者相机的方式,往往会大大增加机器人的硬件成本,而且软件算法实现复杂,最后由于无法效避免环境光与强日光的干扰,通过视觉识别物体的可靠性还不能保证。
因此,如何在使用单线激光雷达,且不增设额外传感器的前提下,降低硬件成本,减小软件识别算法,准确识别出物体类别是亟需解决的问题。
技术实现要素:
本发明的目的是提供一种基于反光编码标签的信息获取方法和系统,实现不用额外增加昂贵的传感器设备,或者复杂的软件算法,即在可控成本的前提下,即可达到准确获取物体相关信息的目的。由于使用的原始激光雷达数据,算法简单,易于安装。
本发明提供的技术方案如下:
本发明提供一种基于反光编码标签的信息获取方法,包括步骤:
通过安装于机器人的激光雷达发射激光束,并接收反射回来的待识别激光束;所述待识别激光束包括非反光区域所反射的激光束,以及设于待识别物体上反光编码标签的反光区域所反射的激光束;所述反光编码标签包括标签反光区域和标签非反光区域,且所述标签反光区域与所述标签非反光区域两两相间;
对所有待识别激光束进行遍历处理,根据处理结果得到设于所述待识别物体上反光编码标签的反光编码;
根据预设解码规则对所述反光编码进行解码得到物体编码;
根据所述物体编码查询预设物体编码列表得到所述待识别物体的物体相关信息。
进一步的,所述对所有待识别激光束进行遍历处理,根据处理结果得到设于所述待识别物体上反光编码标签的反光编码具体包括步骤:
对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值,根据所述激光反射强度数值识别每个待识别激光束的反射激光类型;
计算所述待识别激光束对应的簇宽度;
根据各待识别激光束对应的编号、簇宽度以及簇宽度类型,分析得到所述反光编码。
进一步的,所述对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值,根据所述激光反射强度数值识别每个待识别激光束的反射激光类型具体包括步骤:
对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值;
确定激光反射强度数值达到预设强度阈值的待识别激光束为反光激光束,且未达到预设强度阈值的待识别激光束为非反光激光束;
所述确定激光反射强度数值达到预设强度阈值的待识别激光束为反光激光束,且未达到预设强度阈值的待识别激光束为非反光激光束之后包括步骤:
对识别反射激光类型后的待识别激光束根据预设分组规则进行分组并编号。
进一步的,所述根据各待识别激光束对应的编号、簇宽度以及簇宽度类型,分析得到所述反光编码具体包括步骤:
确定所述反光激光束对应的簇宽度类型为反光簇宽度,以及所述非反光激光束对应的簇宽度类型为非反光簇宽度;
判断首位编号所对应当前反光激光束的反光簇宽度是否符合预设数值;
若符合第一预设宽度,确定所述当前反光激光束为所述反光编码标签对应的编码起始位;
判断后续位编号所对应待识别激光束的簇宽度是否符合预设宽度;
若所述后续位编号所对应待识别激光束的簇宽度不符合预设宽度,则重新查找所述编码起始位;
若所述后续位编号所对应待识别激光束的簇宽度符合预设宽度,则按照编号先后顺序查找所述反光编码标签对应的编码数据位、编码校验位以及编码终止位,并根据数据位先后顺序、每一数据位分别对应的簇宽度及其簇宽度类型得到所述反光编码。
进一步的,还包括步骤:
获取发射激光束至所述反光区域,并接收到从所述反光区域反射回来的激光束的目标收发时间,根据所述目标收发时间计算得到所述机器人与所述反光编码标签之间的距离值;
根据所述中心点坐标获取发射激光束至所述反光区域,并接收到从所述反光区域反射回来的激光束的目标收发时间,根据所述目标收发时间计算得到所述机器人与所述反光编码标签之间的距离值。
本发明还提供一种基于反光编码标签的信息获取系统,包括:机器人和待识别物体;所述待识别物体设有反光编码标签,所述反光编码标签包括标签反光区域和标签非反光区域,且所述标签反光区域与所述标签非反光区域两两相间;所述机器人包括:
激光雷达,用于扫描待识别物体,并接收反射回来的待识别激光束;所述待识别激光束包括非反光区域所反射的激光束和所述反光区域所反射的激光束;
处理模块,与所述激光雷达连接,用于对所有待识别激光束进行遍历处理,根据处理结果得到设于所述待识别物体上反光编码标签的反光编码;
解码模块,与所述处理模块连接,用于根据预设解码规则对所述反光编码进行解码得到物体编码;
物体识别模块,与所述解码模块连接,用于根据所述物体编码查询预设物体编码列表得到所述待识别物体的物体相关信息。
进一步的,所述处理模块包括:
反射激光类型识别单元,用于对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值,根据所述激光反射强度数值识别每个待识别激光束的反射激光类型;
簇宽度计算单元,用于计算所述待识别激光束对应的簇宽度;
反光编码生成单元,分别与所述反射激光类型识别单元和所述簇宽度计算单元连接,用于根据各待识别激光束对应的编号、簇宽度以及簇宽度类型,分析得到所述反光编码。
进一步的,所述反射激光类型识别单元包括:
激光反射强度数值计算子单元,用于对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值;
反射激光类型识别子单元,与所述激光反射强度数值计算子单元连接,用于确定激光反射强度数值达到预设强度阈值的待识别激光束为反光激光束,且未达到预设强度阈值的待识别激光束为非反光激光束;
编号子单元,与所述反射激光类型识别子单元连接,用于对识别反射激光类型后的待识别激光束根据预设分组规则进行分组并编号。
进一步的,所述反光编码生成单元包括:
簇宽度类型确定子单元,用于确定所述反光激光束对应的簇宽度类型为反光簇宽度,以及所述非反光激光束对应的簇宽度类型为非反光簇宽度;
第一查找子单元,用于判断首位编号所对应当前反光激光束的反光簇宽度是否符合预设数值,若是确定所述当前反光激光束为所述反光编码标签对应的编码起始位;
判断子单元,判断后续位编号所对应待识别激光束的簇宽度是否符合预设宽度;
第二查找子单元,与所述判断子单元和所述第一查找子单元连接,用于若所述后续位编号所对应待识别激光束的簇宽度不符合预设宽度,则所述第一查找子单元重新查找所述编码起始位;若所述后续位编号所对应待识别激光束的簇宽度符合预设宽度,则按照编号先后顺序查找所述反光编码标签对应的编码数据位、编码校验位以及编码终止位,并根据数据位先后顺序、每一数据位分别对应的簇宽度及其簇宽度类型得到所述反光编码。
进一步的,还包括步骤:
获取发射激光束至所述反光区域,并接收到从所述反光区域反射回来的激光束的目标收发时间,根据所述目标收发时间计算得到所述机器人与所述反光编码标签之间的距离值;
根据所述中心点坐标获取发射激光束至所述反光区域,并接收到从所述反光区域反射回来的激光束的目标收发时间,根据所述目标收发时间计算得到所述机器人与所述反光编码标签之间的距离值。
通过本发明提供的一种基于反光编码标签的信息获取方法和系统,能够不用额外增加昂贵的传感器设备,或者复杂的软件算法,即在可控成本的前提下,即可达到准确获取物体相关信息的目的。由于使用的原始激光雷达数据,算法简单,易于安装。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种基于反光编码标签的信息获取方法和系统的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明一种基于反光编码标签的信息获取方法的一个实施例的流程图;
图2是本发明一种基于反光编码标签的信息获取方法的另一个实施例的流程图;
图3是本发明一种基于反光编码标签的信息获取方法的另一个实施例的流程图;
图4是本发明一种基于反光编码标签的信息获取方法的另一个实施例的流程图;
图5是本发明一种反光编码标签的一个示意图;
图6是本发明另一种反光编码标签的一个示意图;
图7是本发明一种基于反光编码标签的信息获取系统的一个实施例的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
本发明的一个实施例,如图1所示,一种基于反光编码标签的信息获取方法,包括:
s100通过安装于机器人的激光雷达发射激光束,并接收反射回来的待识别激光束;待识别激光束包括非反光区域所反射的激光束,以及设于待识别物体上反光编码标签的反光区域所反射的激光束;反光编码标签包括标签反光区域和标签非反光区域,且标签反光区域与标签非反光区域两两相间;
具体的,本实施例中,激光雷达包括多线激光雷达和单线激光雷达,多线激光雷达是指同时发射及接收多束激光的激光旋转测距雷达,多线激光雷达可以识别物体的高度信息并获取周围环境的3d扫描图。由于单线激光雷达只有一路激光发射器和一路激光接收器,单线激光雷达相比多线激光雷达,其在角频率及灵敏度上反应更快捷,在测试周围障碍物的距离和精度上都更加精准,结构相对简单,扫描速度快、分辨率强、使用方便,功耗低、成本低、可靠性高。单线雷达只能平面式扫描,不能测量物体高度。总的来说,多线激光雷达的应用场景更为复杂,对性能的要求更高,但其价格昂贵,是大多数企业难以承受的。相比来说,单线激光雷达的结构更为简单,成本也更低,更容易满足服务机器人的使用需求,在距离及精度上更加精准。
非反光区域包括标签非反光区域,以及物体或者其他障碍物等等其他非反光区域。首先,设于机器人上的激光雷达上电扫描周围环境,并且在一个激光帧即一个激光扫描周期内接收所有反射回来的待识别激光束。优选的,为了便于激光雷达接收到反光编码标签的反光区域所反射的激光束,将反光编码标签设置在与机器人前进方向平行的位置处,且最好使得反光编码标签的高度位置与激光雷达的设置高度一致,以保证机器人运动过程中可以探测到反光编码标签。反光区域为设有反光布,反光晶格片,反光喷绘布、反光贴纸等反光材料的区域。
s200对所有待识别激光束进行遍历处理,根据处理结果得到设于待识别物体上反光编码标签的反光编码;
s300根据预设解码规则对反光编码进行解码得到物体编码;
s400根据物体编码查询预设物体编码列表得到待识别物体的物体相关信息。
具体的,与激光雷达连接的处理器从激光雷达处获取其接收到的所有待识别激光束,然后,对所有待识别激光束进行遍历处理,根据处理结果得到设于待识别物体上反光编码标签的反光编码。由于反光区域所反射回来的激光束的激光反射强度数值会比墙,桌子,门等常见的物体要强,因此,很容易通过处理器对非反光区域和反光编码标签上反光区域所反射回来的激光束进行识别区分,然后对非反光区域和反光编码标签上反光区域所反射回来的激光束进行处理得到反光编码标签的反光编码。然后处理器根据预设解码规则对到反光编码进行解码得到物体编码。预设物体编码列表包括每个物体编码与物体相关信息之间的对应关系,那么机器人可以查询预设物体编码列表,匹配得到物体编码对应的物体相关信息,从而实现机器人扫描待识别物体上的反光编码标签获取物体相关信息的目的。物体相关信息包括但是不限于物体的种类、编号、颜色、品牌、品名、规格尺寸、主要成份、生产厂商、重量。
通过本实施例,本发明在使用激光雷达,不增加额外摄像头、相机等图像采集传感器的前提下,通过在待识别物体上设置反光编码标签,然后用软件算法解析反光编码标签携带的物体编码,即可获取待识别物体的物体相关信息,通过激光雷达扫描设有反光编码标签以及编码解码的方式相对于现有技术视觉识别算法而言,获取物体相关信息的可靠性高,不额外增加摄像头、相机等设备的硬件成本。由于编码能够包含主要成份、重量等信息,且不存在视觉干扰,因此本实施例相对于现有技术中视觉识别算法而言,能够获取更多、更准确的物体相关信息。最后,由于现有技术中视觉识别算法需要对图像采集传感器所采集图像进行大量处理、识别而言,仅仅对待识别激光束进行处理并且获取物体相关信息,数据量小,软件算法简单。
本发明的一个实施例,如图2所示,一种基于反光编码标签的信息获取方法,包括:
s100通过安装于机器人的激光雷达发射激光束,并接收反射回来的待识别激光束;待识别激光束包括非反光区域所反射的激光束,以及设于待识别物体上反光编码标签的反光区域所反射的激光束;反光编码标签包括标签反光区域和标签非反光区域,且标签反光区域与标签非反光区域两两相间;
s210对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值,根据激光反射强度数值识别每个待识别激光束的反射激光类型;
具体的,因为在同一距离下,标签反光区域所反射回来激光束的激光反射强度数值要远高于普通物体或者标签非反光区域所反射回来激光束的激光反射强度数值,所以,遍历所有反射回来的待识别激光束,计算每个待识别激光束的激光反射强度数值,根据激光反射强度数值识别每个待识别激光束的反射激光类型。
s220计算待识别激光束对应的簇宽度;
具体的,s210与s220之间没有执行先后顺序。关于待识别激光束对应的簇宽度的计算,首先计算每个待识别激光束的激光反射点的位置坐标,然后根据激光反射点的位置坐标计算得到待识别激光束对应的簇宽度。
通过以下公式计算待识别激光束对应的反射激光点的位置pi(x_i,y_i):
x_i=data.ranges[index]*cos(data.angle_min+data.angle_increment*index);
y_i=data.ranges[index]*sin(data.angle_min+data.angle_increment*index);
其中:index为激光束编号;
data.angle_min为激光开始扫描的角度;
data.ranges[index]为编号为index激光束探测到的距离;
data.angle_increment为相邻激光束之间的角度差。
具体的,比如,激光开始扫描的角度为30°,此时发出第一激光束编号为1,假如相邻激光束之间的角度差为10°,现第三激光束(编号为3)探测到与反光编码标签的距离为l3,那么,可获得第三激光束对应的反射激光点的位置坐标p3(x_3,y_3):
x_3=l3*cos[30°+2*10°]=l3*cos50°;
y_i=l3*sin[30°+2*10°]=l3*sin50°。
假设第k簇激光,两端激光束分别为3、6(提取识别标签反光区域所反射回来激光束之后,这两个值是已知的),根据上述方式计算得到第三激光束的位置坐标为p3(x_3,y_3),第六激光束的位置坐标为p6(x_6,y_6),那么根据两点间距离可以计算获得到第k簇待识别激光束的簇宽度如下:
d(k)=sqrt((x_6-x_3)*(x_6-x_3)+(y_6-y_3)*(y_6-y_3));
其中,函数sqrt(),是c++求平方根的函数。
s230根据各待识别激光束对应的编号、簇宽度以及簇宽度类型,分析得到反光编码;
s300根据预设解码规则对反光编码进行解码得到物体编码;
s400根据物体编码查询预设物体编码列表得到待识别物体的物体相关信息。
具体的,本实施例中与上述实施例相同的部分同上述实施例,在此不再一一赘述。根据激光反射强度数值识别每个待识别激光束的反射激光类型,并且通过上述方式计算得到簇宽度类型后,处理器根据各待识别激光束对应的编号、簇宽度以及簇宽度类型分析得到反光编码。
通过本实施例,该系统由硬件部分和软件部分共同构成。其中,硬件部分主要包括:安装于机器人上的激光雷达、处理器,贴于待识别物体上的反光编码标签。其中,激光雷达可以探测到一定高度范围内的物体,并反馈距离和反射回来待识别激光束的激光反射强度数值,处理器运行软件算法;优选的,反光编码标签可以是使用反光贴纸按照预设编码方式贴于物体上。软件部分主要包括:激光雷达驱动程序,反光贴纸信息处理程序。其中,激光雷达驱动程序由器件厂商提供,用于反馈所探测到物体的距离和激光反射强度数值,反光贴纸信息处理程序,用于根据反射强度提取环境中的反光编码,然后根据与预设编码规则相匹配的预设解码规则解析反光编码得到物体编码,再根据物体编码获取物体相关信息。本发明不用额外增加昂贵的传感器设备,或者复杂的软件算法,即在可控成本的前提下,即可达到准确获取物体相关信息的目的。由于使用的原始激光雷达数据,算法简单,易于安装。
本发明的一个实施例,如图3所示,一种基于反光编码标签的信息获取方法,包括:
s100通过安装于机器人的激光雷达发射激光束,并接收反射回来的待识别激光束;待识别激光束包括非反光区域所反射的激光束,以及设于待识别物体上反光编码标签的反光区域所反射的激光束;反光编码标签包括标签反光区域和标签非反光区域,且标签反光区域与标签非反光区域两两相间;
s211对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值;
s212确定激光反射强度数值达到预设强度阈值的待识别激光束为反光激光束,且未达到预设强度阈值的待识别激光束为非反光激光束;
s215对识别反射激光类型后的待识别激光束根据预设分组规则进行分组并编号;
s220计算待识别激光束对应的簇宽度;
s230根据各待识别激光束对应的编号、簇宽度以及簇宽度类型,分析得到反光编码;
s300根据预设解码规则对反光编码进行解码得到物体编码;
s400根据物体编码查询预设物体编码列表得到待识别物体的物体相关信息。
具体的,本实施例中与上述实施例相同的部分同上述实施例,在此不再一一赘述。预设编码规则与预设解码规则相匹配。因为在同一距离下,标签反光区域所反射回来激光束的激光反射强度数值要远高于普通物体或者标签非反光区域所反射回来激光束的激光反射强度数值,所以,遍历所有反射回来的待识别激光束,计算每个待识别激光束的激光反射强度数值,如果某一激光束的激光反射强度数值是否达到预设强度阈值g(在同一距离下该预设强度阈值根据实际的激光雷达器件和反光材料确定),如果达到则认为检测到了标签反光区域,继续遍历后续的待识别激光束。由于反光激光束所对应发射激光点均是在标签反光区域上的反射点,且反光编码标签两端设有反光条(即标签反光区域),且中间设有多个反光条,所以实际提取到的反光激光束是多个反光条反射回来的激光束,因此需要先将这些反光激光束进行分组,假设反光编码标签设有5个反光条,根据激光束的激光反射强度数值以及簇宽度将所有反光激光束分为5个簇组,第1簇组中的反光激光束是第一反光条反射回来的,第2簇组中的反光激光束是第二反光条反射回来的,依此类推。实际场景中,会要求反光编码标签的标签反光区域(即暗码)和标签非反光区域(即明码)的宽度d、d都是厘米级别的,且暗码和明码一定是交替出现的,因为,不能仅仅依据宽度来区分标签反光区域例如反光条。比如假设d=1厘米,d=2厘米,检测到了一个2厘米的反光条,如果不严格要求明暗交替,就不能确定该反光条是两个宽度为d的,还是一个宽度为d的。假设激光雷达距离被测物体1米,激光雷达角度分辨率为0.33°(角度分辨率是相邻两束激光相差的角度,此处0.33°是一款西克激光雷达的角度分辨率,仅为示例,不同激光雷达的角度分辨率会有差异)。可以计算出距离精度(距离精度是相邻两束激光打到同一平面,两个反射点之间的距离)在毫米级别,假设经过多次测量得到预设距离精度为v,当物体与激光雷达距离更近的时候,距离精度会更高。实际使用的时候,也会保证机器人和反光编码标签在一定距离范围的时候,才认为识别到的反光编码有效。所以,如果相邻两束激光是打到同一平面反射的,反射点之间的距离一定比较小,暗码和明码是在同一平面的,只会存在强度的差异。假设遍历到第1激光束的激光反射强度数值达到预设强度阈值g,则将第1激光束归为第j个簇组,继续遍历到第2激光束的激光反射强度数值达到预设强度阈值g,此时可以计算出第2激光束与第1激光束反射点之间的距离d1-2,若d1-2是小于等于预设距离精度为v,将第2激光束归为第j簇组,继续遍历将第3激光束、第4激光束、……、第i激光束同第2激光束合法则同样归为第j簇组,直至第j簇组的簇组宽度等于d或d为止,第j簇组的簇组宽度即第1激光束、第2激光束、第3激光束、第4激光束、……、第i激光束的所有激光束簇宽度之和。继续遍历到第i+1激光束,若第i+1激光束的激光反射强度数值达到预设强度阈值g,此时可以计算出第i+1激光束与第i激光束反射点之间的距离di-i+1,若di-i+1远远大于距离精度,即di-i+1是厘米级别的或者更大,说明第i+1激光束一定不属于第j簇组,将第i+1激光束归为第j+1簇组。依此类推,提取所有反光激光束归类至对应簇组并进行编号标记,得到n个簇组。当然,如果上述激光束的激光反射强度数值小于预设强度阈值g且大于0,则为普通物体即非反光区域反射回来的激光束。所有簇组提取完之后,再按照反光编码标签的预设编码规则,从所有簇组中提取合法的反光编码。
优选的,在不同的物体上贴设不同反光编码但是长度一致的反光编码标签时,反光编码标签的整个长度u要大于反光编码标签的所有标签反光区域长度和所有标签非反光区域长度之和(长度为在同一水平线上的数值)。假设不同的物体分别贴设两个反光编码标签,分别为物体甲贴设反光编码标签a,物体乙贴设反光编码标签b,那么不同反光编码标签之间的相隔距离远远大于预设距离值,延续上述例子,物体甲贴设反光编码标签a与物体乙贴设反光编码标签b之间的距离远远大于预设距离值,避免机器人误识别,例如将从反光编码标签a反射回来的反光激光束误识别为从反光编码标签b反射回来的反光激光束,提升机器人的计算量的同时,更加提高物体相关信息的识别准确率和可靠性。
本发明的一个实施例,如图4所示,一种基于反光编码标签的信息获取方法,包括:
s100通过安装于机器人的激光雷达发射激光束,并接收反射回来的待识别激光束;待识别激光束包括非反光区域所反射的激光束,以及设于待识别物体上反光编码标签的反光区域所反射的激光束;反光编码标签包括标签反光区域和标签非反光区域,且标签反光区域与标签非反光区域两两相间;
s211对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值;
s212确定激光反射强度数值达到预设强度阈值的待识别激光束为反光激光束,且未达到预设强度阈值的待识别激光束为非反光激光束;
s215对识别反射激光类型后的待识别激光束根据预设分组规则进行分组并编号;
s220计算待识别激光束对应的簇宽度;
s231确定反光激光束对应的簇宽度类型为反光簇宽度,以及非反光激光束对应的簇宽度类型为非反光簇宽度;
s232判断首位编号所对应当前反光激光束的反光簇宽度是否符合预设数值;
s233若符合第一预设宽度,确定当前反光激光束为反光编码标签对应的编码起始位;
s234判断后续位编号所对应待识别激光束的簇宽度是否符合预设宽度;
s235若后续位编号所对应待识别激光束的簇宽度不符合预设宽度,则重新查找编码起始位;
s236若后续位编号所对应待识别激光束的簇宽度符合预设宽度,则按照编号先后顺序查找反光编码标签对应的编码数据位、编码校验位以及编码终止位,并根据数据位先后顺序、每一数据位分别对应的簇宽度以及簇宽度类型得到反光编码;
s300根据预设解码规则对反光编码进行解码得到物体编码;
s400根据物体编码查询预设物体编码列表得到待识别物体的物体相关信息。
具体的,本实施例中与上述实施例相同的部分同上述实施例,在此不再一一赘述。如图5和图6所示,黑色区域表示贴的反光贴纸,后文简称暗码,白色区域表示未贴反光贴纸,后文简称明码。暗码和明码都有“宽”,“窄”两种宽度,且对应的宽度值相同,分别标记为d、d,这两个值在实际应用中,可根据应用场景、传感器器件等因素验证确定。如图5所示,假设反光编码标签由5个标签反光区域和4个标签非反光区域组成,即反光编码标签对应有9个位数,分别包括起始位、数据位、校验位和终止位。反光编码标签的起始位标签反光区域和终止位标签反光区域对应的宽度可以是d,也可以是根据需求设置的预设值a,数据位和校验位的宽度必须是d或者d。在获得的n个反光条簇组中,从第1簇组开始遍历,计算簇组宽度。如果第1簇组的簇组宽度为d,反射强度数值达到预设强度阈值g,则假设找到了反光编码标签的起始位,再遍历后续的激光束,如果激光强度大于0且小于预设强度阈值g,则归为第1个反光编码标签第1位数据位(图5中第2位),如果该位激光簇组的宽度为d,或者为d,则为有效位。继续寻找第1个反光单排条码的第2位数据位。依此类推,直到找全9位。如果第1簇组的簇组宽度不为d,则为无效簇组,继续遍历后续反光激光束。如果第1个数据位的宽度不为d,也不为d,则从寻找起始位重新开始。暗码和明码中,“窄”的即宽度为d代表“0”,“宽”的即宽度为d代表“1”。反光编码标签最左侧和最右侧宽的暗码,分别为start位、stop位,用于标记一个反光编码标签的起始、终止。如图5所示,位于起始和终止之间的,从左到右,按照高位到低位顺序,可以解析为0011100。低4位对应物体相关信息的编号id,且低4位为“1100”,二进制转换为十进制为12,高3位对应物体相关信息的种类,且高3位为“001”,二进制转换为十进制为1。所以图5所示的反光单排条码可以标识的物体是种类为“1”且编号id为“12”的物体。这里举例只用了7位数据位,实际应用中可以扩展成更多的位数,以区分更多类别,或携带更多物体信息。当然,可以根据需要将二进制码转换为十六进制,此为现有技术在此不再一一赘述。
图5中第8位是校验位,校验方法为奇校验,或者偶校验。如图5所示的2~7位数据位的编码为“0011100”,其中“1”的个数为3,为奇数,如果是奇校验,则校验位应该为0,如果是偶校验,则校验位为1。校验规则事先选择一种。当校验匹配时,该反光单排条码才有效。
优选的,在设于待识别物体上的反光编码标签为反光单排条码时,安装于机器人的激光雷达为单线激光雷达,以便无需增设摄像头等硬件设备,降低机器人获取待识别物体的物体信息的成本的同时,提升物体识别效率和可靠性。反光单排条码为标签反光区域和标签非反光区域只在一个方向(一般是水平方向)上排列,且标签反光区域与标签非反光区域两两相间,水平方向最左侧和最右侧宽为标签反光区域且宽度为d的反光条码。反光单排条码例如图5所示,黑色区域表示贴的反光贴纸,后文简称暗码,白色区域表示未贴反光贴纸,后文简称明码。暗码和明码都有“宽”,“窄”两种宽度,分别标记为d、d,d>d,d、d的数值大小实际应用中,可根据应用场景、传感器器件等因素验证确定。如图5所示,反光单排条码为根据预设编码规则以及9个位数,按照起始位、终止位为宽度为d的暗码,且暗码与明码两两相间的方式进行贴设相应的反光贴纸,并按照位数先后顺序进行标号。
优选的,在设于待识别物体上的反光编码标签为反光多排条码时,安装于机器人的激光雷达为多线激光雷达,或者安装于机器人的激光雷达数量与反光编码标签的反光条码的排数相等,假设反光多排条码为沿着高度方向并排上下设置多个单排条码,则单线激光雷达的安装高度根据需要设置,那么就将反光多排条码的每个单排条码对应每个单线激光雷达的设置高度贴设在待识别物体上,以便提升物体识别效率和可靠性同时,使得机器人后续通过解码了解外界待识别物体更多的物体信息。反光多排条码为标签反光区域和标签非反光区域在两个方向(一般是水平方向和竖直方向)上排列,且标签反光区域与标签非反光区域两两相间,每个水平方向的最左侧和最右侧宽为标签反光区域且宽度为d,由多个单排条码在竖直方向上排列组合的反光条码。如图6所示,黑色区域表示贴的反光贴纸,后文简称暗码,白色区域表示未贴反光贴纸,后文简称明码。暗码和明码都有“宽”,“窄”两种宽度,分别标记为d、d,d>d,d、d的数值大小实际应用中,可根据应用场景、传感器器件等因素验证确定。如图6所示,反光双排条码类似于上述图5的反光单排条码规则进行排列,将两个单排条码按照预设距离沿着高度方向组合在一起得到如图6的反光双排条码。如图6所示,位于起始和终止之间的,从左到右并且从上到下,按照高位到低位顺序,可以解析得到数据位矩阵
本发明使用激光雷达,不用额外增加昂贵的图像采集传感器等探测传感器设备,或者复杂的软件算法,即在可控成本的前提下,即可达到准确获取物体相关信息的目的。由于使用的原始激光雷达数据,算法简单,易于安装。
本发明的一个实施例,一种基于反光编码标签的信息获取方法,包括:
s100通过安装于机器人的激光雷达发射激光束,并接收反射回来的待识别激光束;待识别激光束包括非反光区域所反射的激光束,以及设于待识别物体上反光编码标签的反光区域所反射的激光束;反光编码标签包括标签反光区域和标签非反光区域,且标签反光区域与标签非反光区域两两相间;
s200对所有待识别激光束进行遍历处理,根据处理结果得到设于待识别物体上反光编码标签的反光编码;
s300根据预设解码规则对反光编码进行解码得到物体编码;
s400根据物体编码查询预设物体编码列表得到待识别物体的物体相关信息;
s500获取发射激光束至反光区域,并接收到从反光区域反射回来的激光束的目标收发时间,根据目标收发时间计算得到机器人与反光编码标签之间的距离值。
具体的,本实施例中,将激光束进行发射至待识别物体的表面,获取激光束从激光雷达的发射时间,以及接收到所有待识别激光束的接收时间,由于处理器能够识别出从反光编码标签的反光区域反射回来的激光束即反光激光束,因此,在一个激光帧中,查找任意一个从某反光编码标签所反射回来的反光激光束的目标接收时间,与发射时间进行时间差计算得到目标收发时间,从而根据目标收发时间计算得到机器人与反光编码标签之间的距离值。
本发明的一个实施例,如图7所示,一种基于反光编码标签的信息获取系统,包括:机器人1和待识别物体2;待识别物体2设有反光编码标签21,反光编码标签21包括标签反光区域和标签非反光区域,且标签反光区域与标签非反光区域两两相间;机器人1包括:
激光雷达11,用于扫描待识别物体2,并接收反射回来的待识别激光束;待识别激光束包括非反光区域所反射的激光束和反光区域所反射的激光束;
处理模块12,与激光雷达11连接,用于对所有待识别激光束进行遍历处理,根据处理结果得到设于待识别物体2上反光编码标签21的反光编码;
解码模块13,与处理模块12连接,用于根据预设解码规则对反光编码进行解码得到物体编码;
物体识别模块14,与解码模块13连接,用于根据物体编码查询预设物体编码列表得到待识别物体2的物体相关信息。
具体的,本实施例是上述方法实施例对应的系统实施例,具体效果参见上述方法实施例,在此不再一一赘述。处理模块12、解码模块13和物体识别模块14可集成于处理器。
基于前述实施例,处理模块12包括:
反射激光类型识别单元,用于对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值,根据激光反射强度数值识别每个待识别激光束的反射激光类型;
簇宽度计算单元,用于计算待识别激光束对应的簇宽度;
反光编码生成单元,分别与反射激光类型识别单元和簇宽度计算单元连接,用于根据各待识别激光束对应的编号、簇宽度以及簇宽度类型分析得到反光编码。
基于前述实施例,反射激光类型识别单元包括:
激光反射强度数值计算子单元,用于对所有待识别激光束进行遍历计算得到每个待识别激光束的激光反射强度数值;
反射激光类型识别子单元,与激光反射强度数值计算子单元连接,用于确定激光反射强度数值达到预设强度阈值的待识别激光束为反光激光束,且未达到预设强度阈值的待识别激光束为非反光激光束;
编号子单元,与反射激光类型识别子单元连接,用于对识别反射激光类型后的待识别激光束根据预设分组规则进行分组并编号。
基于前述实施例,反光编码生成单元包括:
簇宽度类型确定子单元,用于确定反光激光束对应的簇宽度类型为反光簇宽度,以及非反光激光束对应的簇宽度类型为非反光簇宽度;
第一查找子单元,用于判断首位编号所对应当前反光激光束的反光簇宽度是否符合预设数值,若是确定当前反光激光束为反光编码标签21对应的编码起始位;
判断子单元,判断后续位编号所对应待识别激光束的簇宽度是否符合预设宽度;
第二查找子单元,与判断子单元和第一查找子单元连接,用于若后续位编号所对应待识别激光束的簇宽度不符合预设宽度,则第一查找子单元重新查找编码起始位;若后续位编号所对应待识别激光束的簇宽度符合预设宽度,则按照编号先后顺序查找反光编码标签21对应的编码数据位、编码校验位以及编码终止位,并根据数据位先后顺序、每一数据位分别对应的簇宽度以及簇宽度类型得到反光编码。
基于前述实施例,还包括步骤:
获取发射激光束至反光区域,并接收到从反光区域反射回来的激光束的目标收发时间,根据目标收发时间计算得到机器人1与反光编码标签21之间的距离值;
根据中心点坐标获取发射激光束至反光区域,并接收到从反光区域反射回来的激光束的目标收发时间,根据目标收发时间计算得到机器人1与反光编码标签21之间的距离值。
具体的,本实施例是上述方法实施例对应的系统实施例,具体效果参见上述方法实施例,在此不再一一赘述。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。