具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行模块或单元组成、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件或参数,但是这些元件或参数不应当被这些术语限制。这些术语仅用来将一个元件或参数与另一个元件或参数进行区分。例如,第一点云数据可以被称作第二点云数据,并且类似地,第二点云数据可以被称作第一点云数据,而不脱离各种所描述的实施例的范围。第一点云数据和第二点云数据均是在描述一个点云数据,但是除非上下文以其他方式明确指出,否则它们不是同一个点云数据。相似的情况还包括第一测量传感器与第二测量传感器,或者第一点云数据与第三点云数据。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
移动机器人的工作场景具有复杂性,工作场景中经常会存在与所述移动机器人的行进平面(例如:地面、铺设地毯的地面等)形成了带有与外部空间相通的空间的悬空结构。例如,与床板下的行进平面构成狭缝空间的床板、与沙发座下的行进平面构成狭缝空间的沙发座等。
对于一些障碍物来说,其顶部的悬空结构距离行进平面的高度最小值与移动机器人整体的物理高度相差不大,例如,略高于/略低于移动机器人整体的物理高度。悬空结构与行进平面形成的狭缝空间的宽度最小值与移动机器人整体的物理宽度相差不大,例如,略宽于/略窄于移动机器人整体的物理宽度等。为便于描述,符合上述特征的障碍物的悬空结构所形成的轮廓与行进平面所形成的空间称为狭缝空间,其中,所述悬空结构被相应的支撑结构所支撑。例如,沙发座(即悬空结构)的下表面所构成的轮廓与行进平面之间形成了沙发的狭缝空间,所述狭缝空间的边界是由所述轮廓、行进平面以及所述轮廓投影至行进平面所围成的。其中,所述狭缝空间与移动机器人移动的空间是相通的,所述沙发座(即悬空结构)被沙发腿(即支撑结构)支撑,后续提及的符合上述特征的障碍物的悬空结构称为低矮障碍物(下文的实施例中称为第一障碍物)。由于,所述狭缝空间与移动机器人移动的空间是相通的。这使得当移动机器人在误测量某些低矮障碍物形成的狭缝空间时,易发生与低矮障碍物的碰撞,或者被卡在狭缝空间处无法移动并在严重时可能会损坏移动机器人。
为了避免发生上述问题,移动机器人采用绕开的方式躲避狭缝空间。然而,某些低矮障碍物所形成的狭缝空间的高度可能大于移动机器人整体的物理高度,使得移动机器人可以执行特定工作,如清洁工作等。如果单纯采用绕开的方式躲避狭缝空间会降低移动机器人执行特定工作的覆盖率,所以,需要对于所述低矮障碍物与行进平面所形成的狭缝空间的尺寸进行准确测量,以确定移动机器人是否可以通过所述狭缝空间。
为了检测上述低矮障碍物的轮廓与行进平面所形成的狭缝空间,在一些示例中,移动机器人通过深度传感器(例如深度相机)在其视野范围内获取深度数据,并利用深度数据来计算所述狭缝空间的尺寸以及确定移动机器人是否可以进入狭缝空间。
但是,受深度传感器的分辨能力、物体表面光反射能力等限制,深度传感器在离低矮障碍物较远处得到的深度数据存在很高的测量误差,进而移动机器人基于该深度数据进行高度/宽度计算时,高度/宽度的计算结果也存在很高的误差,从而很难得到狭缝空间的准确尺寸。如此减少了移动机器人的移动覆盖面积。
例如,移动机器人整体的物理高度为20cm,低矮障碍物距离行进平面的实际高度为19cm,所述低矮障碍物的测量高度为20.5cm,由于测量高度大于移动机器人整体的物理高度,移动机器人选择进入狭缝空间,进而移动机器人会被狭缝空间卡住;如果测量高度低于低矮障碍物距离行进平面的实际高度,进而使得测量高度小于移动机器人整体的物理高度,移动机器人选择避开狭缝空间,可能会使移动机器人避开可以允许其通过的狭缝空间,进而降低了移动机器人执行特定工作的覆盖率,例如,移动机器人整体的物理高度为20cm,低矮障碍物距离行进平面的实际高度为21cm,所述低矮障碍物的测量高度为19.5cm,由于测量高度小于移动机器人整体的物理高度,移动机器人选择避开狭缝空间,从而导致移动机器人执行特定工作的覆盖率降低,减少了移动机器人的移动覆盖面积。
所以,为了解决上述障碍物检测方法中存在的缺陷,实现对与所述移动机器人的行进平面形成了狭缝空间的第一障碍物距离行进平面的高度进行准确有效的检测,并可根据检测结果来控制移动机器人是否进入所述狭缝空间,所述移动机器人配置至少一个第一测量传感器以及至少一个第二测量传感器。
所述第一测量传感器用于在其视野范围内得到描述障碍物的深度数据,其中,每一深度数据包含:各像素在深度图像中的像素位置以及各像素的像素值(包括深度值)。所述深度数据经过坐标转换可以转换为在第一测量传感器坐标系下的第一点云数据或第三点云数据,所述第一点云数据或第三点云数据表示的是障碍物表面各测量点在三维空间中的坐标,各障碍物所对应的第一点云数据或第三点云数据可反映所拍摄的物理场景中各障碍物可见表面的几何形状。
所述第一测量传感器包括但不限于:基于双目立体视觉的深度传感器、基于飞行时间的深度传感器、或基于结构光技术的深度传感器,其中,各所述第一测量传感器中还可以包括红外传感器等其他类型的传感器,例如,基于飞行时间的深度传感器(如ToF采集部件)中包括深度测量单元和红外传感器。其中,所述深度测量单元可以捕捉用于构成二维面的各像素点的深度值,例如,所述深度测量单元包含发光器和光接收阵列,其中,发光器投射特定的光信号到物体表面再反射至光接收阵列。光接收阵列根据物体造成的光信号的变化来计算物体的深度值。
为了使所述移动机器人能够根据第一点云数据识别移动机器人所在物理空间内的第一障碍物、以及根据所述第三点云数据确定所述移动机器人是否能够进入所述狭缝空间中,所述第一测量传感器所测量的深度数据中应包含有移动机器人所在物理空间内的行进平面所对应的深度数据。
基于此,所述第一测量传感器的装配倾斜角可以为0°到90°的任一角度,其中所述角度是指所述移动机器人行进方向的水平线与所述第一测量传感器的光轴或光学轴的夹角。
在一实施例中,所述第一测量传感器装配在所述移动机器人行进方向的前端面的位置,所述第一测量传感器光轴与行进平面平行,则所述夹角为0°。
在另一实施例中,所述第一测量传感器装配在所述移动机器人上表面(即平行于其行进方向的表面)位置,所述第一测量传感器光轴与行进平面垂直,则所述夹角为90°。
在再一实施例中,所述第一测量传感器装配在所述移动机器人上表面(即平行于其行进方向的表面)位置,但第一测量传感器被倾斜放置在一个凹陷结构内,所述第一测量传感器光轴与行进平面所呈夹角为10°到80°的范围,更优的实施例中,所述第一测量传感器光轴与行进平面所呈夹角为30°到60°的范围。
在又一实施例中,所述第一点云数据是基于转动过程中的第一测量传感器的测量而得到的。具体地,所述第一测量传感器(例如ToF采集部件)在转动过程中获取所述深度数据,进一步,所述移动机器人根据上述实施方式可以将所述深度数据转换成所述第一点云数据。通过转动所述第一测量传感器,第一测量传感器可以获取更宽视场范围内的深度数据。例如,所获取的深度数据是所述第一测量传感器在转动过程中一次获取的。又如,所获取的深度数据是所述第一测量传感器在转动过程中至少两次获取的,通过融合每一次所获取的深度数据能使所述移动机器人更容易识别出所述第一障碍物。
在一具体实施例中,当所述移动机器人确定所述移动机器人所在物理空间内存在障碍物时,控制所述移动机器人转动以获取包含障碍物的全面的深度数据,以供移动机器人根据所述全面的深度数据进行第一障碍物的识别。所述障碍物可以是任何能够被移动机器人的第一测量传感器所拍摄到的物体,如线缆、球、桌子、桌子的悬空结构、桌子的支撑结构、沙发、沙发的悬空结构、沙发的支撑结构、床、床板的悬空结构、床板的支撑结构等。例如,第一测量传感器和第二测量传感器均仅检测到了桌子的桌子腿,所述移动机器人控制所述第一测量传感器转动以获取包含桌子的全面的深度数据,以供移动机器人根据所述全面的深度数据进行第一障碍物的识别,来确定桌子的桌子面是否是需要进一步确定准确高度的第一障碍物。又如,第一测量传感器仅检测到了部分床板对应的深度数据,所述移动机器人控制所述第一测量传感器转动以获取包含床板的全面的深度数据,以供移动机器人根据所述全面的深度数据进行第一障碍物的识别,来确定床板是否是需要进一步确定准确高度的第一障碍物。
具体地,所述移动机器人可以通过障碍物所对应的深度数据来确定旋转方向,也可以通过第二测量传感器(例如激光雷达深度传感器)探测障碍物的方位角度来确定旋转方向。
需要说明的是,所述全面的深度数据并不限制于包含障碍物的所有深度数据,而是在预设的转动极限下尽量获取障碍物的全面的深度数据。所述第一测量传感器在转动前可以是保持不动的状态也可以是持续转动的状态。
请参阅图1,图1显示为本申请中实现ToF采集部件转动的结构示意图,所述移动机器人与驱动部件连接并控制所述驱动部件202来驱动所述ToF采集部件201转动以获取所述深度数据。请一并参考图2,所述驱动部件202包括:可活动件2021及驱动器2022。
具体的,所述可活动件2021连接并能活动至带动所述ToF采集部件201。所述ToF采集部件201与可活动件2021之间可以是定位连接或通过传动结构连接。其中,所述定位连接包括:卡合连接、铆接、粘接、及焊接中的任意一种或多种。在定位连接的示例中,例如图4所示,可活动件2021例如为可以横向转动的驱动杆,而所述ToF采集部件201具有与该驱动杆形状配合地套合的凹孔(未图示),只要驱动杆和凹孔的截面非圆形,则ToF采集部件201就可以随驱动杆进行横向转动;在一些传动结构的示例中,所述可活动件例如为丝杆,丝杆上的连接座该随丝杆转动而平移,所述连接座供与所述ToF采集部件201固定,以使得所述ToF采集部件201能随之运动。在一些传动结构的示例中,所述ToF采集部件201与可活动件之间也可以通过齿部、齿轮、齿条、齿链等中的一种或多种连接,以实现可活动件对于ToF采集部件201的带动。
示例性地,所述驱动器2022同可活动件2021可以是一体的。举例来说,如图2所示,所述驱动部件202本身可以是电机,则所述可活动件2021可以是该电机对外部的输出轴,该输出轴横向转动,以带动与其套合的ToF采集部件201横向转动。
请参阅图3,图3显示为本申请实施例中ToF采集部件设置在载件中的俯视结构示意图。将ToF采集部件201通过载件102安装在所述移动机器人的主体上时,所述移动机器人控制与其连接的所述驱动部件202来驱动所述ToF采集部件201转动,以使所述移动机器人得到下文所需的第一点云数据或第三点云数据。
所述第二测量传感器位于所述移动机器人上高于第一测量传感器的位置,用于在其视野范围内得到描述障碍物的点云数据,所述点云数据是障碍物表面各点在三维空间中的坐标,所述点云数据可反映所拍摄的物理场景中各障碍物可见表面的几何形状;所述点云数据是在第二测量传感器坐标系下的点云数据。
所述第二测量传感器包括激光雷达深度传感器、激光测距传感器、或雷达测距传感器等,所述第二测量传感器可以为多线深度传感器,例如,16线激光雷达深度传感器、32线激光雷达深度传感器、64线激光雷达深度传感器等。
例如,所述第二测量传感器位于移动机器人的顶部位置。为保护从移动机器人的顶部位置突起的所述第二测量传感器,在第二测量传感器外还设置有保护所述第二测量传感器的保护罩。又如,所述第二测量传感器位于移动机器人的上部且与移动机器人的顶部具有一定保护高度。由此可见,移动机器人的最高位置与第二测量传感器之间的高度h1是第二测量传感器的检测盲区。例如,若第一测量传感器所测量的狭缝空间的尺寸与实际尺寸有偏差,第二测量传感器未检测到构成狭缝空间的低矮障碍物,则可能是因为第二测量传感器所检测的部分对应所述狭缝空间的一部分,若依据第二测量传感器的第二点云数据控制移动机器人移动,可能导致移动机器在狭缝空间处与相应的低矮障碍物发生碰撞。需要说明的是,所述第一测量传感器在垂直于所述行进平面方向上的视野包含所述第二测量传感器在垂直于所述行进平面方向上的视野,且第一测量传感器和第二测量传感器具有重叠的视野范围。例如,当第一测量传感检测到第一障碍物的轮廓形成有狭缝空间时,所述第二测量传感器不一定能检测到所述第一障碍物的轮廓。
为此,本申请提供一种移动机器人的控制方法,所述控制方法可以在第一测量传感器检测到第一障碍物以及第二测量传感器未检测到第一障碍物的情况下,根据所述第一测量传感器向所述狭缝空间的探测而得到的第三点云数据,确定所述移动机器人是否能够进入所述狭缝空间中。本申请能有效地解决现有技术中移动机器人不能对所述第一障碍物距离行进平面的高度进行准确、有效地检测的问题,既可以避免移动机器人卡在狭缝空间中,又能提高移动机器人执行特定功能的覆盖率(例如具有清洁功能的移动机器人执行清洁功能的覆盖率)。
所述移动机器人藉由配置在其中的控制系统来执行所述控制方法。其中,请参阅图4,图4显示为本申请移动机器人的控制系统在一实施方式中的硬件结构框图。所述控制系统10包括存储装置11、接口装置12、和处理装置13。
所述接口装置12用于获取所述第一传感器所测量的深度数据,以及获取所述第二测量传感器所测量的点云数据。所述接口装置12与至少一个第一测量传感器以及至少一个第二测量传感器相连,用于从相应的第一测量传感器获取与其视野范围内障碍物相对应的深度数据,以及从相应的第二测量传感器获取与其视野范围内障碍物相对应的点云数据。所述接口装置12还用于输出控制移动机器人的控制指令,例如,所述接口装置与驱动行走机构的驱动电机相连,来输出所述控制指令,以控制行走机构的转动。所述控制指令是处理装置13基于检测结果并结合存储装置11中的控制策略生成的,其中,所述控制策略为利用程序描述的控制逻辑以供处理装置13执行。例如,当根据第三点云数据确定所述移动机器人可以进入所述狭缝空间时,所述处理装置13结合控制策略生成了进入狭缝空间的控制指令,通过接口装置12向驱动行走机构的驱动电机输出该控制指令。所述接口装置12包括但不限于:如HDMI接口或USB接口的串行接口,或并行接口等。
所述存储装置11用于存储至少一种程序,所述至少一种程序可供所述处理装置13执行所述移动机器人的控制方法。所述存储装置11还存储有与所述第一障碍物相对应的控制策略,其中所述控制策略用于基于所述第一障碍物距离行进平面的第二高度的计算情况生成控制移动机器人的控制指令以通过所述接口装置12输出。在实际应用中,所述控制策略举例为移动控制策略。所述移动控制策用于依据实时定位的移动机器人相对于确认的第一障碍物之间的相对空间位置控制移动机器人的移动方式。
在此,存储装置11包括但不限于:只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、非易失性存储器(Nonvolatile RAM,简称NVRAM)。例如,存储装置11包括闪存设备或其他非易失性固态存储设备。在某些实施例中,存储装置11还可以包括远离一个或多个处理装置13的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网、广域网、存储局域网等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。
处理装置13与所述接口装置12和存储装置11相连。所述处理装置13包括一个或多个处理器。处理装置13可操作地与存储装置11执行数据读写操作。处理装置13执行诸如识别第一障碍物、对深度数据进行坐标变换等。所述处理装置13包括一个或多个通用微处理器、一个或多个专用处理器(ASIC)、一个或多个数字信号处理器(Digital SignalProcessor,简称DSP)、一个或多个现场可编程逻辑阵列(Field Programmable GateArray,简称FPGA)、或它们的任何组合。处理装置13还与I/O端口和输入结构可操作地耦接,该I/O端口可使得移动机器人能够与各种其他电子设备进行交互,该输入结构可使得用户能够与移动机器人进行交互。例如,输入预设的过滤条件等配置操作。因此,输入结构可包括按钮、键盘、鼠标、触控板等。所述其他电子设备包括但不限于:所述移动机器人中移动装置中的电机,或移动机器人中专用于控制移动装置和/或清洁装置的从处理器,如微控制单元(Microcontroller Unit,简称MCU)。
请参阅图5,图5显示为本申请移动机器人的控制方法在一实施方式中的流程示意图。其中,所述控制方法可以由图4所示的移动机器人的控制系统来执行。其中,处理装置协调存储装置、接口装置等硬件执行以下步骤。
在步骤S110中,所述处理装置根据第一点云数据识别第一障碍物以及确定所述第一障碍物与所述移动机器人之间的相对空间位置;其中,所述第一点云数据是基于第一测量传感器的测量而得到的。
所述第一障碍物与所述移动机器人的行进平面形成了狭缝空间。所述第一障碍物与前文所述的低矮障碍物相同或相似,在此不再详述。所述行进平面包括但不限于以下几类:水泥地面、涂漆的地面、铺设复合地板的地面、铺设实木地板的地面等。
其中,所述第一障碍物和位于所述第一障碍物下的行进平面构成了所述狭缝空间,具体地,所述狭缝空间的边界是由所述第一障碍物的下表面所构成的轮廓、行进平面以及所述轮廓投影至行进平面所围成的。所述第一障碍物距离行进平面的高度为所述狭缝空间的高度;根据所述第一障碍物的形状不同,所述狭缝空间的立体形状也不同,所述狭缝空间的立体形状是基于第一障碍物的轮廓至行进平面而形成的,其举例包括:圆柱体、棱柱、不规则形状等。例如,第一障碍物为沙发的沙发座,沙发座的下表面所构成的轮廓与行进平面之间形成了沙发的狭缝空间,所述狭缝空间的立体形状由所述轮廓、行进平面以及所述轮廓投影至行进平面所围成的空间形状确定,例如,所述狭缝空间是长方体空间。
请参阅图6,图6显示为本申请的移动机器人以及移动机器人所在物理空间内的障碍物在一实施例中的示意图,图6所示的实际物理空间内包括一移动机器人1和一张床2、以及一张桌子3,床2的床板21距离移动机器人1的行进平面的实际高度为30cm,桌子3的桌面31距离行进平面的实际高度为60cm,移动机器人整体的物理高度为25cm;移动机器人通过第一测量传感器所提供的深度数据可测得所述床板21与所述移动机器人的行进平面所形成的床下空间的尺寸,以及桌子3与所述移动机器人的行进平面所形成的桌下空间的尺寸。
藉由上述示例可见,在移动机器人所探测到的各障碍物中,由于一些障碍物的实际高度与移动机器人整体的物理高度偏差较大,则处理装置可基于移动机器人整体的物理高度对所得到的各障碍物所形成的空间进行过滤处理。换言之,处理装置中预设有用于判断第一障碍物及其狭缝空间的筛选条件,利用所述筛选条件,处理装置确定所述第一点云数据中的第一障碍物及其狭缝空间。在图6中所示的桌子示例中,由于所测得的桌面31下空间的高度明显大于移动机器人整体的物理高度,故而,可将桌面31及桌面31下空间予以滤除;而保留床板21及床板21下空间,以待进一步处理。例如,所述筛选条件举例为当所测得的某障碍物及其覆盖的空间距离行进平面的高度与移动机器人整体的物理高度的差异在0至5cm之间时,将相应的障碍物及其空间作为所述第一障碍物及其狭缝空间。又如,所述筛选条件举例为所述高度的差异也可以是第一测量传感器测量精度的倍数,但并不以此为限。
其中,所述第一点云数据是基于第一测量传感器的测量而得到的,具体地,第一测量传感器在图像坐标系下获取深度数据,处理装置可将所述深度数据转换为第一点云数据,所述第一点云数据可以在以所述第一测量传感器为坐标原点的空间坐标系下,也可以在以所述第二测量传感器为坐标原点的空间坐标系下,也可以在世界坐标系下,所述世界坐标系的坐标原点可以是移动机器人中的任意一点,例如,移动机器人的结构中心、移动机器人底部的中心、第一测量传感器、第二测量传感器等。
例如,所述第一点云数据对应的坐标原点为第一测量传感器的光心位置,所述第一测量传感器为ToF采集部件,所述移动机器人根据ToF采集部件测量得到的深度数据以及ToF采集部件的内部参数,可将所述深度数据转换为第一点云数据。具体地,所述ToF采集部件的内部参数包括:ToF采集部件分别在x、y两个轴上的焦距fx、fy,ToF采集部件的光轴在图像坐标系中的偏移量cx、cy;所述深度数据中的深度值为d,该深度值所在的像素位置为(u,v),则经坐标变换后该像素位置(u,v)的第一点云数据对应为(X,Y,Z),其中,Z=d;
所述处理装置根据所述第一点云数据可识别出与所述移动机器人的行进平面形成了狭缝空间的第一障碍物。
在一实施例中,所述处理装置对所述第一点云数据进行聚类,根据每一类点云数据确定各类点云数据所对应的障碍物距离所述行进平面的第一高度,根据预设的过滤条件和所述第一高度,确定与所述移动机器人的行进平面形成了狭缝空间的第一障碍物。
具体地,所述处理装置对所述第一点云数据进行聚类,将所述第一点云数据聚类为多类点云数据。对点云数据进行聚类得方法包括:欧几里得聚类算法、K-Means聚类算法、区域蔓延聚类算法等。例如,请再参阅图6,移动机器人在图6的位置处得到的所述第一点云数据包括实际物理空间内的行进平面、桌子3、以及床2所对应的点云数据,对该第一点云数据进行分类后可得到多类点云数据,比如,地面类点云数据、桌面类点云数据、桌子腿类点云数据、床板类点云数据、床腿类点云数据等,此时,桌面类点云数据中大部分是桌面31的侧面310所对应的点云数据,床板类点云数据中大部分是床板21的侧面210所对应的点云数据。基于此,处理装置根据地面类点云数据得到拟合行进平面,确定各类点云数据距离所述拟合行进平面的高度,以此确定各类点云数据所对应的各类障碍物距离所述行进平面的第一高度,进而,处理装置根据预设的过滤条件和所述第一高度,确定与所述移动机器人的行进平面形成了狭缝空间的第一障碍物。
在一示例中,所述处理装置对地面类点云数据进行拟合可得到拟合行进平面,对点云数据进行拟合的方法包括:最小二乘法、特征值法以及随机一致性算法(RandomSample Consensus,RANSAC)等。例如,假设本申请确定的拟合行进平面的方程为Ax+By+Cz+D=0,其中,A、B、C、和D为常数,并且A、B、和C不同时为零,(x,y,z)为三维空间坐标。基于该拟合行进平面,可计算第一点云数据中剩余点云数据至拟合行进平面的距离,以确定各类障碍物距离行进平面的高度。基于该拟合行进平面,可计算出各类的点云数据中的每一点至拟合行进平面的距离,进而可确定各类障碍物距离行进平面的第一高度;所述处理装置可以按照上述方式确定各类点云数据中任意一点距离拟合行进平面的高度,并将该点距离拟合行进平面的高度作为各类障碍物距离所述行进平面的第一高度;所述处理装置还可按照上述方式遍历各类点云数据以分别确定各点距离拟合行进平面的高度,进而移动机器人可以确定出各类点云数据距离拟合行进平面的最大高度、最低高度、均值高度、以及高度的标准差、离群值等,并以最低高度、最大高度、或者均值高度等作为各类障碍物距离行进平面的第一高度。基于上述任一实施方式,可以分别计算出前文所述的床板21类障碍物、以及桌面31类障碍物距离行进平面的第一高度。
基于此,所述处理装置根据各类点云数据所对应的障碍物距离所述行进平面的第一高度和预设的过滤条件,可确定与所述移动机器人的行进平面形成了狭缝空间的第一障碍物。具体地,当所确定的第一高度满足所述预设的过滤条件时,所述第一高度对应的障碍物为与所述移动机器人的行进平面形成了狭缝空间的第一障碍物。
所述预设的过滤条件用于找到第一障碍物,所述第一障碍物与前文所述的相同或相似,在此不再详述。所述预设的过滤条件是根据所述移动机器人的物理高度和/或所述第一测量传感器的测量误差所确定的。
在一示例中,所述预设的过滤条件可以是根据移动机器人整体的物理高度确定的,该物理高度为移动机器人最高点与移动机器人的最低点之间的高度差;例如,所述预设的过滤条件为所述障碍物距离行进平面的高度在第一高度范围内,所述第一高度范围为移动机器人整体的物理高度加上预设高度差异至移动机器人整体的物理高度减去预设高度差异。所述预设高度差异包括但不限于:0、0.5cm、1cm、1.5cm、2cm、2.5cm、3cm、3.5cm、4cm、4.5cm、5cm。所述预设的高度差异可以是在出厂时配置完成也可以是用户在进行初始配置时选择的。
在另一示例中,所述预设的过滤条件是根据所述移动机器人整体的物理高度和所述第一测量传感器的测量误差所确定的。例如,所述预设的过滤条件为所述障碍物距离行进平面的高度在第一高度范围内,所述第二高度范围为移动机器人的物理高度加上测量误差至移动机器人的物理高度减去测量误差,其中,所述第二高度范围也可以为多个测量误差加上移动机器人整体的物理高度至移动机器人整体的物理高度减去多个测量误差。
需要说明的是,所述预设的过滤条件不同,所述确定的第一障碍物也可以不同。例如,第二高度范围为30cm至50cm,请再参阅图6,桌面31类障碍物距离行进平面的第一高度为48cm,床板21类障碍物距离行进平面的第一高度为35cm,则桌面31类障碍物以及床板21类障碍物均是需要进一步确定准确高度的第一障碍物。又如,第二高度范围为30cm至45cm,则只有床板21类障碍物是需要进一步确定准确高度的第一障碍物。
所述处理装置还确定所述第一障碍物与所述移动机器人之间的相对空间位置。其中,所述相对空间位置表示第一障碍物与移动机器人之间的物理距离和方位角度。具体地,移动机器人与所述第一障碍物之间的相对空间位置可以是第一障碍物与第一测量传感器之间的物理距离和方位角度、第一障碍物与第二测量传感器之间的物理距离和方位角度、第一障碍物与移动机器人整体的结构中心之间的物理距离和方位角度、或者是第一障碍物与移动机器人底部的中心之间的物理距离和方位角度等,但并不以此为限。
例如,所述第一点云数据在以所述第一测量传感器为坐标原点的坐标系中,所述移动机器人与所述第一障碍物之间的相对空间位置是第一障碍物与第一测量传感器之间的物理距离和方位角度,则所述处理装置可直接根据所述第一点云数据确定第一障碍物与所述移动机器人之间的物理距离和方位角度。
又如,所述第一点云数据在以所述第一测量传感器为坐标原点的坐标系中,所述移动机器人与所述第一障碍物之间的相对空间位置是第一障碍物与移动机器人底部的中心之间的物理距离和方位角度,则所述处理装置可根据所述第一点云数据确定第一障碍物与第一测量传感器之间的物理距离和方位角度,进而处理装置根据第一测量传感器的装配位置可确定第一障碍物与移动机器人底部的中心之间的物理距离和方位角度,即第一障碍物与移动机器人之间的物理距离和方位角度。
所述处理装置还执行步骤S120,以确定第二测量传感器测量是否能检测到所述第一障碍物,即根据第二测量传感器测量的与所述相对空间位置相对应的第二点云数据是否能识别出所述第一障碍物。
在步骤S120中,所述处理装置根据所述第二点云数据检测所述第一障碍物。
其中,所述第二点云数据是在利用第一点云数据而确定的第一障碍物与移动机器人之间的方向上,由第二测量传感器获取的点云数据。具体地,所述处理装置根据所述第一点云数据得到第一障碍物与所述移动机器人之间的方位角度,进而可以获取第二测量传感器在该方位角度上所测量的点云数据来得到所述第二点云数据,也可以获取第二测量传感器在包含该方位角度的一方位角度范围内获取的点云数据来得到所述第二点云数据;该方位角度范围可以是所述第二测量传感器的最大测量范围,也可以是包含所述方位角度的方位角度范围。例如,所述第一障碍物与所述移动机器人的前进方向成30度角,所述方位角度范围可以为-10度至70度,则所述第二点云数据为该方位角度范围所对应的点云数据。需要说明的是,当所述方位角度范围中的正方位角度表示的是障碍物在所述移动机器人的左侧,则所述负方位角度表示的是障碍物在所述移动机器人的右侧。
例如,所述处理装置可直接获取所述第二测量传感器在该方位角度上或者包含该方位角度的方位角度范围内所测量的第二点云数据。又如,所述处理装置也可以根据所述方位角度或方位角度范围对第二测量传感器所测量的360度范围内的点云数据进行过滤,以得到所述第二点云数据。需要说明的是,所述第二测量传感器所测量的点云数据并不限于是360度范围内的点云数据,其可以根据第二测量传感器的最大测量范围决定。
在一实施例中,所述处理装置直接将所述第一障碍物所对应的第一点云数据与所述第二点云数据进行匹配,当所述第二点云数据中包括所述第一障碍物所对应的第一点云数据的情况下,所述处理装置根据所述第二点云数据可以识别出所述第一障碍物,反之,所述处理装置根据所述第二点云数据不能识别出所述第一障碍物。例如,所述第一点云数据以及第二点云数据均是在以所述第二测量传感器为坐标原点的坐标系下,所述第一障碍物所对应的第一点云数据为(3,2,6)、(3,2,6.5)(3,2,6.5),若第二点云数据中不包括与之相匹配的障碍物的点云数据,则所述处理装置根据所述第二点云数据未识别出所述第一障碍物。又如,第二点云数据是在以所述第二测量传感器为坐标原点的坐标系下,所述第一点云数据是在以所述第一测量传感器为坐标原点的坐标系下,则所述处理装置可以将第一障碍物所对应的第一点云数据转换为在以第二测量传感器为坐标原点的坐标系下,将转换后的第一障碍物所对应的第一点云数据与所述第二点云数据进行匹配,以确定第二点云数据中是否包括转换后的第一障碍物所对应的第一点云数据。
在另一实施例中,所述处理装置根据所述第二点云数据识别至少一个第二障碍物,所述处理装置将所识别出的第二障碍物与所述第一障碍物进行匹配,当所述第二障碍物中包括所述第一障碍物的情况下,所述处理装置根据所述第二点云数据可以识别出所述第一障碍物,反之,所述处理装置根据所述第二点云数据不能识别出所述第一障碍物。
例如,所述处理装置对所述第二点云数据进行聚类,根据每一类点云数据确定各类点云数据所对应的第二障碍物与所述移动机器人的相对位置,确定所述第二障碍物与所述移动机器人的相对位置与前文中确定第一障碍物与所述移动机器人之间的相对位置的实施方式相同或相似,在此不再详述;所述第二障碍物中包括所述第一障碍物的情况是指根据所述第一障碍物与所述移动机器人之间的相对空间位置,确定在该相对空间位置处存在第二障碍物;所述第二障碍物中不包括所述第一障碍物的情况是指根据所述第一障碍物与所述移动机器人之间的相对空间位置,确定在该相对空间位置处不存在第二障碍物。
又如,所述处理装置在确定各类点云数据所对应的第二障碍物与所述移动机器人的相对位置的基础上,还确定第二障碍物距离所述行进平面的高度,确定第二障碍物距离所述行进平面的高度与前文中确定第一高度的实施方式相同或相似,在此不再详述;基于此,所述第二障碍物中包括所述第一障碍物的情况是指根据所述第一障碍物与所述移动机器人之间的相对空间位置,确定在该相对空间位置处的第二障碍物距离行进平面的高度与所述第一障碍物的高度相等;所述第二障碍物中不包括所述第一障碍物的情况是指根据所述第一障碍物与所述移动机器人之间的相对空间位置,确定在该相对空间位置处没有第二障碍物。
基于对第一点云数据和第二点云数据的上述数据处理,所述处理装置执行步骤S130,以获取第三点云数据。所述处理装置根据所述第三点云数据可以得到所述第一障碍物距离行进平面的准确高度。
在步骤S130中,当根据第二点云数据未识别出所述第一障碍物,以及当所述移动机器人根据所述相对空间位置移动至所述狭缝空间处时,所述处理装置基于所述第一测量传感器向所述狭缝空间的探测,得到第三点云数据。
由于,第二测量传感器(例如激光雷达传感器)在与行进平面垂直的方向上的视野范围比较窄,在所述第二测量传感器未检测到所述第一障碍物的情况下,所述第一障碍物距离行进平面的高度可能高于所述移动机器人整体的物理高度,即第二测量传感器保护罩的最高点与移动机器人行走机构的最低点之间的物理高度,也可能低于所述移动机器人整体的物理高度,从而使得第一障碍物与行进平面形成的狭缝空间可能会卡住所述保护罩,从而使移动机器人被狭缝空间卡住并在严重时可能会损坏移动机器人。
所以,当所述处理装置根据第二点云数据未识别出所述第一障碍物,以及当所述移动机器人根据所述相对空间位置移动至所述狭缝空间处时,基于所述第一测量传感器向所述狭缝空间的探测,得到第三点云数据。具体地,所述处理装置可以根据所述第一测量传感器向所述狭缝空间探测而得到的深度数据来得到所述第三点云数据。所述处理装置将所述深度数据转换为第三点云数据的方式与前文所述的处理装置将所述深度数据转换为第一点云数据的方式相同或相似,在此不再详述。
在一实施例中,所述处理装置在根据第二点云数据未识别出所述第一障碍物的情况下,控制所述移动机器人基于当前的位置以及所述相对空间位置移动至所述狭缝空间处,当所述移动机器人根据所述相对空间位置移动至所述狭缝空间处时,基于所述第一测量传感器向所述狭缝空间的探测,得到第三点云数据。具体地,如果如图6所示的床板21是第一测量传感器识别出的第一障碍物,并且移动机器人在图示位置处根据第二点云数据未识别出床板21的情况下,控制所述移动机器人从当前位置移动至所述狭缝空间处,例如,移动至如图7所示的床板21的侧面210所在的位置。
在另一实施例中,所述处理装置在根据第二点云数据未识别出所述第一障碍物的情况下,继续按照预设的移动路线移动,当按照预设的移动路线移动至狭缝空间处时,基于所述第一测量传感器向所述狭缝空间的探测,得到第三点云数据。
在某些实施例中,为了防止所述移动机器人与所述第一障碍物发生碰撞,当所述移动机器人接近所述狭缝空间处时降低所述移动机器人的移动速度。进一步,当所述移动机器人移动至所述狭缝空间以及所述第一测量传感器向所述狭缝空间探测时,控制所述移动机器人停止移动。
需要说明的是,前文所述的控制所述移动机器人移动至所述狭缝空间处,并不是一定要控制所述移动机器人准确地移动至所述狭缝空间,只需要所述第一测量传感器能检测到所述第一障碍物下表面的深度数据即可。
需要说明的是,如果所述移动机器人同时识别出多个第一障碍物并且处理装置在根据第二点云数据未识别出所述多个第一障碍物的情况下,所述移动机器人可以依次基于当前的位置以及每一第一障碍物与所述移动机器人的相对空间位置移动至相应的狭缝空间处,来获取相应的第三点云数据;也可以当按照预设的移动路线移动至相应狭缝空间处,获取相应的第三点云数据。
所述第三点云数据中大部分数据是所述第一障碍物所对应的点云数据,并且是所述第一障碍物中形成狭缝空间边缘的轮廓表面所对应的点云数据,利用近距离获得的所述第三点云数据可执行步骤S140,以确定所述第一障碍物距离所述行进平面的准确高度,进而确定所述移动机器人是否能够进入所述狭缝空间中。
需要说明的是,所述第三点云数据也可以是第一测量传感器在转动过程中测量而得到的。
在步骤S140中,所述处理装置根据所述第三点云数据确定所述移动机器人是否能够进入所述狭缝空间中。
在一实施例中,所述处理装置根据所述第三点云数据,确定所述第一障碍物距离所述行进平面的第二高度,根据所述第二高度确定所述移动机器人是否能够进入所述狭缝空间中。
在一具体实施例中,由于所述第三点云数据中大部分是第一障碍物下表面所对应的点云数据,所以,所述处理装置通过计算第三点云数据中接近移动机器人的点云数据区域中的点云数据,得到所述第一障碍物距离所述行进平面的第二高度。具体地,所述处理装置基于所述第一测量传感器的主光轴相对于水平或垂直面的夹角来确定第一测量传感器所测得的深度数据中与行进平面对应的深度数据,根据行进平面的深度数据可得到相对应的行进平面的第三点云数据,根据行进平面的第三点云数据可拟合出拟合行进平面,其中,将行进平面的深度数据转换为相对应的第三点云数据的方式与前文所述的处理装置将所述深度数据转换为第一点云数据的方式相同或相似,在此不再详述。例如,移动机器人的第一测量传感器的主光轴相对于垂直面(与行进平面相垂直的平面)的夹角为θ,所述移动机器人以该角度俯视地面获取所述深度数据,所述存储装置中预先存储有该角度所对应的预设像素区域(例如一幅图像中下半部分像素区域、或下半部分像素区域的十分之一等)。所述处理装置可根据所述预设像素区域所对应的第三点云数据区域拟合出拟合行进平面,基于该拟合行进平面,可确定第一障碍物对应的第三点云数据中的每一点至拟合行进平面的距离,并据此分析出所述第一障碍物距离行进平面的第二高度。例如,所述处理装置按照上述方式确定第一障碍物对应的第三点云数据中任意一点距离拟合行进平面的高度,并将该点距离拟合行进平面的高度作为第一障碍物距离所述行进平面的第二高度。又如,所述处理装置还可按照上述方式遍历第一障碍物对应的第三点云数据以分别确定各点距离拟合行进平面的高度,进而处理装置可以确定出第一障碍物对应的第三点云数据距离拟合行进平面的最大高度、最低高度、均值高度、以及高度的标准差、离群值等,并以最低高度、或者均值高度作为第一障碍物距离行进平面的第二高度,但并不以此为限。
在另一具体实施例中,所述处理装置根据前述实施方式对所述第三点云数据进行聚类,得到第一障碍物类点云数据、行进平面类点云数据,所述处理装置根据第一障碍物类点云数据直接拟合出拟合行进平面,基于该拟合行进平面,可确定第一障碍物类点云数据中的每一点至拟合行进平面的距离,进而可以确定所述第一障碍物距离行进平面的第二高度,所述第二高度的确定方式与前文所述的相同或相似,在此不再详述。
在某些实施例中,所述第一障碍物的下表面不是水平面,其包括了向行进平面方向突出的部分或者连接了其他障碍物。基于此,所述处理装置将第一障碍物的下表面向行进平面方向突出的部分距离行进平面的高度、或者与所述第一障碍物的下表面相连的障碍物距离行进平面的高度作为所述第一障碍物距离行进平面的第二高度。例如,床板下表面包括了突出的钉子,所述处理装置将钉子距离行进平面的高度作为所述第一障碍物距离行进平面的第二高度,以此保证了移动机器人不会被狭缝空间内突出的障碍物影响,而被卡在所述狭缝空间内。
所述处理装置通过分析所确定的第二高度,确定所述移动机器人是否能够进入所述狭缝空间中。具体地,当所述第二高度满足预设的高度条件时,控制所述移动机器人进入所述狭缝空间;当所述第二高度不满足预设的高度条件时,控制所述移动机器人改变移动方向以绕开所述狭缝空间。
所述预设的高度条件是所述第二高度大于所述预设高度,所述预设高度是根据所述移动机器整体的物理高度决定的。例如,所述预设高度是所述移动机器整体的物理高度。又如,所述预设高度是所述移动机器整体的物理高度加上第一测量传感器的测量误差。
基于此,当所述第二高度不满足所述预设的高度条件时,即所述第二高度小于等于所述预设高度时,控制所述移动机器人改变移动方向以绕开所述狭缝空间。当所述第二高度满足预设的高度条件时,即所述第二高度大于所述预设高度时,控制所述移动机器人进入所述狭缝空间。需要说明的是,所述处理装置在确定移动机器人可以进入所述狭缝空间的情况下,可以不立即进入所述狭缝空间,而是当移动机器人基于移动路线需要进入所述狭缝空间时,控制所述移动机器人进入所述狭缝空间。
请参阅图8,图8显示为本申请的控制方法在另一实施方式中的流程示意图,如图所示,所述控制方法包括步骤S210、步骤S220、步骤S230、步骤S240、步骤S250、步骤S260。
在步骤S210中,所述处理装置根据第一点云数据识别第一障碍物以及确定所述第一障碍物与所述移动机器人之间的相对空间位置;其中,所述第一障碍物与所述移动机器人的行进平面形成了狭缝空间;所述第一点云数据是基于第一测量传感器的测量而得到的。所述步骤S210与步骤S110中所述的相同或相似,在此不再详述。
在步骤S220中,所述处理装置根据第二点云数据识别至少一个第二障碍物;其中,所述第二点云数据是第二测量传感器测量的与所述相对空间位置相对应的点云数据。所述步骤S220与前文步骤S120中所述的相同或相似,在此不再详述。
在步骤S230中,所述处理装置将所述第一障碍物和所识别的第二障碍物所对应的地图数据分别存储在第一障碍物地图数据集和第二障碍物地图数据集中。具体地,移动机器人基于一导航地图进行导航移动,所述处理装置将步骤S210中所识别的第一障碍物在所述导航地图中的地图数据存储在第一障碍物地图数据集中,将步骤S220中所识别的第二障碍物在所述导航地图中的地图数据存储在第二障碍物地图数据集中。基于此,所述第一障碍物地图数据集中包括:第一障碍物在所述导航地图中的地图数据;所述第二障碍物地图数据集中包括:第二障碍物在所述导航地图中的地图数据,在本申请的实施方式中,以所述地图数据为导航地图中的位置坐标为例,但并不以此为限。例如,所述第一障碍物为如床板等悬空结构、所述第二障碍物为如足球、线缆、床板等第二测量传感器所识别出的障碍物,所述第一障碍物的第一障碍物地图数据集中包括各种悬空结构在导航地图中的各位置坐标,所述第二障碍物的第二障碍物地图数据集中包括各种第二测量传感器所识别出的障碍物在导航地图中的各位置坐标。
在其他实施方式中,所述第一障碍物地图数据集中还包括第一障碍物距离行进平面的高度,即前文所述的狭缝空间的高度;所述第二障碍物地图数据集中还包括第二障碍物距离行进平面的高度。当所述第二障碍物是悬空结构(例如桌面、床板等)时,确定悬空结构的第二障碍物距离所述行进平面的高度与前文中确定第一高度的实施方式相同或相似,在此不再详述。当所述第二障碍物是与行进平面直接接触的障碍物(例如足球、线缆、桌腿等),所述第二障碍物距离行进平面的高度为0。
当所述移动机器人中存储有第一障碍物地图数据集以及第二障碍物地图数据集的情况下,所述处理装置执行步骤S240以确定所述第一障碍物地图数据集和第二障碍物地图数据集是否匹配,进而确定第二测量传感器是否检测到所述第一障碍物。
在步骤S240中,对所述第一障碍物地图数据集和第二障碍物地图数据集进行匹配。
在一实施例中,第一障碍物地图数据集中包括至少一个第一障碍物的地图数据,对于每一第一障碍物的地图数据均能在第二障碍物地图数据集中找到相匹配的第二障碍物的地图数据,则确定两个地图数据集相匹配,如果存在至少一个第一障碍物与所述第二障碍物地图数据集中的所有第二障碍物的地图数据均不匹配时,则确定两个地图数据集不匹配。例如,第一障碍物地图数据集中包括床板的地图数据A和沙发座的地图数据B,所述第二障碍物地图数据集中包括沙发座的地图数据B、足球的地图数据C,则认为两个障碍物地图数据集不匹配,床板是第二测量传感器未识别出的障碍物。又如,第一障碍物地图数据集中包括床板的地图数据A和沙发座的地图数据B,所述第二障碍物地图数据集中包括床板的地图数据A、沙发座的地图数据B、足球的地图数据C,则认为两个障碍物地图数据集相匹配,即第二测量传感器识别出了床板和沙发座。
在所述第一障碍物地图数据集中还包括第一障碍物距离行进平面的高度、以及所述第二障碍物地图数据集中还包括第二障碍物距离行进平面的高度的情况下,所述处理装置可以进一步确认两个障碍物地图数据集相匹配。例如,所述第一障碍物地图数据集中仅包括一个第一障碍物的地图数据E,第二障碍物地图数据集中同样包括地图数据E并且对应的第二障碍物距离行进平面的高度与第一障碍物距离行进平面的高度相同,则认定两个障碍物地图数据集相匹配。
在步骤S250中,当第一障碍物地图数据集和第二障碍物地图数据集不匹配,以及当所述移动机器人根据所述相对空间位置移动至所述第一障碍物与所述移动机器人的行进平面所形成的狭缝空间处时,基于所述第一测量传感器向所述狭缝空间的探测,得到第三点云数据。
具体地,在所述第一障碍物地图数据集和第二障碍物地图数据集不匹配的情况下,所述处理装置确定所述第二测量传感器未识别出的第一障碍物,移动机器人根据第一障碍物与移动机器人之间的相对空间位置移动至所述第一障碍物与所述行进平面所形成的狭缝空间处的实施方式、以及基于所述第一测量传感器向所述狭缝空间的探测得到第三点云数据的实施方式与前文所述的相同或相似,在此不再详述。
所述移动机器人得到所述第三点云数据后,可执行步骤S260,以确定所述第一障碍物的准确高度。
在步骤S260中,基于所述第三点云数据确定所述移动机器人是否能够进入所述狭缝空间中。所述步骤S260与步骤S140中所述的相同或相似,在此不再详述。
基于上述理解,所述处理装置在第一测量传感器检测到第一障碍物以及第二测量传感器未检测到第一障碍物的情况下,根据所述第一测量传感器向所述狭缝空间的探测而得到的第三点云数据,确定所述移动机器人是否能够进入所述狭缝空间中。图5或者图8所示的控制方法能有效地解决现有技术中移动机器人不能针对与行进平面构成狭缝空间的低矮障碍物进行准确、有效地检测的问题;以及基于对与行进平面构成狭缝空间的低矮障碍物的准确检测,能准确地确认移动机器人是否能进入狭缝空间,既可以避免移动机器人卡在狭缝空间中,又能提高移动机器人执行特定功能的覆盖率(例如具有清洁功能的移动机器人执行清洁功能的覆盖率)。
基于本申请中图5所示的移动机器人的控制方法,本申请还提供一种移动机器人的控制系统,如图9所示,所述控制系统40包括:第一障碍物识别模块41、第三点云数据获取模块42、控制模块43;其中,所述第一障碍物识别模块41用于根据第一点云数据识别第一障碍物以及确定所述第一障碍物与所述移动机器人之间的相对空间位置;其中,所述第一障碍物与所述移动机器人的行进平面形成了狭缝空间;所述第一点云数据是基于第一测量传感器的测量而得到的;所述第三点云数据获取模块42用于当根据第二点云数据不能未识别出所述第一障碍物时,以及当所述移动机器人根据所述相对空间位置移动至所述狭缝空间处时,基于所述第一测量传感器向所述狭缝空间的探测,得到第三点云数据;其中,所述第二点云数据是第二测量传感器测量的与所述相对空间位置相对应的点云数据;所述控制模块43用于根据所述第三点云数据确定所述移动机器人是否能够进入所述狭缝空间中。
其中,所述控制系统40中的第一障碍物识别模块41、第三点云数据获取模块42、控制模块23根据上述描述的各模块的功能协同执行前述步骤S110至步骤S130,在此不再赘述。
基于本申请中图5或图8所示的移动机器人的控制方法,本申请还提供一种移动机器人,请参阅图10,其显示为本申请的移动机器人在一实施方式中的结构示意图,如图所示,所述移动机器人包含存储装置11、处理装置13、第一测量传感器50、第二测量传感器60、移动装置70。
所述存储装置11和处理装置13可对应于前述图4中提及的控制系统10中的存储装置和处理装置,在此不再详述。所述处理装置13利用控制系统10中的接口装置12与所述第一测量传感器50、第二测量传感器60、以及移动装置70相连。
所述第一测量传感器50用于获取深度数据,其中,前文所述的所述第一点云数据以及第三点云数据是基于所述第一测量传感器所获取的深度数据得到的。所述第一测量传感器50以及其装配方式与前文所述的相同或相似,在此不再详述。
所述第二测量传感器60位于所述移动机器人的上表面,用于获取点云数据,其中,所述第二测量传感器的上方还设置有保护所述第二测量传感器的保护罩(未图示),前文所述的第二点云数据是第二测量传感器60得到的。
所述移动装置70与处理装置13相连用于受控执行移动操作。于实际的实施方式中,移动装置70可包括行走机构和驱动机构,其中,所述行走机构可设置于移动机器人的底部,所述驱动机构内置于所述移动机器人的壳体内。进一步地,所述行走机构可采用行走轮方式,在一种实现方式中,所述行走机构可例如包括至少两个万向行走轮,由所述至少两个万向行走轮实现前进、后退、转向、以及旋转等移动。在其他实现方式中,所述行走机构可例如包括两个直行行走轮和至少一个辅助转向轮的组合,其中,在所述至少一个辅助转向轮未参与的情形下,所述两个直行行走轮主要用于前进和后退,而在所述至少一个辅助转向轮参与并与所述两个直行行走轮配合的情形下,就可实现转向和旋转等移动。所述驱动机构可例如为驱动电机,利用所述驱动电机可驱动所述行走机构中的行走轮实现移动。在具体实现上,所述驱动电机可例如为可逆驱动电机,且所述驱动电机与所述行走轮的轮轴之间还可设置有变速机构。
所述移动机器人的工作过程举例如下:处理装置13将所述第一测量传感器50获取的深度数据转换为第一点云数据,并根据第一点云数据识别出第一障碍物;基于此,所述处理装置13根据第二测量传感器60获取的第二点云数据识别第一障碍物,当根据第二点云数据未识别出所述第一障碍物的情况下,所述处理装置13控制所述移动机器人的移动装置70,以使所述移动机器人移动至所述狭缝空间处,使得第一测量传感器可以向所述狭缝空间的探测,从而使所述处理装置得到第三点云数据;所述处理装置13根据所述第三点云数据可以准确地计算所述第一障碍物距离行进平面的高度,即第二高度,当所述第二高度满足预设的高度条件时,所述处理装置13控制所述移动机器人的移动装置70以使所述移动机器人进入所述狭缝空间,当所述第二高度不满足预设的高度条件时,所述处理装置13控制所述移动机器人的移动装置70改变移动方向以绕开所述狭缝空间。
在某些实施例中,所述移动机器人为清洁机器人,则所述清洁机器人还包括清洁装置(未予图示),所述清洁装置用于在所述移动机器人的移动过程中执行清洁操作,例如:扫地操作、或者拖地操作。
所述清洁装置包括拖地组件(未予图示)、和/或清扫组件(未予图示),其中,所述拖地组件用于受控执行拖地操作。所述拖地组件包括:拖垫、拖垫承载体、喷雾装置、洒水装置等。所述拖地组件用于在拖地模式下受控执行拖地操作。所述清扫组件用于受控执行扫地操作。所述清扫组件可包括位于壳体底部的边刷、滚刷以及与用于控制所述边刷的边刷电机和用于控制所述滚刷的滚刷电机,其中,所述边刷的数量可为至少两个,分别对称设置于移动机器人壳体前端的相对两侧,所述边刷可采用旋转式边刷,可在所述边刷电机的控制下作旋转。所述滚刷位于移动机器人的底部中间处,可在所述滚刷电机的控制下作旋转转动进行清扫工作,将垃圾由清洁地面扫入并通过收集入口输送到吸尘组件内。所述吸尘组件可包括集尘室、风机,其中,所述集尘室内置于壳体,所述风机用于提供吸力以将垃圾吸入集尘室中。所述清洁装置并不以此为限。
本申请所述的移动机器人在其第一测量传感器检测到第一障碍物以及第二测量传感器未检测到第一障碍物的情况下,根据所述第一测量传感器向所述狭缝空间的探测而得到的第三点云数据,确定所述移动机器人是否能够进入所述狭缝空间中。本申请所述的移动机器人能有效地解决现有技术中移动机器人不能针对与行进平面构成狭缝空间的低矮障碍物进行准确、有效地检测的问题;以及基于对与行进平面构成狭缝空间的低矮障碍物的准确检测,能准确地确认移动机器人是否能进入狭缝空间,既可以避免移动机器人卡在狭缝空间中,又能提高移动机器人执行特定功能的覆盖率(例如具有清洁功能的移动机器人执行清洁功能的覆盖率)。
本申请还提供一种计算机可读写存储介质,存储至少一种程序,所述至少一种程序在被调用时执行并实现上述针对图5所示的控制方法所描述的至少一种实施例或者针对图8所示的控制方法所描述的至少一种实施例。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得安装有所述存储介质的移动机器人可以执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请所述方法的计算机程序所描述的功能可以用硬件、软件、固件或其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请上述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于此,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。