一种充电桩、机器人充电方法与装置以及机器人系统
技术领域
本发明涉及机器人技术领域,特别涉及一种充电桩、机器人充电方法与装置以及机器人系统。
背景技术
机器人技术飞速发展,使得机器人在实际问题中得到了越来越广泛的应用。目前,机器人可以在有障碍物的环境中面向目标进行自主运动,从而完成一定作业功能。在机器人低电量时,需要自动回到充电桩处进行充电。
发明内容
本发明实施例提供一种充电桩、机器人充电方法与装置以及机器人系统,用以实现机器人充电。
本发明实施例提供了一种充电桩,包括:充电桩本体,以及设置于所述充电桩本体上的充电结构;还包括:设置于所述充电桩本体上的识别结构;
所述识别结构包括:至少两个凹陷结构;并且各所述凹陷结构排列于同一直线上。
可选地,在本发明实施例中,所述凹陷结构为形状相同的正多面体。
可选地,在本发明实施例中,所述凹陷结构为正方体。
本发明实施例还提供了一种基于上述充电桩的机器人充电方法,包括:
生成充电指令,并将所述充电指令发送给所述机器人;
所述机器人在接受到所述充电指令后,采用所述机器人上组装的激光雷达对所述机器人的周围环境进行多次扫描,以获取所述多次扫描对应的所述周围环境的物体信息;其中,所述物体信息包括:扫描得到的周围环境中的每个物体的实际角度和所述物体与所述激光雷达之间的实际距离;
根据获取到的多次扫描对应的所述周围环境的物体信息,确定所述充电桩相对所述机器人的位置信息;
根据所述充电桩的位置信息,控制所述机器人运行至所述充电桩进行充电。
可选地,在本发明实施例中,所述根据获取到的多次扫描对应的所述周围环境的物体信息,确定所述充电桩相对所述机器人的位置信息,具体包括:
根据获取到的多次扫描对应的所述周围环境的物体信息,确定每一次扫描对应的所述充电桩上的识别结构对应的初始区域;
根据确定出的每一次扫描对应的所述充电桩的上的识别结构对应的初始区域,确定所述充电桩上的识别结构对应的目标区域;
根据所述确定出的所述目标区域,确定所述充电桩在所述激光雷达的直角坐标系中的位置;
将所述充电桩在所述激光雷达的直角坐标系中的位置,转换到所述机器人的直角坐标系中,确定所述充电桩与所述机器人之间的目标距离和目标角度信息;其中,所述充电桩相对所述机器人的位置信息包括:所述目标距离和所述目标角度信息;
所述根据所述充电桩的位置信息,控制所述机器人运行至所述充电桩进行充电,具体包括:
根据所述目标距离和所述目标角度信息,确定所述机器人至所述充电桩的运行轨迹;
根据所述运行轨迹,控制所述机器人运行至所述充电桩并进行充电。
可选地,在本发明实施例中,所述根据获取到的多次扫描对应的所述周围环境的物体信息,确定每一次扫描对应的所述充电桩上的识别结构对应的初始区域,包括:
针对所述多次扫描中的第k次扫描,根据所述第k次扫描对应的所述周围环境的物体信息,确定所述第k次扫描中所述激光雷达扫描得到的所有的有效数据点,并将所有的所述有效数据点划分为多个不同的子区域;其中,k为正整数;
针对每一个子区域,判断所述子区域中的有效数据点的数量是否不小于数据点阈值;
若是,则判断所述子区域中的至少一个有效数据点对应的实际距离是否不大于实际距离阈值;
若是,则确定所述子区域中第一个有效数据点至最后一个有效数据点之间的整体长度;
判断所述整体长度是否满足长度阈值范围;
若是,则根据预设规则将所述子区域中的有效数据点划分成多条线段;
判断所述子区域对应的线段的数量是否不小于线段数量阈值;
若是,则采用霍夫曼直线检测方法,确定所述子区域中的线段是否满足直线特征;
若是,则确定所述子区域中相邻两条线段之间的线段间距;
判断所述线段间距是否不大于线段间距阈值;
若是,则确定所述子区域中每个所述线段的线段长度;
确定所述子区域中任意两个线段长度之间的线段长度比值;
判断所述子区域中的各所述线段长度比值是否满足线段长度比值阈值范围;
若是,则确定所述子区域为所述识别结构对应的初始区域。
可选地,在本发明实施例中,所述根据确定出的每一次扫描对应的所述充电桩的上的识别结构对应的初始区域,确定所述充电桩上的识别结构对应的目标区域,具体包括:
选取每一次扫描对应的初始区域中第一线段对应的检测角度和第二线段的对应的第二检测角度;其中,所述初始区域中包括有效数据点的数量最多的线段为所述第一线段,所述初始区域中包括有效数据点的数量次多的线段为所述第二线段;
确定同一所述初始区域中,所述第一线段对应的检测角度和所述第二线段对应的检测角度之间的检测角度差值;
确定每一次所述扫描对应的所有检测角度差值中的最小值;
将所述最小值对应的初始区域确定为对应所述充电桩上的识别结构的检测区域,并将所述检测区域确定为目标区域。
可选地,在本发明实施例中,所述根据确定出的所述目标区域,确定所述充电桩在所述激光雷达的直角坐标系中的位置,具体包括:
将所有所述目标区域对应的检测角度差值中大于分组阈值的检测角度差值划分为第一数组,将所有所述目标区域对应的检测角度差值中小于分组阈值的检测角度差值划分为第二数组;
判断所述第一数组中的检测角度差值的数量是否大于所述第二数组中的检测角度差值的数量;
若是,则选取所述第一数组对应的检测角度差值所对应的目标区域,并根据选取的所述目标区域,确定所述充电桩在所述激光雷达的直角坐标系中的位置;
若否,则选取所述第二数组对应的检测角度差值所对应的目标区域,并根据选取的所述目标区域,确定所述充电桩在所述激光雷达的直角坐标系中的位置。
可选地,在本发明实施例中,所述将所有的所述有效数据点划分为多个不同的子区域,具体包括:
根据所述第k次扫描对应的所述周围环境的物体信息,确定所述激光雷达扫描得到的所有的有效数据点;k为正整数;
确定所述激光雷达在雷达分辨率下的数据点的最小间距,以及确定第i个有效数据点对应的实际距离与第i+1个有效数据点对应的实际距离之间实际距离差值;其中,所述第i个有效数据点和所述第i+1个有效数据点相邻;i为正整数;
在所述实际距离差值与所述最小间距的比值大于分割阈值时,将第i+1个有效数据点确定为区域分割点;
将第m个区域分割点至与第m+1个区域分割点相邻的有效数据点之间的所有有效数据点,划分为一个子区域;其中,m为正整数。
可选地,在本发明实施例中,所述生成充电指令,具体包括:
在检测到所述机器人的电池的电量小于电量阈值时,生成所述充电指令;或者,
在检测到所述机器人完成至少一个任务时,生成所述充电指令;或者,
用户直接发出命令,以生成所述充电指令。
本发明实施例还提供了一种基于上述充电桩的机器人充电装置,所述机器人充电装置用于生成充电指令,并将所述充电指令发送给所述机器人;所述机器人在接受到所述充电指令后,采用所述机器人上组装的激光雷达对所述机器人的周围环境进行多次扫描,以获取所述多次扫描对应的所述周围环境的物体信息;根据获取到的多次扫描对应的所述周围环境的物体信息,确定所述充电桩相对所述机器人的位置信息;根据所述充电桩的位置信息,控制所述机器人运行至所述充电桩进行充电;其中,所述物体信息包括:扫描得到的周围环境中的每个物体的实际角度和所述物体与所述激光雷达之间的实际距离。
本发明实施例还提供了一种机器人系统装置,包括:上述充电桩,机器人以及上述的机器人充电装置。
本发明有益效果如下:
本发明实施例提供的充电桩、机器人充电方法与装置以及机器人系统,通过在充电桩本体上设置充电结构,可以使机器人实现充电。并且,通过在充电桩本体上设置识别结构,由于识别结构可以包括:至少两个凹陷结构,并且各凹陷结构排列于同一直线上,可以根据凹陷结构确定充电桩的位置,以使机器人运行至充电桩并进行充电。
附图说明
图1为本发明实施例中的充电桩的结构示意图;
图2为本发明实施例中的机器人充电方法的流程图之一;
图3为本发明实施例中的机器人充电方法的流程图之二;
图4为本发明实施例中的机器人充电方法的流程图之三;
图5为本发明实施例中的机器人充电方法的流程图之四;
图6为本发明实施例中的机器人充电方法的流程图之五;
图7为本发明实施例中的机器人充电方法的流程图之六;
图8为本发明实施例中的机器人充电方法的流程图之七。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
需要注意的是,附图中各图形的尺寸和形状不反映真实比例,目的只是示意说明本发明内容。并且自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
一般机器人通过组装的传感器,确定充电桩的位置与距离,并实现自动充电。其中,通常在充电桩的上设置信号发射装置(例如红外信号发射装置),以使传感器与信号发射装置取得连接,从而确定充电桩位置与距离,实现自动充电。这样导致充电桩的制备成本相对较大。
本发明实施例提供了一种充电桩,如图1所示,包括:充电桩本体10,以及设置于充电桩本体10上的充电结构3;并且,还包括:设置于充电桩本体10上的识别结构2;其中,识别结构2可以包括:至少两个凹陷结构20;并且各凹陷结构20排列于同一直线L0上。
本发明实施例提供的上述充电桩,通过在充电桩本体上设置充电结构,可以使机器人实现充电。并且,通过在充电桩本体上设置识别结构,由于识别结构可以包括:至少两个凹陷结构,并且各凹陷结构排列于同一直线上,可以根据凹陷结构确定充电桩的位置,以使机器人运行至充电桩并进行充电。这样相比在充电桩上设置信号发送装置,可以降低充电桩的成本。
在具体实施时,如图1所示,可以使凹陷结构20设置为形状相同的正多面体。示例性地,正多面体可以为长方体、正方体。本发明实施例中,优先使凹陷结构设置为正方体,这样可以使各个边的长度均相同,降低工艺制备难度。
在具体实施时,如图1所示,可以使设置为正方体的凹陷结构的重心排列于同一直线L0上。示例性地,直线L0可以平行于水平面,正方形具有相对的两个第一面,相对的两个第二面,以及相对的两个第三面。其中,第一面垂直于直线L0,第二面和第三面平行与直线L0。
在具体实施时,如图1所示,识别结构2还可以包括:凸起结构1;相邻的两个凹陷结构20之间设置有凸起结构1,并且,最边缘的凹陷结构20两侧分别也设置有凸起结构1,这样可以使凹陷结构20的形状更明显。
本发明实施例还提供了一种基于上述充电桩的机器人充电方法,如图2所示,可以包括如下步骤:
S10、生成充电指令,并将充电指令发送给机器人;
S20、机器人在接受到充电指令后,采用机器人上组装的激光雷达对机器人的周围环境进行多次扫描,以获取多次扫描对应的周围环境的物体信息;其中,物体信息包括:扫描得到的周围环境中的每个物体的实际角度和物体与激光雷达之间的实际距离;
S30、根据获取到的多次扫描对应的周围环境的物体信息,确定充电桩相对机器人的位置信息;
S40、根据充电桩的位置信息,控制机器人运行至充电桩进行充电。
本发明实施例提供的上述机器人充电方法,通过采用机器人上组装的激光雷达对机器人的周围环境进行多次扫描,以获取多次扫描对应的周围环境的物体信息。这样可以根据获取到的多次扫描对应的周围环境的物体信息,识别充电桩上的识别结构,从而可以确定充电桩相对机器人的位置信息,进而可以控制机器人运行至充电桩进行充电,以实现辅助机器人自动识别充电桩进行充电的功能。
在具体实施时,在本发明实施例中,激光雷达可以在以预设数值(例如为6m,当然,该数值可以根据实际应用环境来设计确定,在此不作限定)为半径,以激光雷达所在位置为圆心,对周围环境进行360°进行扫描,以获取到周围环境中的每个物体对应的实际角度信号和物体与激光雷达之间的实际距离。需要说明的是,激光雷达的结构和工作原理与现有技术中的基本相同,对于该激光雷达的其它必不可少的组成部分均为本领域的普通技术人员应该理解具有的,在此不做赘述,也不应作为对本发明的限制。
在具体实施时,在本发明实施例中,生成充电指令,具体可以包括:在检测到机器人的电池的电量小于电量阈值时,生成充电指令。这样可以在机器人的电池电量较少时,控制机器人进行充电,从而可以避免机器人没电停止工作。
示例性地,电量阈值可以设置为电池充满电时的总电量的5%。当然,在实际应用中,电量阈值可以根据实际应用环境来设计确定,在此不作限定。
在具体实施时,在本发明实施例中,生成充电指令,具体也可以包括:在检测到机器人完成至少一个任务时,生成充电指令。这样可以在机器人完成任务时,控制机器人进行充电,从而可以避免在机器人进行任务的途中放弃任务就去充电,进而避免机器人运行混乱。
示例性地,可以在检测到机器人每完成一个任务时,即可生成充电指令。
在具体实施时,在本发明实施例中,生成充电指令,具体也可以包括:用户直接发出命令,以生成充电指令。这样可以使用户直接发出命令,以控制机器人去充电,从而使人和机器人的交互灵活性更高。
在具体实施时,在本发明实施例中,步骤S30:根据获取到的多次扫描对应的周围环境的物体信息,确定充电桩相对机器人的位置信息,如图3所示,具体可以包括:
S31、根据获取到的多次扫描对应的周围环境的物体信息,确定每一次扫描对应的充电桩上的识别结构对应的初始区域;
S32、根据确定出的每一次扫描对应的充电桩的上的识别结构对应的初始区域,确定充电桩上的识别结构对应的目标区域;
S33、根据确定出的目标区域,确定充电桩在激光雷达的直角坐标系中的位置;
S34、将充电桩在激光雷达的直角坐标系中的位置,转换到机器人的直角坐标系中,确定充电桩与机器人之间的目标距离和目标角度信息;其中,充电桩相对机器人的位置信息包括:目标距离和目标角度信息。
并且,步骤S40:根据充电桩的位置信息,控制机器人运行至充电桩进行充电,如图4所示,具体可以包括:
S41、根据目标距离和目标角度信息,确定机器人至充电桩的运行轨迹;
S42、根据运行轨迹,控制机器人运行至充电桩并进行充电。
在具体实施时,在本发明实施例中,步骤S31:根据获取到的多次扫描对应的周围环境的物体信息,确定每一次扫描对应的充电桩上的识别结构对应的初始区域,如图5所示,具体可以包括:
S311、针对多次扫描中的第k次扫描,根据第k次扫描对应的周围环境的物体信息,确定第k次扫描中激光雷达扫描得到的所有的有效数据点,并将所有的有效数据点划分为多个不同的子区域;其中,k为正整数;
S312、针对每一个子区域,判断子区域中的有效数据点的数量是否不小于数据点阈值;若是,则执行步骤S313。若否,则执行步骤S325。
S313、判断子区域中的至少一个有效数据点对应的实际距离是否不大于实际距离阈值;若是,则执行步骤S314。若否,则执行步骤S325。
S314、确定子区域中第一个有效数据点至最后一个有效数据点之间的整体长度;
S315、判断整体长度是否满足长度阈值范围;若是,则执行步骤S316。若否,则执行步骤S325。
S316、根据预设规则将子区域中的有效数据点划分成多条线段;
S317、判断子区域对应的线段的数量是否不小于线段数量阈值;若是,则执行步骤S318。若否,则执行步骤S325。
S318、采用霍夫曼直线检测方法,确定子区域中的线段是否满足直线特征;
若是,则执行步骤S319。若否,则执行步骤S325。
S319、确定子区域中相邻两条线段之间的线段间距;
S320、判断线段间距是否不大于线段间距阈值;若是,则执行步骤S321。若否,则执行步骤S325。
S321、确定子区域中每个线段的线段长度;
S322、确定子区域中任意两个线段长度之间的线段长度比值;
S323、判断子区域中的各线段长度比值是否满足线段长度比值阈值范围;若是,则执行步骤S324。若否,则执行步骤S325。
S324、确定子区域为识别结构对应的初始区域。
S325、将该子区域直接舍弃。
在具体实施时,在本发明实施例中,步骤S311:将所有的有效数据点划分为多个不同的子区域,如图8所示,具体可以包括:
S31101、根据第k次扫描对应的周围环境的物体信息,确定激光雷达扫描得到的所有的有效数据点;k为正整数;
S31102、确定激光雷达在雷达分辨率下的数据点的最小间距,以及确定第i个有效数据点对应的实际距离与第i+1个有效数据点对应的实际距离之间实际距离差值;其中,第i个有效数据点和第i+1个有效数据点相邻;i为正整数;
S31103、在实际距离差值与最小间距的比值大于分割阈值时,将第i+1个有效数据点确定为区域分割点;
S31104、将第m个区域分割点至与第m+1个区域分割点相邻的有效数据点之间的所有有效数据点,划分为一个子区域;其中,m为正整数。
在具体实施时,在本发明实施例中,步骤S32:根据确定出的每一次扫描对应的充电桩的上的识别结构对应的初始区域,确定充电桩上的识别结构对应的目标区域,如图6所示,具体可以包括:
S3201、选取每一次扫描对应的初始区域中第一线段对应的检测角度和第二线段的对应的第二检测角度;其中,所述初始区域中包括有效数据点的数量最多的线段为第一线段,所述初始区域中包括有效数据点的数量次多的线段为第二线段;
S3202、确定同一初始区域中,第一线段对应的检测角度和第二线段对应的检测角度之间的检测角度差值;
S3203、确定每一次扫描对应的所有检测角度差值中的最小值;
S3204、将最小值对应的初始区域,确定为对应充电桩上的识别结构的检测区域,并将检测区域确定为目标区域。
在具体实施时,在本发明实施例中,步骤S33:根据确定出的目标区域,确定充电桩在激光雷达的直角坐标系中的位置,如图7所示,具体可以包括:
S3301、将所有目标区域对应的检测角度差值中大于分组阈值的检测角度差值划分为第一数组,将所有目标区域对应的检测角度差值中小于分组阈值的检测角度差值划分为第二数组;
S3302、判断第一数组中的检测角度差值的数量是否大于第二数组中的检测角度差值的数量;若是,则执行步骤S3303。若否,则执行步骤S3304。
S3303、选取第一数组对应的检测角度差值所对应的目标区域,并根据选取的目标区域,确定充电桩在激光雷达的直角坐标系中的位置;
S3304、选取第二数组对应的检测角度差值所对应的目标区域,并根据选取的目标区域,确定充电桩在激光雷达的直角坐标系中的位置。
在具体实施时,上述k、i、m的具体数值可以根据实际应用环境来设计确定,在此不作限定。
下面结合具体实施例,对本发明实施例提供的上述机器人充电方法进行说明。
本发明实施例提供的上述机器人充电方法可以包括如下步骤:
(1)在检测到机器人的电池的电量小于电量阈值时,生成充电指令。并将充电指令发送给机器人。这样可以使机器人进入自动回充模式,以控制机器人进行充电。
(2)针对多次扫描中的第k次扫描,根据第k次扫描对应的周围环境的物体信息,确定激光雷达扫描得到的所有的有效数据点;k为正整数。其中,可以使k=1、2、3……,在此不作限定。
一般激光雷达可以发射激光,该激光入射到物体上后,会被反射回激光雷达,从而可以在激光雷达上生成一个数据点,以使激光雷达识别到具有物体存在,并且激光雷达还会计算出物体距离激光雷达的实际距离和物体在激光雷达的直角坐标系中的实际角度。当然,若物体距离激光雷达非常近时,可能会导致激光发出去即反射回激光雷达,从而使激光雷达计算得到的实际距离大致为零。示例性地,可以将实际距离大于零的数据点作为激光雷达扫描得到的有效数据点。
(2)确定激光雷达在雷达分辨率下的数据点的最小间距。示例性地,激光雷达具有雷达分辨率,在该雷达分辨率下,可以具有激光雷达能够识别到的数据点中,与激光雷达的圆心之间的距离最大时对应的圆周。其中,最小间距Hmin可以为该圆周上相邻的两个数据点之间的距离。
并且,确定第i个有效数据点对应的实际距离与第i+1个有效数据点对应的实际距离之间实际距离差值Δd。示例性地,
其中,x
i=r
i*cosθ
i,y
i=r
i*sinθ
i,x
i+1=r
i+1*cosθ
i+1,y
i+1=r
i+1*sinθ
i+1,并且,r
i代表第i个有效数据点对应的实际距离,θ
i代表第i个有效数据点对应的实际角度。r
i+1代表第i+1个有效数据点对应的实际距离,θ
i+1代表第i+1个有效数据点对应的实际角度。
(3)在实际距离差值Δd与最小间距Hmin的比值Δd/Hmin大于分割阈值时,将第i+1个有效数据点确定为区域分割点。其中,可以使1≤i≤I,I代表第k次扫描对应的有效数据点的总数。则可以采用步骤(3)从第1个有效数据点依次迭代计算至第I个有效数据点,从而可以确定出多个区域分割点。例如,确定出了M个区域分割点。
其中,第1个有效数据点可以为激光雷达从0°开始扫描得到的第一个数据点,第I个有效数据点可以为激光雷达扫描的最后一个数据点。这样可以确定每相邻两个有效数据点的实际距离差值Δd,并且在实际距离差值Δd与最小间距Hmin的比值Δd/Hmin大于分割阈值时,将第i+1个有效数据点确定为区域分割点。
需要说明的是,分割阈值可以根据实际应用环境来设计确定,在此不作限定。
(4)将第m个区域分割点至与第m+1个区域分割点相邻的有效数据点之间的所有有效数据点,划分为一个子区域;其中,可以使1≤m≤M-1。
示例性地,可以使有效数据点的总数设置为100,若确定第20个有效数据点为第1个区域分割点,第50个有效数据点为第2个区域分割点,第80个有效数据点为第3个区域分割点。则可以将第1个有效数据点至第19个有效数据点划分为第一个子区域,将第20个有效数据点至第49个有效数据点划分为第二个子区域,将第50个有效数据点至第79个有效数据点划分为第三个子区域,将第80个有效数据点至第100个有效数据点划分为第四个子区域。
(5)针对每一个子区域,判断子区域中的有效数据点的数量是否不小于数据点阈值;若是,则执行步骤(6)。若否,则直接将该子区域进行舍弃。
示例性地,针对每一次扫描中的每一个子区域,分别判断子区域中的有效数据点的数量是否不小于数据点阈值。例如,以数据点阈值设置为25,针对第k次扫描,判断第一个子区域和第四个子区域中的有效数据点的总数小于25,而第二个子区域和第三子区域中的有效数据点的总数大于25,则可以将第一个子区域和第四个子区域中的有效数据点舍弃,将第二个子区域和第三子区域中的有效数据点保留。
需要说明的是,数据点阈值可以根据实际应用环境来设计确定,在此不作限定。
(6)判断子区域中的至少一个有效数据点对应的实际距离是否不大于实际距离阈值;若是,则执行步骤(7)。若否,则直接将该子区域进行舍弃。
示例性地,由于激光雷达距离过远时,充电桩的图形特征很差,故判断子区域内的有效数据点距离激光雷达的实际距离如果大于实际距离阈值则舍弃。因此,子区域中的至少一个有效数据点对应的实际距离不大于实际距离阈值时,可以保留该子区域。
需要说明的是,实际距离阈值可以根据实际应用环境来设计确定,在此不作限定。
(7)确定子区域中第一个有效数据点至最后一个有效数据点之间的整体长度。例如,可以计算第二个子区域中第一个有效数据点至最后一个有效数据点之间的整体长度,即计算第20个有效数据点至第49个有效数据点之间的有效数据点形成的线段的整体长度。以及可以计算第三个子区域中第一个有效数据点至最后一个有效数据点之间的整体长度,即计算第50个有效数据点至第79个有效数据点之间的有效数据点形成的线段的整体长度。
示例性地,可以采用现有技术中的长度确定方法,确定子区域中第一个有效数据点至最后一个有效数据点之间的整体长度,在此不作赘述。
(8)判断整体长度是否满足长度阈值范围。若是,则执行步骤(9)。若否,则直接将该子区域进行舍弃。
示例性地,识别结构的长度具有一定范围,例如识别结构上平行于直线L0的方向上具有实际长度,该实际长度可以大于或等于第一实际长度阈值,并且,该实际长度还小于或等于第二实际长度阈值。因此,可以根据激光雷达上显示的有效数据点与实际距离之间的比例关系,将第一实际长度阈值替换为第一长度阈值W1,将第二实际长度阈值替换为第二长度阈值W2,从而可以将[W1,W2]作为长度阈值范围。并且,可以将处于[W1,W2]中的整体长度作为满足长度阈值范围的整体长度。
需要说明的是,长度阈值范围可以根据实际应用环境来设计确定,在此不作限定。
(9)根据预设规则将子区域中的有效数据点划分成多条线段。
示例性地,对子区域中的有效数据点分段,主要依据是充电桩上的识别结构和凸起结构对应的有效数据点之间的间距较大,若相邻两个有效数据点之间的间距比值大于间距比值阈值时,则可以认为该点为一个拐点,从而以此确定该子区域中的每个拐点,进而可以将该子区域中的有效数据点划分成多条线段。
(10)判断子区域对应的线段的数量是否不小于线段数量阈值。若是,则执行步骤(11)。若否,则直接将该子区域进行舍弃。
由于充电桩上的识别结构和凸起结构对应的线段数量一般大于某个阈值(即线段数量阈值),若子区域对应的线段的数量小于线段数量阈值时,则可以确定该子区域不对应充电桩,那么可以直接舍弃。若子区域对应的线段的数量不小于线段数量阈值时,则可以确定该子区域可能对应充电桩,那么可以将该子区域保留。
需要说明的是,线段数量阈值可以根据实际应用环境来设计确定,在此不作限定。
(11)采用霍夫曼直线检测方法,确定子区域中的线段是否满足直线特征。若是,则执行步骤(12)。若否,则直接将该子区域进行舍弃。
示例性地,霍夫曼直线检测方法可以与现有技术中的基本相同,其工作过程为本领域的普通技术人员应该理解具有的,在此不做赘述,也不应作为对本发明的限制。其中,通过霍夫曼直线检测方法,确定子区域中的线段不满足直线特征时,则可以确定该子区域不对应充电桩,那么可以直接舍弃。若通过霍夫曼直线检测方法,确定子区域中的线段满足直线特征时,则可以确定该子区域可能对应充电桩,那么可以将该子区域保留。
其中,采用霍夫曼直线检测方法可以检测到线段的检测角度。
(12)确定子区域中相邻两条线段之间的线段间距。
示例性地,可以采用现有技术中的方法,确定子区域中相邻两条线段之间的线段间距。
(13)判断线段间距是否不大于线段间距阈值。若是,则执行步骤(14)。若否,则直接将该子区域进行舍弃。
其中,在判断线段间距大于线段间距阈值时,则可以确定该子区域不对应充电桩,那么可以直接舍弃。若判断线段间距不大于线段间距阈值时,则可以确定该子区域可能对应充电桩,那么可以将该子区域保留。
需要说明的是,线段间距阈值可以根据实际应用环境来设计确定,在此不作限定。
(14)确定子区域中每个线段的线段长度。
示例性地,可以采用现有技术中的方法,确定子区域中每个线段的线段长度。
(15)确定子区域中任意两个线段长度之间的线段长度比值。
示例性地,可以采用现有技术中的方法,确定子区域中任意两个线段长度之间的线段长度比值。
(16)判断子区域中的各线段长度比值是否满足线段长度比值阈值范围;若是,则执行步骤(17)。若否,则直接将该子区域进行舍弃。
其中,在判断子区域中的各线段长度比值不满足线段长度比值阈值范围时,则可以确定该子区域不对应充电桩,那么可以直接舍弃。若判断子区域中的各线段长度比值满足线段长度比值阈值范围时,则可以确定该子区域可能对应充电桩,那么可以将该子区域保留。
其中,线段长度比值阈值范围可以根据实际应用环境来设计确定,在此不作限定。
(17)确定子区域为识别结构对应的初始区域。
其中,将保留的子区域可以作为识别结构中的凹陷结构和凸起结构对应的初始区域。
(18)根据上述霍夫曼直线检测方法确定出的每个线段的检测角度,选取每一次扫描对应的初始区域中第一线段对应的检测角度β1和第二线段的对应的第二检测角度β2。其中,初始区域中包括有效数据点的数量最多的线段为第一线段,初始区域中包括有效数据点的数量次多的线段为第二线段。
其中,通过步骤(11),即可以得到每个子区域中的每个线段的检测角度。针对每一个子区域,选取该子区域中的第一线段对应的检测角度β1和第二线段的对应的第二检测角度β2。
(19)确定同一初始区域中,第一线段对应的检测角度和第二线段对应的检测角度之间的检测角度差值Δβ:即Δβ=β1-β2。
(20)确定每一次扫描对应的所有检测角度差值Δβ中的最小值。
(21)将最小值对应的初始区域,确定为对应充电桩上的识别结构的检测区域,并将检测区域确定为目标区域。例如,可以先暂时将该目标区域作为对应充电桩的识别结构的区域。
其中,一次扫描可以识别出多个子区域,通过上述确定Δβ中的最小值的方式,可以选取出该次扫描对应的较优选地目标区域。
(22)将所有目标区域对应的检测角度差值中大于分组阈值的检测角度差值划分为第一数组,将所有目标区域对应的检测角度差值中小于分组阈值的检测角度差值划分为第二数组;
需要说明的是,分组阈值可以根据实际应用环境来设计确定,在此不作限定。
(23)判断第一数组中的检测角度差值的数量是否大于第二数组中的检测角度差值的数量;若是,则执行步骤(24)。若否,则执行步骤(25)。
(24)选取第一数组对应的检测角度差值所对应的目标区域,并根据选取的目标区域,确定充电桩在激光雷达的直角坐标系中的位置;
示例性地,可以选取第一数组对应的目标区域,这样可以通过采用数量较多的目标区域作为筛选出的目标区域。之后,计算选取的每个目标区域中的首尾有效数据点的中间值。之后,将每个中间值进行计算,确定其算数平均值,最后将该算数平均值作为中点信息。之后将该中点信息作为充电桩在激光雷达的直角坐标系中的位置。
(25)选取第二数组对应的检测角度差值所对应的目标区域,并根据选取的目标区域,确定充电桩在激光雷达的直角坐标系中的位置。
示例性地,可以选取第二数组对应的目标区域,这样可以通过采用数量较多的目标区域作为筛选出的目标区域。之后,计算选取的每个目标区域中的首尾有效数据点的中间值。之后,将每个中间值进行计算,确定其算数平均值,最后将该算数平均值作为中点信息。之后将该中点信息在激光雷达的直角坐标系中的位置作为充电桩在激光雷达的直角坐标系中的位置。
(26)将充电桩在激光雷达的直角坐标系中的位置,转换到机器人的直角坐标系中,确定充电桩与机器人之间的目标距离和目标角度信息。
示例性地,根据机器人的直角坐标系xOy和激光雷达的直角坐标系x’O’y’的转换关系,例如,坐标转换的公式为x=x'*cos(γ)+y'*sin(γ)+a,y=y'*cos(γ)-x'*sin(γ)+b,其中(x,y)是上述中点信息在机器人的直角坐标系下的坐标值,(x’,y’)是上述中点信息在激光雷达的直角坐标系下的坐标,γ为激光雷达的直角坐标系x’O’y’旋转到机器人的直角坐标系xOy的角度,(a,b)为直角坐标系x’O’y’的原点在直角坐标系xOy下的坐标,从而计算出确定充电桩与机器人之间的目标距离和目标角度信息。
(27)根据目标距离和目标角度信息,确定机器人至充电桩的运行轨迹。
(28)根据运行轨迹,控制机器人运行至充电桩并进行充电。
基于同一发明构思,本发明实施例还提供了一种基于上述的充电桩的机器人充电装置,机器人充电装置用于生成充电指令,并将充电指令发送给机器人;机器人在接受到充电指令后,采用机器人上组装的激光雷达对机器人的周围环境进行多次扫描,以获取多次扫描对应的周围环境的物体信息;根据获取到的多次扫描对应的周围环境的物体信息,确定充电桩相对机器人的位置信息;根据充电桩的位置信息,控制机器人运行至充电桩进行充电;其中,物体信息包括:扫描得到的周围环境中的每个物体的实际角度和物体与激光雷达之间的实际距离。
需要说明的是,本发明提供的上述的机器人充电装置,可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
基于同一发明构思,本发明实施例还提供了一种机器人系统装置,包括:上述充电桩,机器人以及上述机器人充电装置。该机器人系统装置解决问题的原理与前述实施例相似,因此该机器人系统装置的实施可以参见前述实施例的实施,重复之处在此不再赘述。
在具体实施时,在本发明实施例中,对于上述机器人系统装置的其它必不可少的组成部分均为本领域的普通技术人员应该理解具有的,在此不做赘述,也不应作为对本发明的限制。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。