具体实施方式
下面结合附图与具体实施方式对本方案进行阐述。
图1为本申请实施例提供的一种机柜门定位方法的流程示意图,参见图1,本申请实施例中的机柜门定位方法包括:
S101,机器人扫描机柜门上的二维码标签,根据所述机器人的摄像头与所述二维码标签的位置关系调整所述机器人的位姿。
位姿在一个坐标系中,相对于原点的位置关系,包括X轴坐标、Y轴坐标、Z轴坐标、以及方向角度。本申请实施例中,摄像头设置在机器人底盘中心左侧位置,二维码标签设置在机柜门中间左侧位置,二维码标签与机柜门中间位置之间的距离等于摄像头与所述底盘中心垂线之间的距离,且所述二维码标签的高度等于所述摄像头设置位置的高度。
本实施例中二维码作为机柜的id,用于摄像头的识别。例如,如果摄像头在横向位置上处于机器人底盘中心的左侧6cm处,则创建一系列具有唯一性的二维码标签,将这一系列标签均匀粘贴在不同机柜门中心偏左6厘米处,高度为机器人摄像头的高度。
具体地,所述摄像头检测所述二维码标签上的图像点,获得所述图像点在所述摄像头上成像的位置关系,所述位置关系包括所述图像点相对所述摄像头住在x和y轴上的偏移量和在机器人方向的旋转偏移量。如果位置关系中存在任一偏移量大于预设值,则对所述位置关系按照预设微调值进行调整。
已知物体三维空间坐标系的点以及对应的图像像素坐标点。知道这些参数可以利用PNP算法等通过迭代求出重投影误差最小的解作为问题的最优解进而求出相机相对于已知物体的三维空间坐标系的外参数。即可以得出旋转矩阵。也就是说二维码标签的方向是已知的,那可以通过二维码标签上各个像素点在摄像头上成像的位置关系,可以计算出摄像头方向与标签方向之间的三维姿态角
摄像头检测标签,最终可以得到一组值[a,b,yaw],a,b表示x,y轴上的偏移量,yaw表示机器人方向的旋转偏移量,如果这三个值有一个不在我们的误差范围内,就需要进行微调,微调的顺序是先y轴方向,然后是旋转,然后是x轴方向。如果a或b或yaw值小于等于我们设定的允许的最大微调值,则机器人调整的大小就为[a,b,yaw],如果是大于设定的最大微调值,则对应的改成允许的最大微调值。本实施例中每次微调都是慢慢移动,即检测一次,移动一次,检测一次,移动一次……直至[a,b,yaw]在误差范围内。
S102,当所述机器人的位姿与预设位姿的误差预设范围内时,对所述机器人相对所述机柜门的前后距离进行调整。
具体地,通过所述机器人的激光雷达从所述机器人的正前方旋转获取所述机器人多个角度位置上的障碍物距离信息。按照预设区间分别获取所述机器人正前方角度对应的距离信息和所述机器人正前方左右预设间隔距离内不同角度对应的距离信息。如果第一距离信息的第一距离值小于预设距离值,则将所述机器人根据所述预设距离值与所述第一距离值的差值向后移动;或者,如果所述第一距离信息的第一距离值大于预设距离值,则将所述机器人根据所述第一距离值与所述预设距离值差值向前移动,所述第一距离信息为所述预设区间内任一角度对应的距离信息。
一个示意性举例,如图2所示,实时监听激光雷达扫描的数据(取激光雷达[-2,2]区间上的数据,),当该数据的最小值min小于指定的预设距离值dest时,移动机器人向后dset-min;当min大于dest时,移动机器人向前min-dest。
具体地,激光雷达扫描,得到一组数据,长度为360,表示激光雷达周围360度中每一度角位置上的障碍物距离,正前方的为第一个角度的数据,然后逆时针依次记录360个数据,区间[-2,2]表示正前方左侧两个角度的数据+正前方一个角度的数据+正前方右侧两个角度的数据,用这个区间的最小值代表机器人前方最近障碍物的距离,太近则后退,太远则向前。
如下为本实施例中一个示意性举例,一个环绕机器人360方向上的一个长度为360的激光雷达数据:[0.35499998927116394,0.3569999933242798,0.35600000619888306,0.35499998927116394,0.3540000021457672,0.35199999809265137,0.35199999809265137,0.35199999809265137,0.35100001096725464,inf,0.3499999940395355,0.3499999940395355,0.34299999475479126,inf,0.34700000286102295,0.35199999809265137,0.3529999852180481,0.3529999852180481,0.3529999852180481,inf,0.3540000021457672,inf,0.35499998927116394,0.35600000619888306,0.3569999933242798,0.3580000102519989,0.3569999933242798,0.35899999737739563,0.3580000102519989,inf,0.35600000619888306,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,0.5210000276565552,0.5419999957084656,0.5360000133514404,0.5270000100135803,0.5199999809265137,0.5120000243186951,0.5040000081062317,0.49799999594688416,0.4909999966621399,0.48399999737739563,0.4790000021457672,inf,0.47200000286102295,0.46700000762939453,0.4620000123977661,0.4569999873638153,0.4519999921321869,0.44699999690055847,0.4440000057220459,0.4390000104904175,0.4359999895095825,0.4320000112056732,0.42899999022483826,0.42500001192092896,0.421999990940094,0.4189999997615814,inf,0.4169999957084656,inf,0.41100001335144043,0.41100001335144043,0.44999998807907104,inf,0.5040000081062317,0.5989999771118164,inf,0.7120000123977661,0.9150000214576721,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,2.502000093460083,2.683000087738037,inf,2.6630001068115234,2.6600000858306885,2.6510000228881836,2.640000104904175,2.628000020980835,2.61899995803833,2.621999979019165,2.621000051498413,2.619999885559082,inf,2.6080000400543213,2.6070001125335693,2.6059999465942383,2.6080000400543213,2.5999999046325684,2.5999999046325684,2.6029999256134033,2.6080000400543213,2.6089999675750732,2.6019999980926514,inf,2.3610000610351562,inf,1.940999984741211,inf,inf,inf,inf,inf,inf,inf,1.1059999465942383,1.0540000200271606,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,inf,0.3630000054836273,0.36000001430511475],这里inf表示角度对应方向无障碍物。
S103,所述机器人相对所述机柜门的前后距离在预设距离范围内时,控制所述机器人在预设方向上进行角度调整,以使得所述机器人对所述机柜门的精确定位。
通过机器人的超声波雷达分别获取所述机器人左前方和右前方的超声波数据。如果第一方向相比第二方向的超声波数据中的距离值大于预设距离差值,则控制所述机器人向所述第二方向旋转预设角度,所述第一方向和所述第二方向为左前方或右前方中的任一不同方向。
一个示意性实施例,取机器人左前方超声波数据front_left和机器人右前方超声波数据front_right。当front_left-front_right大于4cm时,向右旋转机器人3度;当front_left-front_right小于4cm时,向左旋转机器人3度。如图4所示,front_right大于front_left,如果按照上述示意性举例,front_right-front_left大于4cm时,向左旋转机器人3度。
本实施例中,机器人底盘前面有3个超声波传感器,在同一水平面上等距排列。而且本实施例中,左前方超声波数据是指左边超声波在它检测范围内检测到的最近障碍物的距离,右前方超声波数据是指右边超声波在它检测范围内检测到的最近障碍物的距离。
由上述实施例可知,本实施例提供了一种机柜门定位方法,机器人扫描机柜门上的二维码标签,根据所述机器人的摄像头与所述二维码标签的位置关系调整所述机器人的位姿;当所述机器人的位姿与预设位姿的误差预设范围内时,对所述机器人相对所述机柜门的前后距离进行调整;所述机器人相对所述机柜门的前后距离在预设距离范围内时,控制所述机器人在预设方向上进行角度调整,以使得所述机器人对所述机柜门的精确定位。当需要对机柜内的设备进行检查维护时,机器人通过扫描设置在机柜上的二维码确定目的机柜,然后通过对位姿、与机柜的前后距离进行调整,最后对机器人的角度进行微调,使得机器人对机柜门精确定位,提高了利用机器人巡检的效率。
与上述实施例提供的一种机柜门定位方法相对应,本申请还提供了一种机柜门定位系统实施例。参见图4,机柜门定位系统20包括:第一调整模块201、第二调整模块202和角度调整模块203。
所述第一调整模块201,用于机器人扫描机柜门上的二维码标签,根据所述机器人的摄像头与所述二维码标签的位置关系调整所述机器人的位姿。所述第二调整模块202,用于当所述机器人的位姿与预设位姿的误差预设范围内时,对所述机器人相对所述机柜门的前后距离进行调整。所述角度调整模块203,用于所述机器人相对所述机柜门的前后距离在预设距离范围内时,控制所述机器人在预设方向上进行角度调整,以使得所述机器人对所述机柜门的精确定位。
所述第一调整模块201包括:第一获取单元和第一调整单元。
所述第一获取单元,用于所述摄像头检测所述二维码标签上的图像点,获得所述图像点在所述摄像头上成像的位置关系,所述位置关系包括所述图像点相对所述摄像头住在x和y轴上的偏移量和在机器人方向的旋转偏移量。第一调整单元,用于如果位置关系中存在任一偏移量大于预设值,则对所述位置关系按照预设微调值进行调整。
所述第二调整模块202包括:第二获取单元、第三获取单元和第二调整单元。
所述第二获取单元,用于通过所述机器人的激光雷达从所述机器人的正前方旋转获取所述机器人多个角度位置上的障碍物距离信息。所述第三获取单元,用于按照预设区间分别获取所述机器人正前方角度对应的距离信息和所述机器人正前方左右预设间隔距离内不同角度对应的距离信息。所述第二调整单元,用于如果第一距离信息的第一距离值小于预设距离值,则将所述机器人根据所述预设距离值与所述第一距离值的差值向后移动;或者,如果所述第一距离信息的第一距离值大于预设距离值,则将所述机器人根据所述第一距离值与所述预设距离值差值向前移动,所述第一距离信息为所述预设区间内任一角度对应的距离信息。
所述角度调整模块203包括:第四获取单元和角度调整单元。
所述第四获取单元,用于通过机器人的超声波雷达分别获取所述机器人左前方和右前方的超声波数据。所述角度调整单元,用于如果第一方向相比第二方向的超声波数据中的距离值大于预设距离差值,则控制所述机器人向所述第二方向旋转预设角度,所述第一方向和所述第二方向为左前方或右前方中的任一不同方向。
本申请实施例还提供了一种机器人,参见图5,所述机器人30包括:处理器301、存储器302和通信接口303。
在图4中,处理器301、存储器302和通信接口303可以通过总线相互连接;总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器301通常是控制机器人30的整体功能,例如机器人的启动、以及机器人启动后对机柜门上的二维码标签进行扫描,以及对位置进行调整等。此外,处理器301可以是通用处理器,例如,中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器也可以是微处理器(MCU)。处理器还可以包括硬件芯片。上述硬件芯片可以是专用集成电路(ASIC),可编程逻辑器件(PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(CPLD),现场可编程逻辑门阵列(FPGA)等。
存储器302被配置为存储计算机可执行指令以支持机器人30数据的操作。存储器301可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
启动机器人30后,处理器301和存储器302上电,处理器301读取并执行存储在存储器302内的计算机可执行指令,以完成上述的机柜门定位方法方法实施例中的全部或部分步骤。
通信接口303用于机器人30传输数据,例如实现与实验仪器、各个液位感应器、控制阀等之间的数据通信。通信接口303包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口包括USB接口、Micro USB接口,还可以包括以太网接口。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
在一个示意性实施例中,本申请实施例提供的机器人30还包括电源组件,电源组件为机器人30的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为机器人30生成、管理和分配电力相关联的组件。
通信组件,通信组件被配置为便于机器人30和其他设备之间有线或无线方式的通信。机器人30可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在一个示意性实施例中,机器人30可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、机器人、微机器人、处理器或其他电子元件实现。
本申请说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统及机器人实施例而言,由于其中的方法基本相似于方法的实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当然,上述说明也并不仅限于上述举例,本申请未经描述的技术特征可以通过或采用现有技术实现,在此不再赘述;以上实施例及附图仅用于说明本申请的技术方案并非是对本申请的限制,如来替代,本申请仅结合并参照优选的实施方式进行了详细说明,本领域的普通技术人员应当理解,本技术领域的普通技术人员在本申请的实质范围内所做出的变化、改型、添加或替换都不脱离本申请的宗旨,也应属于本申请的权利要求保护范围。