行李车姿态估计方法、行李车姿态估计装置及机器人
技术领域
本申请属于机场运输技术领域,尤其涉及一种行李车姿态估计方法、行李车姿态估计装置、机器人及计算机可读存储介质。
背景技术
在机场中,行李车能够帮助乘客运送行李,减轻了乘客负担,乘客使用完的行李车通常散布在机场的各个角落,需要机场人员在整个机场寻找并收集分散的行李车,将其部署在乘客需要的地方,以备乘客使用。目前,很多机场出现了具有自主导航功能的自动行李车,能够帮助旅客将行李运送到指定位置,完成后回到特定位置继续为其他乘客提供服务。然而,自动行李车虽然能够避免人工收集行李车,但单台自动行李车价格较为昂贵,无法大规模应用。
发明内容
本申请提供了一种行李车姿态估计方法、行李车姿态估计装置、机器人及计算机可读存储介质,以解决现有技术中自动行李车价格较为昂贵,无法大规模应用的问题。
第一方面,本申请实施例提供了一种行李车姿态估计方法,所述行李车的轮廓设置有反红外姿态识别标记,所述行李车姿态估计方法包括:
基于红外单目相机和所述行李车的轮廓上设置的反红外姿态识别标记,获取所述行李车的初始图像;
根据所述行李车的初始图像,获取所述行李车的轮廓图;
根据所述行李车的轮廓图,获取所述行李车的姿态信息;
根据所述行李车的姿态信息,控制机器人移动到所述行李车所处位置的预设方位的预设位置。
第二方面,本申请实施例提供了一种行李车姿态估计装置,所述行李车的轮廓设置有反红外姿态识别标记,所述行李车姿态估计装置包括:
初始图像获取模块,用于基于红外单目相机和所述行李车的轮廓上设置的反红外姿态识别标记,获取所述行李车的初始图像;
轮廓图获取模块,用于根据所述行李车的初始图像,获取所述行李车的轮廓图;
姿态信息获取模块,用于根据所述行李车的轮廓图,获取所述行李车的姿态信息;
控制模块,用于根据所述行李车的姿态信息,控制机器人移动到所述行李车所处位置的预设方位的预设位置。
第三方面,本申请实施例提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述行李车姿态估计方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述行李车姿态估计方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当所述计算机程序产品在机器人上运行时,使得所述机器人执行如上述第一方面所述行李车姿态估计方法的步骤。
由上可见,本申请通过在行李车的轮廓上设置反红外姿态识别标记,可以使用红外单目相机获取行李车的轮廓图,并根据行李车的轮廓图获取行李车的姿态信息,从而使得机器人能够根据行李车的姿态信息,自动移动到行李车所处位置的预设方位的预设位置,快速收集行李车,而无需人工在整个机场寻找行李车,也无需对行李车进行较高成本的改造,降低了机场的人工成本和行李车成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的行李车姿态估计方法的实现流程示意图;
图2是行李车的正面示例图;
图3是本申请实施例二提供的行李车姿态估计方法的实现流程示意图;
图4是行李车的轮廓图;
图5是本申请实施例三提供的行李车姿态估计装置的示意图;
图6是本申请实施例四提供的机器人的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,是本申请实施例一提供的行李车姿态估计方法的实现流程示意图,该行李车姿态估计方法应用于机器人,如图所示该行李车姿态估计方法可以包括以下步骤:
步骤S101,基于红外单目相机和行李车的轮廓上设置的反红外姿态识别标记,获取所述行李车的初始图像。
在本申请实施例中,红外单目相机可以是指配有红外发光二极管和透红外光滤波片的单目相机。红外单目相机对红外光有感应,在配有红外发光二极管的条件下,成像中存在能够有效反射或发出红外光的物体,如镜面、反红外姿态识别标记、红外光源等。由于使用的红外发光二极管的光强远大于室内灯光发出的红外光,反红外姿态识别标记的成像亮度远大于室内的发光灯管,使得反红外姿态识别标记的识别不受室内光照和室内复杂背景的影响。反红外姿态识别标记能够在多角度有效反射红外光。其中,红外单目相机所使用的传感器可以是电荷耦合器图像传感器,对可见光与红外光均有感应,在红外单目相机的镜头配置透红外光滤波片后,红外光能够被电荷耦合器图像感应器感应,而可见光不能被电荷耦合器图像感应器感应,红外单目相机前方配置了一组红外发光二极管,主动发出红外光,红外光反射率较高的材料能够反射足够的红外光,并被电荷耦合器图像传感器感应成像。
需要说明的是,由于机场的行李车上缺少可用于设置(例如粘贴)反红外姿态识别标记的大面积平面,而行李车的姿态识别的精度和使用范围与反红外姿态识别标记的尺寸有关,反红外姿态识别标记越大,识别精度越高,使用范围越大,为了使得行李车上的反红外姿态识别标记的尺寸尽量大,可以在行李车的整体轮廓上均设置反红外姿态识别标记,使得反红外姿态识别标记不占用大面积平面,且反红外姿态识别标记的尺寸足够大,从而确保对行李车进行高精度的姿态识别。
步骤S102,根据所述行李车的初始图像,获取所述行李车的轮廓图。
其中,行李车的初始图像可以是指使用红外单目相机对设置有反红外姿态识别标记的行李车进行拍照时所获得的图像。行李车的轮廓图可以是指设置有反红外姿态识别标记的轮廓的图像,在行李车的轮廓图中通常不包含行李车上未设置反红外姿态识别标记的区域。
可选的,所述根据所述行李车的初始图像,获取所述行李车的轮廓图包括:
将所述行李车的初始图像转换为灰度图像;
对所述灰度图像进行二值化处理,获得二值化图像;
对所述二值化图像进行腐蚀处理和膨胀处理,去除所述二值化图像中的噪点,获得所述行李车的轮廓图。
在本申请实施例中,将行李车的初始图像转换为灰度图像可以是指将行李车的初始图像中每个像素点的灰度值转换到[0,255]范围内。对灰度图像进行二值化处理可以是指将灰度图像中每个像素点的灰度值转换为0或255,从而得到像素点的灰度值为0或255的二值化图像。可以先对二值化图像进行腐蚀处理,再对经过腐蚀处理后的二值化图像进行膨胀处理,从而可去除二值化图像中的噪点,获得行李车的轮廓图。行李车的初始图像通常为彩色图像,将行李车的初始图像转换为灰度图像,并进行二值化处理,可以减少图像的计算量。
可选的,所述对所述灰度图像进行二值化处理,获得二值化图像包括:
获取所述灰度图像中每个像素点的灰度值;
将所述灰度图像中灰度值大于灰度阈值的像素点的灰度值设置为255,将所述灰度图像中灰度值小于或等于所述灰度阈值的像素点的灰度值设置为0。
在本申请实施例中,针对红外单目相机,可以预先设置至少两组曝光时间与灰度阈值的对应关系,先获取红外单目相机的曝光时间,然后根据该曝光时间从上述两组对应关系中,获取与该曝光时间对应的灰度阈值,再将灰度图像中每个像素点的灰度值与该灰度阈值进行比较,从而获得二值化图像。其中,将灰度图像中每个像素点的灰度值设置为0或255之后所得的图像即为二值化图像。
步骤S103,根据所述行李车的轮廓图,获取所述行李车的姿态信息。
在本申请实施例中,可以根据行李车的轮廓图中支撑杆、底盘等信息,获取行李车的姿态信息,实现对行李车的定位。其中,行李车的姿态信息包括但不限于行李车的姿态角、行李车相对于红外单目相机的位置等。行李车的姿态角可以是指行李车的正前方所在方向与红外单目相机的正前方所在方向形成的夹角,表示行李车的方位。如图2所示是行李车的正面示例图,此时行李车的姿态角为0°。
步骤S104,根据所述行李车的姿态信息,控制机器人移动到所述行李车所处位置的预设方位的预设位置。
在本申请实施例中,红外单目相机安装在机器人上(例如安装在机器人的正面,机器人的正面可以是指机器人前部所向的一面),根据行李车相对于红外单目相机的位置可以控制机器人移动到行李车所处位置,根据行李车的姿态角可以控制机器人所在方位,因此同时根据行李车的姿态角和行李车相对于红外单目相机的位置可以控制机器人移动到行李车所处位置的预设方位的预设位置(例如正后方0.5米处),便于机器人收集行李车。其中,预设方位可以是指预先设置的方位,用户可以根据实际需要自行设定预设方位,例如后方、前方等,预设位置可以是指预先设置的位置,用户可以根据实际需要自行设定预设位置,例如距离行李车0.5米处的位置。
可选的,机器人也可以获取自身的位置信息,根据该位置信息以及行李车相对于红外单目相机的位置,获取行李车的位置信息,并将行李车的位置信息发送至移动终端,便于机场工作人员查看到行李车的位置信息,从而根据该行李车的位置信息快速寻找到行李车。
本申请实施例通过在行李车的轮廓上设置反红外姿态识别标记,可以使用红外单目相机获取行李车的轮廓图,并根据行李车的轮廓图获取行李车的姿态信息,从而使得机器人能够根据行李车的姿态信息,自动移动到行李车所处位置的预设方位,快速收集行李车,而无需人工在整个机场寻找行李车,也无需对行李车进行较高成本的改造,降低了机场的人工成本和行李车成本。
参见图3,是本申请实施例二提供的行李车姿态估计方法的实现流程示意图,该行李车姿态估计方法应用于机器人,如图所示该行李车姿态估计方法可以包括以下步骤:
步骤S301,基于红外单目相机和行李车的轮廓上设置的反红外姿态识别标记,获取所述行李车的初始图像。
该步骤与步骤S101相同,具体可参见步骤S101的相关描述,在此不再赘述。
步骤S302,根据所述行李车的初始图像,获取所述行李车的轮廓图。
该步骤与步骤S102相同,具体可参见步骤S102的相关描述,在此不再赘述。
步骤S303,从所述行李车的轮廓图中,获取所述行李车的轮廓所在区域。
在本申请实施例中,如图4所示是行李车的轮廓图,从图4中可知行李车的轮廓图中除行李车的轮廓所在区域之外,还包含其他区域(如图4中黑色区域)。行李车的轮廓所在区域可以是指行李车的轮廓图中白色区域。
步骤S304,使用预设形状从所述行李车的轮廓图中划分出所述行李车的轮廓所在区域,并确定划分出的所述行李车的轮廓所在区域为所述行李车的轮廓区域。
其中,预设形状可以是指矩形,矩形的尺寸与行李车的轮廓图中轮廓所在区域有关,要完整包含轮廓所在区域,如图4中的1即为使用矩形从行李车的轮廓图中划分出的行李车的轮廓所在区域。行李车的轮廓区域包含行李车的轮廓图中所有轮廓。
步骤S305,根据预设高度比例,从所述行李车的轮廓区域中划分出所述行李车的支撑杆的第一轮廓区域、所述行李车的支撑杆的第二轮廓区域和所述行李车的底盘轮廓区域。
其中,预设高度比例可以是指预先设置的用于从行李车的轮廓区域中划分行李车的支撑杆的第一轮廓区域、行李车的支撑杆的第二轮廓区域以及行李车的底盘轮廓区域的高度比例,用户可以根据实际需要自行设定上述预设高度比例,在此不作限定。行李车的支撑杆的第一轮廓区域和行李车的支撑杆的第二轮廓区域可以是指从行李车的轮廓区域中支撑杆所在区域划分的两个区域,行李车的底盘轮廓区域可以是行李车的轮廓区域中底盘所在区域。如图4所示将行李车的轮廓区域划分为五个区域,从上至下的顺序可以分别称之为行李车的把手轮廓区域、行李车的支撑杆的第一轮廓区域(即图4中2所在的矩形区域)、行李车的支撑杆的第二轮廓区域(即图4中3所在的矩形区域)、行李车的过渡轮廓区域、行李车的底盘轮廓区域(即图4中的4所在的矩形区域),上述五个区域不重叠,预设高度比例可以是指上述五个区域的高度比例(例如3:2:1:2.5:1.5),根据五个区域的高度比例,可以从行李车的轮廓区域中划分出上述五个区域,从而获得行李车的支撑杆的第一轮廓区域、行李车的支撑杆的第二轮廓区域以及行李车的底盘轮廓区域。
步骤S306,根据所述行李车的轮廓区域、所述行李车的支撑杆的第一轮廓区域、所述行李车的支撑杆的第二轮廓区域以及所述行李车的底盘轮廓区域,获取所述行李车的姿态信息。
在本申请实施例中,根据行李车的轮廓区域和行李车的支撑杆的第一轮廓区域可以获取行李车相对于红外单目相机的位置;根据行李车的轮廓区域、行李车的支撑杆的第一轮廓区域、行李车的支撑杆的第二轮廓区域以及行李车的底盘轮廓区域可以获取行李车的目标姿态角。其中,行李车的目标姿态角是最终估算出的行李车的姿态角。
可选的,所述根据所述行李车的轮廓区域、所述行李车的支撑杆的第一轮廓区域、所述行李车的支撑杆的第二轮廓区域以及所述行李车的底盘轮廓区域,获取所述行李车的姿态信息包括:
获取所述红外单目相机的内参;
获取所述行李车的轮廓区域的像素宽度和像素高度,并计算所述行李车的轮廓区域的像素宽度与像素高度的比值;
获取所述行李车的正视图中所述反红外姿态识别标记的宽度和高度,并计算所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值;
获取所述行李车的支撑杆的第一轮廓区域中面积最大的第一轮廓和第二轮廓,并计算所述第一轮廓的重心点在x轴上的坐标和所述第二轮廓的重心点在x轴上的坐标,其中,所述第一轮廓的重心点在x轴上的坐标小于所述第二轮廓的重心点在x轴上的坐标;
根据所述红外单目相机的内参、所述行李车的轮廓区域的像素宽度与像素高度的比值、所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值、所述第一轮廓的重心点在x轴上的坐标、所述第二轮廓的重心点在x轴上的坐标、所述行李车的支撑杆的第二轮廓区域以及所述行李车的底盘轮廓区域,获取所述行李车的目标姿态角;
根据所述红外单目相机的内参、所述行李车的轮廓区域的像素高度、所述行李车的正视图中所述反红外姿态识别标记的高度、所述第一轮廓的重心点在x轴上的坐标以及所述第二轮廓的重心点在x轴上的坐标,获取所述行李车相对于所述红外单目相机的位置。
在本申请实施例中,可以利用棋盘格对红外单目相机进行内参标定,获取红外单目相机的内参
其中,fx、fy分别为红外单目相机在图像坐标系下x轴的焦距和y轴的焦距,cx、cy分别为红外单目相机的光轴在图像坐标系下x轴的偏移量和y轴的偏移量。
行李车的轮廓区域的像素宽度可以是指行李车的轮廓区域在行李车的轮廓图中的宽度,可以用像素点数量表示,行李车的轮廓区域的像素高度可以是指行李车的轮廓区域在行李车的轮廓图中的高度,可以用像素点数量表示。
在行李车的轮廓上设置好反红外姿态识别标记之后,可以在行李车正面停放时人工测量行李车的正视图中反红外姿态识别标记的实际宽度(即反红外姿态识别标记的宽度)和实际高度(即反红外姿态识别标记的高度),并将反红外姿态识别标记的实际宽度和实际高度存储在机器人或服务器中,机器人可以从自身存储器或从服务器中获取反红外姿态识别标记的实际宽度和实际高度,以及计算实际宽度与实际高度的比值。
计算行李车的支撑杆的第一轮廓区域中所有轮廓的面积,并选取面积最大的两个轮廓(即第一轮廓和第二轮廓,对于上述两个轮廓,可以将位于左边的轮廓称为第一轮廓,位于右边的轮廓称为第二轮廓),并计算这两个轮廓的重心点分别在x轴上的坐标,如图4所示,重心点1为第一轮廓的重心点,重心点2为第二轮廓的重心点。
可选的,所述根据所述红外单目相机的内参、所述行李车的轮廓区域的像素宽度与像素高度的比值、所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值、所述第一轮廓的重心点在x轴上的坐标、所述第二轮廓的重心点在x轴上的坐标、所述行李车的支撑杆的第二轮廓区域以及所述行李车的底盘轮廓区域,获取所述行李车的目标姿态角包括:
根据所述红外单目相机的内参、所述行李车的轮廓区域的像素宽度与像素高度的比值、所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值、所述第一轮廓的重心点在x轴上的坐标以及所述第二轮廓的重心点在x轴上的坐标,计算所述行李车的第一姿态角
其中,fx和cx为所述红外单目相机内参,fx为所述红外单目相机在图像坐标系下x轴的焦距,cx为所述红外单目相机的光轴在图像坐标系下x轴的偏移量,r1为所述行李车的轮廓区域的像素宽度与像素高度的比值,r2为所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值,p1.x为所述第一轮廓的重心点在x轴上的坐标,p2.x为所述第二轮廓的重心点在x轴上的坐标;
获取所述行李车的支撑杆的第二轮廓区域中面积最大的两个轮廓,并从所述行李车的支撑杆的第二轮廓区域中面积最大的两个轮廓中获取目标轮廓;
计算所述目标轮廓的重心点在x轴上的坐标;
比较所述第一轮廓的重心点在x轴上的坐标与所述目标轮廓的重心点在x轴上的坐标;
若所述第一轮廓的重心点在x轴上的坐标大于所述目标轮廓的重心点在x轴上的坐标,则确定第一调节参数为1;
若所述第一轮廓的重心点在x轴上的坐标小于或等于所述目标轮廓的重心点在x轴上的坐标,则确定所述第一调节参数为0;
根据所述行李车的第一姿态角和所述第一调节参数,计算所述行李车的第二姿态角yaw2=(1-b1)*yaw1+b1(2π-yaw1),其中,b1为所述第一调节参数;
获取所述行李车的底盘轮廓区域的面积以及所述行李车的底盘轮廓区域中面积最大的轮廓的面积;
计算所述行李车的底盘轮廓区域中面积最大的轮廓的面积与所述行李车的底盘轮廓区域的面积的比值;
若所述行李车的底盘轮廓区域中面积最大的轮廓的面积与所述行李车的底盘轮廓区域的面积的比值大于预设阈值,则确定第二调节参数为1;
若所述行李车的底盘轮廓区域中面积最大的轮廓的面积与所述行李车的底盘轮廓区域的面积的比值小于或等于所述预设阈值,则确定所述第二调节参数为0;
根据所述行李车的第二姿态角和所述第二调节参数,计算所述行李车的目标姿态角yaw=(1-b2)*yaw2+b2(π-yaw2),其中,b2为所述第二调节参数。
在本申请实施例中,行李车的第一姿态角的范围是0°~90°;通过第一调节参数调整第一姿态角,获得第二姿态角,可以判断行李车的左右朝向,即判断行李车是朝左,还是朝右;通过第二调节参数调整第二姿态角,获得目标姿态角,可以在已判断行李车的左右朝向的基础上,判断行李车的前后朝向,即判断行李车是朝前,还是朝后。
计算行李车的支撑杆的第二轮廓区域中所有轮廓的面积,并选取面积最大的两个轮廓,可以将两个轮廓中位于左边的轮廓或者将像素点的x轴上的坐标较小的轮廓作为目标轮廓,如图4中的重心点3是目标轮廓的重心点。可选的,用户可以根据实际需要自行设定预设阈值,例如0.8,在此不作限定。
可选的,所述根据所述红外单目相机的内参、所述行李车的轮廓区域的像素高度、所述行李车的正视图中所述反红外姿态识别标记的高度、所述第一轮廓的重心点在x轴上的坐标以及所述第二轮廓的重心点在x轴上的坐标,获取所述行李车相对于所述红外单目相机的位置包括:
根据所述红外单目相机的内参、所述行李车的正视图中所述反红外姿态识别标记的高度以及所述行李车的轮廓区域的像素高度,计算所述行李车与所述红外单目相机的距离
其中,fx为所述红外单目相机在图像坐标系下x轴的焦距,H为所述行李车的正视图中所述反红外姿态识别标记的高度,h为所述行李车的轮廓区域的像素高度;
根据所述红外单目相机的内参、所述第一轮廓的重心点在x轴上的坐标以及所述第二轮廓的重心点在x轴上的坐标,计算所述行李车与所述红外单目相机的方向角
其中,cx为所述红外单目相机的光轴在图像坐标系下x轴的偏移量,p1.x为所述第一轮廓的重心点在x轴上的坐标,p2.x为所述第二轮廓的重心点在x轴上的坐标;
根据所述行李车与所述红外单目相机的距离L和所述行李车与所述红外单目相机的方向角α,计算所述行李车相对于所述红外单目相机在x轴上的位移x=L*sin(α),所述行李车相对于所述红外单目相机在y轴上的位移y=L*cos(α)。
其中,行李车与红外单目相机的方向角可以是指将行李车作为质点与红外单目相机连线,该连线与红外单目相机的z轴形成的夹角。
步骤S307,根据所述行李车的姿态信息,控制机器人移动到所述行李车所处位置的预设方位的预设位置。
该步骤与步骤S104相同,具体可参见步骤S104的相关描述,在此不再赘述。
本申请实施例通过行李车的轮廓图中的行李车的轮廓区域、行李车的支撑杆的第一轮廓区域、行李车的支撑杆的第二轮廓区域以及行李车的底盘轮廓区域,可以准确地获取行李车的姿态信息,从而使得机器人能够准确地自动移动到行李车所处位置的预设方位的预设位置,快速收集行李车,而无需人工在整个机场寻找行李车,也无需对行李车进行较高成本的改造,降低了机场的人工成本和行李车成本。
参见图5,是本申请实施例三提供的行李车姿态估计装置的示意图,为了便于说明,仅示出了与本申请实施例相关的部分。
所述行李车姿态估计装置包括:
初始图像获取模块51,用于基于红外单目相机和所述行李车的轮廓上设置的反红外姿态识别标记,获取所述行李车的初始图像;
轮廓图获取模块52,用于根据所述行李车的初始图像,获取所述行李车的轮廓图;
姿态信息获取模块53,用于根据所述行李车的轮廓图,获取所述行李车的姿态信息;
控制模块54,用于根据所述行李车的姿态信息,控制机器人移动到所述行李车所处位置的预设方位的预设位置。
可选的,所述姿态信息获取模块53包括:
第一获取单元,用于从所述行李车的轮廓图中,获取所述行李车的轮廓所在区域;
第一划分单元,用于使用预设形状从所述行李车的轮廓图中划分出所述行李车的轮廓所在区域,并确定划分出的所述行李车的轮廓所在区域为所述行李车的轮廓区域;
第二划分单元,用于根据预设高度比例,从所述行李车的轮廓区域中划分出所述行李车的支撑杆的第一轮廓区域、所述行李车的支撑杆的第二轮廓区域和所述行李车的底盘轮廓区域;
第二获取单元,用于根据所述行李车的轮廓区域、所述行李车的支撑杆的第一轮廓区域、所述行李车的支撑杆的第二轮廓区域以及所述行李车的底盘轮廓区域,获取所述行李车的姿态信息。
可选的,所述第二获取单元包括:
第一获取子单元,用于获取所述红外单目相机的内参;
第一处理子单元,用于获取所述行李车的轮廓区域的像素宽度和像素高度,并计算所述行李车的轮廓区域的像素宽度与像素高度的比值;
第二获取子单元,用于获取所述行李车的正视图中所述反红外姿态识别标记的宽度和高度,并计算所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值;
第二处理子单元,用于获取所述行李车的支撑杆的第一轮廓区域中面积最大的第一轮廓和第二轮廓,并计算所述第一轮廓的重心点在x轴上的坐标和所述第二轮廓的重心点在x轴上的坐标,其中,所述第一轮廓的重心点在x轴上的坐标小于所述第二轮廓的重心点在x轴上的坐标;
第三获取子单元,用于根据所述红外单目相机的内参、所述行李车的轮廓区域的像素宽度与像素高度的比值、所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值、所述第一轮廓的重心点在x轴上的坐标、所述第二轮廓的重心点在x轴上的坐标、所述行李车的支撑杆的第二轮廓区域以及所述行李车的底盘轮廓区域,获取所述行李车的目标姿态角;
第四获取子单元,用于根据所述红外单目相机的内参、所述行李车的轮廓区域的像素高度、所述行李车的正视图中所述反红外姿态识别标记的高度、所述第一轮廓的重心点在x轴上的坐标以及所述第二轮廓的重心点在x轴上的坐标,获取所述行李车相对于所述红外单目相机的位置。
可选的,所述第三获取子单元具体用于:
根据所述红外单目相机的内参、所述行李车的轮廓区域的像素宽度与像素高度的比值、所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值、所述第一轮廓的重心点在x轴上的坐标以及所述第二轮廓的重心点在x轴上的坐标,计算所述行李车的第一姿态角
其中,fx和cx为所述红外单目相机内参,fx为所述红外单目相机在图像坐标系下x轴的焦距,cx为所述红外单目相机的光轴在图像坐标系下x轴的偏移量,r1为所述行李车的轮廓区域的像素宽度与像素高度的比值,r2为所述行李车的正视图中所述反红外姿态识别标记的宽度与高度的比值,p1.x为所述第一轮廓的重心点在x轴上的坐标,p2.x为所述第二轮廓的重心点在x轴上的坐标;
获取所述行李车的支撑杆的第二轮廓区域中面积最大的两个轮廓,并从所述行李车的支撑杆的第二轮廓区域中面积最大的两个轮廓中获取目标轮廓;
计算所述目标轮廓的重心点在x轴上的坐标;
比较所述第一轮廓的重心点在x轴上的坐标与所述目标轮廓的重心点在x轴上的坐标;
若所述第一轮廓的重心点在x轴上的坐标大于所述目标轮廓的重心点在x轴上的坐标,则确定第一调节参数为1;
若所述第一轮廓的重心点在x轴上的坐标小于或等于所述目标轮廓的重心点在x轴上的坐标,则确定所述第一调节参数为0;
根据所述行李车的第一姿态角和所述第一调节参数,计算所述行李车的第二姿态角yaw2=(1-b1)*yaw1+b1(2π-yaw1),其中,b1为所述第一调节参数;
获取所述行李车的底盘轮廓区域的面积以及所述行李车的底盘轮廓区域中面积最大的轮廓的面积;
计算所述行李车的底盘轮廓区域中面积最大的轮廓的面积与所述行李车的底盘轮廓区域的面积的比值;
若所述行李车的底盘轮廓区域中面积最大的轮廓的面积与所述行李车的底盘轮廓区域的面积的比值大于预设阈值,则确定第二调节参数为1;
若所述行李车的底盘轮廓区域中面积最大的轮廓的面积与所述行李车的底盘轮廓区域的面积的比值小于或等于所述预设阈值,则确定所述第二调节参数为0;
根据所述行李车的第二姿态角和所述第二调节参数,计算所述行李车的目标姿态角yaw=(1-b2)*yaw2+b2(π-yaw2),其中,b2为所述第二调节参数。
可选的,所述第四获取子单元具体用于:
根据所述红外单目相机的内参、所述行李车的正视图中所述反红外姿态识别标记的高度以及所述行李车的轮廓区域的像素高度,计算所述行李车与所述红外单目相机的距离
其中,fx为所述红外单目相机在图像坐标系下x轴的焦距,H为所述行李车的正视图中所述反红外姿态识别标记的高度,h为所述行李车的轮廓区域的像素高度;
根据所述红外单目相机的内参、所述第一轮廓的重心点在x轴上的坐标以及所述第二轮廓的重心点在x轴上的坐标,计算所述行李车与所述红外单目相机的方向角
其中,cx为所述红外单目相机的光轴在图像坐标系下x轴的偏移量,p1.x为所述第一轮廓的重心点在x轴上的坐标,p2.x为所述第二轮廓的重心点在x轴上的坐标;
根据所述行李车与所述红外单目相机的距离L和所述行李车与所述红外单目相机的方向角α,计算所述行李车相对于所述红外单目相机在x轴上的位移x=L*sin(α),所述行李车相对于所述红外单目相机在y轴上的位移y=L*cos(α)。
可选的,所述轮廓图获取模块52包括:
图像转换单元,用于将所述行李车的初始图像转换为灰度图像;
二值化单元,用于对所述灰度图像进行二值化处理,获得二值化图像;
噪点去除单元,用于对所述二值化图像进行腐蚀处理和膨胀处理,去除所述二值化图像中的噪点,获得所述行李车的轮廓图。
可选的,所述二值化单元具体用于:
获取所述灰度图像中每个像素点的灰度值;
将所述灰度图像中灰度值大于灰度阈值的像素点的灰度值设置为255,将所述灰度图像中灰度值小于或等于所述灰度阈值的像素点的灰度值设置为0。
本申请实施例提供的行李车姿态估计装置可以应用在前述方法实施例一和实施例二中,详情参见上述方法实施例一和实施例二的描述,在此不再赘述。
图6是本申请实施例四提供的机器人的示意图。如图6所示,该实施例的机器人6包括:一个或多个处理器60(图中仅示出一个)、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个行李车姿态估计方法实施例中的步骤
所述机器人可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是机器人6的示例,并不构成对机器人6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述机器人6的内部存储单元,例如机器人6的硬盘或内存。所述存储器61也可以是所述机器人6的外部存储设备,例如所述机器人6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述机器人6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/机器人和方法,可以通过其它的方式实现。例如,以上所描述的装置/机器人实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当所述计算机程序产品在机器人上运行时,使得所述机器人执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。