CN112515554B - 一种机器人行走路径搜索方法及电子设备 - Google Patents

一种机器人行走路径搜索方法及电子设备 Download PDF

Info

Publication number
CN112515554B
CN112515554B CN202011098823.4A CN202011098823A CN112515554B CN 112515554 B CN112515554 B CN 112515554B CN 202011098823 A CN202011098823 A CN 202011098823A CN 112515554 B CN112515554 B CN 112515554B
Authority
CN
China
Prior art keywords
line segment
target
robot
diffusion
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011098823.4A
Other languages
English (en)
Other versions
CN112515554A (zh
Inventor
闫瑞君
刘文锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Silver Star Intelligent Group Co Ltd
Original Assignee
Shenzhen Silver Star Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Silver Star Intelligent Technology Co Ltd filed Critical Shenzhen Silver Star Intelligent Technology Co Ltd
Priority to CN202011098823.4A priority Critical patent/CN112515554B/zh
Publication of CN112515554A publication Critical patent/CN112515554A/zh
Application granted granted Critical
Publication of CN112515554B publication Critical patent/CN112515554B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/24Floor-sweeping machines, motor-driven
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/28Floor-scrubbing machines, motor-driven
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4002Installations of electric equipment
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4011Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本发明涉及机器人技术领域,公开一种机器人行走路径搜索方法及电子设备。方法包括:获取栅格地图,在栅格地图的可清扫区域中确定包含初始点的初始线段,初始线段与栅格地图的行栅格线或列栅格线平行,扩散与初始线段平行的至少两条扩散线段,直至扩散线段包含目标点时,停止扩散操作,根据搜索算法,筛选机器人由初始点到目标点所经过的若干目标扩散线段,根据若干目标扩散线段,搜索机器人的行走路径。区别于传统技术以像素点为扩散单位,本实施例以线段为扩散单位辅助搜索行走路径,本实施例能够简化算法,降低数据的计算量,从而提高路径规划的实时性,且无需开辟较多内存满足数据的计算,减少内存资源的占用。

Description

一种机器人行走路径搜索方法及电子设备
技术领域
本发明涉及机器人技术领域,具体涉及一种机器人行走路径搜索方法及电子设备。
背景技术
随着机器人导航技术的发展,机器人可以根据路径规划算法,在预设空间内自主从初始点行走至目标点。
传统路径规划算法需要在地图中逐个搜索像素点,以便搜索出最佳行走路径。然而,采用此类路径规划算法,机器人需要计算大量数据,需要开辟较大内存以存储数据,从而降低机器人的实时性。
发明内容
本发明实施例的一个目的旨在提供一种机器人行走路径搜索方法及电子设备,其能够降低数据的计算量。
在第一方面,本发明实施例提供一种机器人行走路径搜索方法,包括:
获取栅格地图,在所述栅格地图的可清扫区域中确定包含初始点的初始线段,所述初始线段与所述栅格地图的行栅格线或列栅格线平行;
在所述可清扫区域中,扩散与所述初始线段平行的至少两条扩散线段,直至扩散线段包含目标点时,停止扩散操作;
根据搜索算法,筛选所述机器人由所述初始点到所述目标点所经过的若干目标扩散线段;
根据所述若干目标扩散线段,搜索所述机器人的行走路径。
可选地,所述搜索算法包括回溯算法,所述根据搜索算法,筛选所述机器人由所述初始点到所述目标点所经过的若干目标扩散线段包括:
根据所述回溯算法,筛选所述机器人由所述目标点到所述初始点所经过的若干目标扩散线段。
可选地,所述根据搜索算法,筛选所述机器人由所述初始点到所述目标点所经过的若干目标扩散线段还包括:
根据每条所述扩散线段与所述初始线段的距离,标注每条所述扩散线段的等级;
根据所述回溯算法,删除与所述目标扩散线段同等级,且所述机器人预判断从所述目标点到所述初始点时不经过的扩散线段。
可选地,所述根据所述回溯算法,筛选所述机器人由所述目标点到所述初始点所经过的若干目标扩散线段包括:
以第m目标扩散线段为当前扩散线段,反向搜索已迭代得到所述当前扩散线段的第m+1目标扩散线段,m≥0且为整数,当m=0时,第0目标扩散线段包含所述目标点;
判断所述第m+1目标扩散线段是否包含所述初始点;
若是,停止回溯操作,并提取全部所述目标扩散线段;
若否,赋值m=m+1,返回以第m目标扩散线段为当前扩散线段,反向搜索已迭代得到所述当前扩散线段的第m+1目标扩散线段的步骤。
可选地,所述在所述可清扫区域中,扩散与所述初始线段平行的至少两条扩散线段,包括:
在所述可清扫区域中,以第i扩散线段为当前迭代母线段,扩散与所述当前迭代母线段平行的第i+1扩散线段,i≥0且为整数,当i=0时,第0扩散线段为所述初始线段;
判断所述第i+1扩散线段是否包含所述目标点;
若是,停止扩散操作;
若否,赋值i=i+1,返回以第i扩散线段为当前迭代母线段,扩散与所述当前迭代母线段平行的第i+1扩散线段的步骤。
可选地,所述根据所述若干目标扩散线段,搜索所述机器人的行走路径包括:
确定每条所述目标扩散线段的拐点,所述机器人可在相邻两条所述目标扩散线段中一条目标扩散线段上行走,并通过所述拐点拐弯至另一条目标扩散线段上行走;
连接所述初始点、每条所述目标扩散线段的拐点及所述目标点,得到所述机器人的最短行走路径。
可选地,所述根据所述若干目标扩散线段,搜索所述机器人的行走路径还包括:
根据所述最短行走路径,搜索最终行走路径,所述机器人按照所述最终行走路径行走时,拐弯次数小于或等于按照所述最短行走路径行走时拐弯的次数。
可选地,所述连接所述初始点、每条所述目标扩散线段的拐点及所述目标点包括:
根据每条所述目标扩散线段的等级顺序,连接所述初始点、每条所述目标扩散线段的拐点及所述目标点,其中,每条所述目标扩散线段与所述初始点或所述目标点的距离,与每条所述目标扩散线段的等级关联。
可选地,所述栅格地图包括不可清扫区域;
所述初始线段及每条所述扩散线段的两端栅格皆为所述可清扫区域与所述不可清扫区域的边界栅格。
在第二方面,一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行任一项所述的机器人行走路径搜索方法。
在第三方面,本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使电子设备执行上述机器人行走路径搜索方法。
在第四方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的机器人行走路径搜索方法。
本发明与现有技术相比至少具有以下有益效果:在本发明实施例的机器人行走路径搜索方法中,首先,获取栅格地图,在栅格地图的可清扫区域中确定包含初始点的初始线段,初始线段与栅格地图的行栅格线或列栅格线平行。其次,在可清扫区域中,扩散与初始线段平行的至少两条扩散线段,直至扩散线段包含目标点时,停止扩散操作。再次,根据搜索算法,筛选机器人由初始点到目标点所经过的若干目标扩散线段。最后,根据若干目标扩散线段,搜索机器人的行走路径。区别于传统技术以像素点为扩散单位,本实施例以线段为扩散单位辅助搜索行走路径,一方面,本实施例能够简化算法,降低数据的计算量,从而提高路径规划的实时性。另一方面,由于无需较多数据的计算,本实施例无需开辟较多内存满足数据的计算,减少内存资源的占用。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的一种机器人的结构示意图;
图2为本发明实施例提供的机器人与外部终端的通信架构示意图;
图3为本发明实施例提供的一种机器人行走路径搜索方法的流程示意图;
图4a为本发明实施例提供的一种栅格地图的示意图,其中,栅格地图包括初始点与目标点;
图4b为在图4a所示的栅格地图上绘画初始线段的示意图;
图4c为在图4b所示的栅格地图上进行扩散线段的示意图;
图4d为在图4c所示的栅格地图上进行筛选操作以得到目标扩散线段的示意图;
图4e为在图4d所示的栅格地图上进行行走路径搜索的一种示意图;
图5为本发明实施例提供的机器人在室内空间下行走的场景示意图;
图6a为图3所示的步骤S32的流程示意图;
图6b为本发明实施例提供的机器人根据回溯算法筛选机器人由目标点到初始点所经过的若干目标扩散线段的流程示意图;
图6c为图3所示的步骤S34的一种流程示意图;
图6d为图6c所示的步骤S341的流程示意图;
图6e为本发明实施例提供的采用图6d所示的方法确定拐点的一种场景示意图;
图6f为本发明实施例提供的采用图6d所示的方法确定拐点的另一种场景示意图;
图6g为图3所示的步骤S34的另一种流程示意图;
图6h为在图4d所示的栅格地图上进行行走路径搜索的另一种示意图;
图6i为在6h所示的栅格地图上进行优化后的示意图;
图7为图6d所示的步骤S343的流程示意图;
图8为本发明实施例提供的一种机器人行走路径搜索装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
本发明实施例的机器人行走路径搜索方法,可以在任何合适类型、具有运算能力的处理器的电子设备中执行,例如台式计算机、智能手机、平板电脑或机器人等。其中,本发明实施例的机器人可以被构造成任何合适形状,以便实现特定业务功能操作,例如,本发明实施例机器人可以为清洁机器人、宠物机器人、搬运机器人、看护机器人等等。其中,清洁机器人包括且不限于扫地机器人、吸尘机器人、拖地机器人或洗地机器人。
本发明实施例的机器人行走路径搜索装置可以作为其中一个软件或者硬件功能单元,独立设置在电子设备,也可以作为整合在处理器中的其中一个功能模块,执行本发明实施例的机器人行走路径搜索方法。
请参阅图1,在一些实施例中,机器人100包括控制单元11、传感单元12、无线通信单元13、清洁单元14以及驱动单元15。
控制单元11作为机器人100的控制核心,可以采用多种路径规划算法控制机器人实施遍历工作。
在一些实施例中,控制单元11采用SLAM(simultaneous localization andmapping,即时定位与建图技术)技术,根据环境数据构建地图和定位。控制单元11基于被建立好的地图以及机器人的位置,通过全覆盖路径规划算法指示机器人完全遍历一个环境空间。
在一些实施例中,在机器人100遍历时,传感单元12获取遍历区域的图像,其中,该遍历区域的图像可以为整片遍历区域的图像,亦可以为整片遍历区域中局部遍历区域的图像。控制单元11根据遍历区域的图像生成地图,该地图已指示机器人100需要遍历的区域以及位于遍历区域中的障碍物所在的坐标位置。当机器人100每遍历完一个位置或区域后,机器人100基于该地图,标记该位置或区域已被遍历。并且,由于障碍物在地图中是以坐标方式被标记,机器人遍历时,可以根据当前位置对应的坐标点与障碍物涉及的坐标点,判断与障碍物之间的距离,从而实现环绕障碍物作遍历工作。同理,位置或区域已遍历而被标记后,当机器人100下一个位置将会移动至该位置或该区域时,机器人100基于该地图以及该位置或该区域的标记,作出转弯调头或者停止遍历的策略。
在一些实施例中,控制单元11可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,控制单元11还可以是任何传统处理器、控制器、微控制器或状态机。控制单元11也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
传感单元12用于采集机器人100的一些运动参数及环境空间各类数据,传感单元12包括各类合适传感器,诸如惯性测量单元(Inertial measurement unit,IMU)、陀螺仪、磁场计、加速度计或速度计、激光雷达或者声波雷达等等。
请参阅图2,在一些实施例中,机器人100通过无线通信单元13与外部终端200无线通信,无线通信单元13与控制单元11电连接。遍历时,用户通过外部终端200向机器人100发送控制指令,无线通信单元13接收控制指令并向控制单元11发送该控制指令,控制单元11根据该控制指令控制机器人100完成遍历工作。在一些实施例中,外部终端200包括且不限于智能手机、遥控器、智能平板等等终端。
在一些实施例中,无线通信单元13包括广播接收模块、移动通信模块、无线互联网模块、短距离通信模块和定位信息模块的其中一种或多种的组合。
清洁单元14用于清洁地面,清洁单元14可被配置成任意清洁结构,例如,在一些实施例中,清洁单元14包括清洁电机及辊刷,辊刷的表面设置有清洁部,辊刷通过驱动机构与清洁电机连接,清洁电机与控制单元连接,控制单元可以向清洁电机发送指令,控制清洁电机驱动辊刷转动,使得其清洁部能够有效地清洁地面。
驱动单元15用于驱动机器人100行进或后退,清洁时,控制单元11向驱动单元15发送控制指令,驱动单元15根据控制指令带动清洁单元14完成清洁工作。
在一些实施例中,驱动单元15分为左轮驱动单元和右轮驱动单元。以左轮驱动单元为例,其包括电机、轮驱动机构、左轮,电机的转轴与轮驱动机构连接,左轮与轮驱动机构连接,电机与控制单元连接,电机接收控制单元11发送的控制指令而转动其转轴,并通过轮驱动机构将扭矩传输至左轮,实现左轮的转动;同时结合右驱动单元,从而驱动机器人100行进或后退。
本发明实施例提供一种机器人行走路径搜索方法。请参阅图3,机器人行走路径搜索方法S300包括:
S31、获取栅格地图,在栅格地图的可清扫区域中确定包含初始点的初始线段,初始线段与栅格地图的行栅格线或列栅格线平行;
在本实施例中,栅格地图由目标区域的环境图像生成,例如,机器人控制摄像头拍摄目标区域,得到环境图像,根据环境图像,生成栅格地图,目标区域的面积不同,栅格地图的大小亦不同,其中,目标区域可以为机器人所在的整体室内空间区域,亦可以为整体室内空间区域中局部空间区域。
通常,栅格地图都由若干栅格组成,在水平方向上,相邻两个或两个以上栅格可以组成行栅格线。在垂直方向上,相邻两个或两个以上栅格可以组成列栅格线。
一般的,由于目标区域的环境比较复杂,为了表达目标区域中各个局部区域的特征,于是,可以根据图像中各个物体的情况,给每个栅格配置相应的栅格状态。栅格状态用于表征图像中此处像素点的情况,由于像素点可以属于已探测到的障碍物的像素,也可以属于已探测到的无障碍物的像素,也可以属于尚未知悉此处状态的像素,因此,栅格状态包括无障碍物状态、有障碍物状态及未知状态,相应的,每个栅格状态都可以被量化表示,例如,栅格的栅格值为0,其表示无障碍物状态。栅格值为1,其表示有障碍物状态。栅格值为2,其表示未知状态。
在本实施例中,根据机器人是否可清扫某个区域的可行性,可以将栅格地图划分为可清扫区域与不可清扫区域,可清扫区域为机器人可清扫的区域,不可清扫区域为机器人不可清扫的区域。可以理解的是,如前所述,机器人在构建栅格地图时,已在栅格地图中标识无障碍物以及标识障碍物,无障碍物的区域可以作为可清扫区域,障碍物所在的像素区域可以作为不可清扫区域,另外,用户可以根据自身需求,控制机器人将指定区域标注为不可清扫区域。还可以理解的是,不可清扫区域与可清扫区域还可以由与前述方法不同的区域规划算法确定。
在本实施例中,初始点可以为机器人开始在可清扫区域内执行作业的起始点,可以为机器人在可清扫区域执行作业时某个时间点对应的地点。初始线段为机器人在初始点开始执行线段扩散操作时的首条线段,其中,初始线段由在水平方向或垂直方向上的至少相邻两个栅格组成。因此,初始线段可以与行栅格线平行,亦可以与列栅格线平行。
请一并参阅图4a与图4b,机器人在可清扫区域41内,自初始点D1开始行走至目标点D2,机器人开始确定包含初始点D1的初始线段42,其中,初始线段42与行栅格线平行,当在栅格地图定义坐标系x0y时,其中,x轴平行于行栅格线,y轴平行于列栅格线,在初始线段42上的各个栅格的纵坐标皆相同,亦即,初始线段42的其它栅格的纵坐标与初始点D1的纵坐标相同。
S32、在可清扫区域中,扩散与初始线段平行的至少两条扩散线段,直至扩散线段包含目标点时,停止扩散操作;
在本实施例中,为了使得机器人能够顺利无障碍地由初始点行走至目标点,机器人可以在可清扫区域中执行线段扩散操作。如前所述,机器人已经确定初始线段,于是,机器人便可以以初始线段作为基准线段,朝着初始线段的两侧依序迭代扩散出更多与初始线段平行的扩散线段,亦即,扩散出的扩散线段都需要与初始线段平行,其中,扩散线段由在水平方向或垂直方向上的至少相邻两个栅格组成。当扩散线段包含目标点时,由于机器人已找到包含目标点的扩散线段,因此,无需继续扩散,于是,机器人便停止扩散操作。
在本实施例中,目标点为机器人需要执行相应作业时而需要行走的终点,机器人可以自行或者受用户的控制以确定目标点。
请参阅图4c,机器人以初始线段42为基准线段,扩散出若干条扩散线段43,每条扩散线段43皆与初始线段42平行。执行线段扩散操作后,直至最后扩散线段44包含目标点D2后,机器人便不会再继续以最后扩散线段44为母线段来扩散子线段。
S33、根据搜索算法,筛选机器人由初始点到目标点所经过的若干目标扩散线段;
在本实施例中,由于步骤S32扩散出得到的若干扩散线段并不是机器人都需要经过的,为了得到较佳的行走路径,减少后期数据处理和分析难度,机器人需要从中筛选出目标扩散线段,目标扩散线段为在若干扩散线段中,机器人预判断自初始点到目标点所要经过的扩散线段,或者,机器人预判断自目标点到初始点所要经过的扩散线段。
在本实施例中,若干目标扩散线段的线段数量不定,可以为一条,亦可以为两条以上。当目标点与初始点在同一条线段上时,目标扩散线段的线段数量为一条,当目标点与初始点不在同一条线段时,目标扩散线段的线段数量可以为两条以上。
在本实施例中,本领域技术人员可以根据本发明实施例公开的内容,选择合适搜索算法,筛选出目标扩散线段,例如,搜索算法包括前向搜索算法或回溯算法等。
可以理解的是,搜索时,机器人可以自初始点开始,一直前向搜索到目标点,以便筛选出目标扩散线段,或者,机器人可以自目标点开始,一直逆向搜索到初始点,以便筛选出目标扩散线段。
请参阅图4d,机器人根据搜索算法,在图4c所示的若干扩散线段43中筛选出若干目标扩散线段45。
S34、根据若干目标扩散线段,搜索机器人的行走路径。
在本实施例中,请参阅图4e,机器人可以在若干目标扩散线段的基础上,根据路径规划算法,搜索出行走路径46,后续,机器人按照行走路径46,便可以从初始点行走至目标点。
为了更加详细理解本发明实施例,本文结合图5提供的室内场景对此作出详细的阐述,具体如下:请参阅图5,整体室内空间包括多个房间,室内空间布设有各类障碍物,诸如墙壁、餐桌等。首先,机器人获取整体室内空间的栅格地图,便标注出可清扫区域与不可清扫区域。接着,机器人在可清扫区域51内,自E1点开始行走至E2点,此时,E1可以作为初始点。或者,机器人在可清扫区域51内,先开始从E1点行走至E3点后,开始规划需要从E3点行走至E2点,于是,E3点亦可以作为初始点。因此,无论是以E1点还是以E3点作为初始点,机器人都可以采用本实施例提供的方法,自主导航和确定行走路径S1,按照行走路径S1行走至E2点。
可以理解的是,机器人还可以采用本实施例提供的方法,自初始点E1开始行走至目标点E4,或者,自初始点E1开始行走至目标点E5。
还可以理解的是,机器人可以以E2点为起始点,E1点为目标点,自E2点行走至E1点。
综上所述,区别于传统技术以像素点为扩散单位,本实施例以线段为扩散单位辅助搜索行走路径,一方面,本实施例能够简化算法,降低数据的计算量,从而提高路径规划的实时性。另一方面,由于无需较多数据的计算,本实施例无需开辟较多内存满足数据的计算,减少内存资源的占用。
如前所述,初始线段与各条扩散线段都由相邻的至少两个栅格组成,为了进一步降低数据的计算量,在构造初始线段或扩散线段时,需要尽量能够组合更多栅格构成初始线段或扩散线段,在一些实施例中,初始线段及每条扩散线段的两端栅格皆为可清扫区域与不可清扫区域的边界栅格,因此,采用此方法,在后续作扩散操作时,其能够保证快速找到包含目标点的扩散线段下,也能够极大降低数据的计算量。
扩散线段时,本领域技术人员可以选择任何合适扩散策略进行扩散操作,请参阅图6a,在一些实施例中,步骤S32采用距离逐渐变远的方法扩散线段,具体的,步骤S32包括:
S321、在可清扫区域中,以第i扩散线段为当前迭代母线段,扩散与当前迭代母线段平行的第i+1扩散线段,i≥0且为整数;
S322、判断第i+1扩散线段是否包含目标点;
S323、若是,停止扩散操作;
S324、若否,赋值i=i+1,返回步骤S321。
在本实施例中,当i=0时,第0扩散线段为初始线段。
在本实施例中,扩散是指在可清扫区域中不断地查找与当前扩散线段相邻且平行的线段的操作,当机器人开始查找时,当前扩散线段为初始线段。
为了详细理解本实施例提供的扩散线段过程,本文提供以下例子作出详细说明,具体如下:
当i=0时,机器人在可清扫区域中,以第0扩散线段为当前迭代母线段,扩散与当前迭代母线段平行的第1扩散线段。
接着,机器人判断第1扩散线段是否包含目标点,若是,停止扩散操作。若否,赋值i=0+1=1,返回步骤S321。
返回步骤S321后,机器人在可清扫区域中,以第1扩散线段为当前迭代母线段,扩散与当前迭代母线段平行的第2扩散线段。接着,机器人判断第2扩散线段是否包含目标点,若是,停止扩散操作。若否,赋值i=1+1=2,返回步骤S321。
再返回步骤S321后,机器人在可清扫区域中,以第2扩散线段为当前迭代母线段,扩散与当前迭代母线段平行的第3扩散线段。接着,机器人判断第3扩散线段是否包含目标点,若是,停止扩散操作。若否,赋值i=2+1=3,返回步骤S321。以此类推。
采用此迭代方法,其能够在保证最后能够迭代包含目标点的扩散线段下,快速高效率地进行扩散操作。
可以理解的是,如前所述,扩散线段由相邻的至少两个栅格组成,由当前扩散线段扩散出下一条扩散线段时,可以将当前扩散线段中任一个栅格作为拐点,扩散出所述下一条扩散线段。
举例而言,扩散线段K1、扩散线段K2及扩散线段K3为相邻扩散线段,其中,扩散线段K2由扩散线段K1扩散得到,扩散线段K3由目标扩散线段K2扩散得到,扩散线段K1由以下栅格{A1,A2,A3,A4,A5}构成,扩散线段K2由以下栅格{B1,B2,B3,B4,B5},扩散线段K3由以下栅格{C1,C2,C3,C4,C5},其中,(A1,B1,C1)的横坐标相同但纵坐标差值为1个像素高度,(A2,B2,C2)的横坐标相同但纵坐标差值为1个像素高度,(A3,B3,C3)的横坐标相同但纵坐标差值为1个像素高度,以此类推。
在本实施例中,以扩散线段K1的栅格A1作为扩散线段K1的拐点,开始进行扩散得到扩散线段K2的操作,亦即,在栅格A1的基础上,先扩散出B1,后续再扩散得到扩散线段K2。
接着,以扩散线段K2的栅格B1作为扩散线段K2的拐点,开始进行扩散得到扩散线段K3的操作,亦即,在栅格B1的基础上,先扩散出C1,后续再扩散得到扩散线段K3。
可以理解的是,在一些实施例中,还可以以扩散线段K1的栅格A3作为扩散线段K1的拐点,开始进行扩散得到扩散线段K2的操作,亦即,在栅格A3的基础上,先扩散出B3,后续再扩散得到扩散线段K2。
接着,以扩散线段K2的栅格B3作为扩散线段K2的拐点,开始进行扩散得到扩散线段K3的操作,亦即,在栅格B3的基础上,先扩散出C3,后续再扩散得到扩散线段K3,以此类推。
一般的,筛选目标扩散线段时,自起始点开始前向搜索时,其会面临多种扩散线段的选择,可能尝试多次后方可准确确定由起始点到目标点所经过的其中一条扩散线段,此种方式筛选效率不高。在一些实施例中,机器人选择回溯算法,筛选目标扩散线段时,机器人根据回溯算法,筛选机器人由目标点到初始点所经过的若干目标扩散线段,例如,在步骤S32中,已扩散得到的扩散线段集合为{L1,L2,L3……Lq,Lq+1},其中,扩散线段L1包含起始点,扩散线段Lq+1包含目标点,扩散线段Lq+1由扩散线段Lq扩散得到,扩散线段Lq-2同时扩散出扩散线段Lq和扩散线段Lq-1。一般,由于扩散线段Lq和扩散线段Lq-1之间间隔障碍物,扩散线段Lq-2不能扩散出由扩散线段Lq和扩散线段Lq-1组成的连续线段,需要分开两次扩散,例如,扩散线段Lq-2先扩散出位于障碍物左侧的扩散线段Lq-1,再扩散出位于障碍物右侧的扩散线段Lq,扩散线段Lq和扩散线段Lq-1互相对齐平行。
回溯筛选目标扩散线段时,扩散线段Lq+1包含目标点,机器人需要经过扩散线段Lq+1,则将扩散线段Lq+1作为目标扩散线段。
接着,扩散线段Lq+1由扩散线段Lq扩散得到,于是,机器人将扩散线段Lq作为目标扩散线段,
再接着,扩散线段Lq由扩散线段Lq-2扩散得到,于是,机器人将扩散线段Lq-2作为目标扩散线段。
再接着,扩散线段Lq-2由扩散线段Lq-3扩散得到,于是,机器人将扩散线段Lq-3作为目标扩散线段。
依次类推,直至搜索到扩散线段L1包含起始点时,一方面,机器人需要经过扩散线段L1,则将扩散线段L1作为目标扩散线段,机器人接下来就停止筛选操作。
采用回溯算法筛选目标扩散线段,其效率比较高,有利于提高机器人的实时性。
通常,得到目标扩散线段后就进入行走路径搜索的阶段,但是之前扩散出的扩散线段且机器人无需经过此类扩散线段还继续占用内存,为了降低内存资源的占用,在一些实施例中,在步骤S33中,首先,机器人根据每条扩散线段与初始线段的距离,标注每条扩散线段的等级,例如,扩散线段与初始线段的距离越远,扩散线段的等级越低,其中,等级可以由任何形式表达,例如,等级为1属于最高等级,等级2低于等级1,依次类推。其次,机器人根据回溯算法,删除与目标扩散线段同等级,且机器人从目标点到初始点时不经过的扩散线段。
举例而言,如前所述,扩散线段L1为初始线段,扩散线段L1的等级为1。扩散线段L2的等级为2,扩散线段L3的等级为3,扩散线段L4和扩散线段L5由扩散线段L3扩散得到,这两者与扩散线段L3的距离相同,因此,扩散线段L4和扩散线段L5的等都为4。
后续筛选目标扩散线段时,由于扩散线段L5为机器人预判断从目标点到初始点所经过的扩散线段,但是,机器人从目标点到初始点时未经过扩散线段L4,因此,机器人删除扩散线段L4,选择扩散线段L5作为目标扩散线段,以此类推。
采用本方法,其能够删除后续无需用到的扩散线段,从而节约内存资源。
在一些实施例中,请参阅图6b,机器人根据回溯算法筛选机器人由目标点到初始点所经过的若干目标扩散线段的具体过程如下所示:
S61、以第m目标扩散线段为当前扩散线段,反向搜索已迭代得到当前扩散线段的第m+1目标扩散线段,m≥0且为整数;
S62、判断第m+1目标扩散线段是否包含初始点,若是,跳转至S63,若否,跳转至S64;
S63、若是,停止回溯操作,并提取全部目标扩散线段;
S64、若否,赋值m=m+1,返回步骤S61。
举例而言,当m=0时,第0目标扩散线段包含目标点。第0目标扩散线段作为当前扩散线段,机器人根据回溯算法,反向搜索已迭代得到当前扩散线段的第1目标扩散线段。
接着,机器人判断第1目标扩散线段是否包含初始点,若包含,机器人停止回溯操作,并将得到的全部目标扩散线段提取出。若不包含,机器人赋值m=0+1=1,返回步骤S61。
返回步骤S61后,机器人以第1目标扩散线段为当前扩散线段,反向搜索已迭代得到当前扩散线段的第2目标扩散线段,再判断第2目标扩散线段是否包含初始点,若包含,机器人停止回溯操作,并将得到的全部目标扩散线段提取出。若不包含,机器人赋值m=1+1=2,返回步骤S61。
再次返回步骤S61后,机器人以第2目标扩散线段为当前扩散线段,反向搜索已迭代得到当前扩散线段的第3目标扩散线段,再判断第3目标扩散线段是否包含初始点,若包含,机器人停止回溯操作,并将得到的全部目标扩散线段提取出。若不包含,机器人赋值m=2+1=3,返回步骤S61。以此类推。
通常,为了提高作业效率,机器人需要快速从初始点行走至目标点。因此,在一些实施例中,本方法还可以搜索出最短行走路径。请参阅6c,步骤S34包括:
S341、确定每条目标扩散线段的拐点;
S342、连接初始点、每条目标扩散线段的拐点及目标点,得到机器人的最短行走路径。
在本实施例中,拐点用于指示机器人由当前目标扩散线段拐弯至相邻的下一条目标扩散线段,因此,机器人可在相邻两条目标扩散线段中一条目标扩散线段上行走,并通过拐点拐弯至另一条目标扩散线段上行走。在一些实施例中,请参阅图6d,S341包括:
S3411、赋值j=0,初始点的坐标为(X0,Y0),目标点的坐标为(Xh,Yh),执行步骤S3412;
S3412、判断X0是否大于或等于Xh;若是,跳转至S3413,若否,跳转至S3414;
S3413、若是,赋值m=0,执行S3415;
S3414、若否,赋值m=1,执行S3415;
S3415、判断坐标(Xj,Yj)是否等于(Xh,Yh),若是,跳转至步骤S3416,若否,跳转至步骤S3417;
S3416、若是,提取已标注的拐点;
S3417、若否,判断坐标(Xj,Yj)是否位于障碍物区域,若是,跳转至S3420,若否,跳转至步骤S3418;
S3418、若否,标注坐标(Xj,Yj)为拐点的坐标,执行步骤S3419;
S3419、赋值Xj+1=Xj,Yj+1=Yj+1,j=j+1,返回步骤S3415;
S3420、若是,赋值Yj=Yj-1,执行步骤S3421;
S3421、判断m是否等于0,若是,执行步骤S3422,若否,执行步骤S3425;
S3422、赋值Xj+1=Xj-1,Yj+1=Yj,j=j+1,执行步骤S3423;
S3423、判断Xj是否小于目标扩散线段的左端点的横坐标,若是,执行步骤S3424,若否,跳转至步骤S3419;
S3424、赋值m=1,跳转至步骤S3420;
S3425、若否,赋值Xj+1=Xj+1,Yj+1=Yj,j=j+1,执行步骤S3426;
S3426、判断Xj是否大于目标扩散线段的右端点的横坐标,若是,执行步骤S3427,若否,跳转至步骤S3419;
S3427、赋值m=0,跳转至步骤S3420。
在本实施例中,为了详细理解拐点的提取过程,本文结合图6e及图6f作出详细阐述,具体如下:
在图6e中,栅格K1至栅格K9都在对应的目标扩散线段中,坐标信息分别为(5,5)、(5,6)、(5,7)、(5,8)、(4,8)、(3,8)、(2,8)、(2,9)及(2,10),其中,K1(5,5)为初始点,K9(2,10)为目标点,K4、K5和K6的上方都是障碍物。
为了尽可能缩短行走路径,并且还能够搜索出最短行走路径,一般,机器人可以从初始点开始尽可能地朝着目标点所在方向进行拐点搜索,因此,机器人可以判断X0是否大于或等于Xh;若是,跳转至S3413,若否,跳转至S3414。在本实施例中,X0大于Xh,因此,赋值m=0,执行S3415,此处可以确定机器人在初始点时的拐点搜索方向。
第一阶段;
执行S3411,j=0,(X0,Y0)=(5,5),(Xh,Yh)=(2,10);
执行S3412,X0大于Xh,执行步骤S3413;
执行S3413,赋值m=0,执行S3415;
执行S3415,坐标(X0,Y0)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X0,Y0)不在障碍物区域,跳转至S3418;
执行S3418,标注坐标(X0,Y0)=(5,5)为拐点的坐标,执行步骤S3419,可以理解的是,初始点可以理解为起始拐点。
执行S3419,赋值X0+1=X0=5,Y0+1=Y0+1=6,j=0+1=1,返回步骤S3415;
第二阶段;
执行S3415,坐标(X1,Y1)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X1,Y1)不在障碍物区域,跳转至S3418;
执行S3418,标注坐标(X1,Y1)=(5,6)为拐点的坐标,执行步骤S3419;
执行S3419,赋值X1+1=X1=5,Y1+1=Y1+1=7,j=1+1=2,返回步骤S3415;
第三阶段;
执行S3415,坐标(X2,Y2)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X2,Y2)不在障碍物区域,跳转至S3418;
执行S3418,标注坐标(X2,Y2)=(5,7)为拐点的坐标,执行步骤S3419;
执行S3419,赋值X2+1=X2=5,Y2+1=Y2+1=8,j=2+1=3,返回步骤S3415;
第四阶段;
执行S3415,坐标(X3,Y3)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X3,Y3)不在障碍物区域,跳转至S3418;
执行S3418,标注坐标(X3,Y3)=(5,8)为拐点的坐标,执行步骤S3419;
执行S3419,赋值X3+1=X3=5,Y3+1=Y3+1=9,j=3+1=4,返回步骤S3415;
第四阶段;
执行S3415,坐标(X4,Y4)不等于(Xh,Yh),执行步骤S3417;
执行S3417,由于坐标(X4,Y4)在障碍物区域,跳转至S3420;
执行S3420,赋值Y4=Y4-1=9-1=8,执行步骤S3421;
执行S3421,由于m=0,执行步骤S3422;
执行S3422,赋值X4+1=X4-1=4,Y4+1=Y4=8,j=4+1=5,执行步骤S3423;
第五阶段;
执行S3423,X5=4大于目标扩散线段的左端点K7的横坐标2,跳转至步骤S3419;
执行S3419,赋值X5+1=X5=4,Y5+1=Y5+1=9,j=5+1=6,返回步骤S3415;
执行S3415,坐标(X6,Y6)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X6,Y6)在障碍物区域,跳转至S3420;
执行S3420,赋值Y6=Y6-1=9-1=8,执行步骤S3421;
执行S3421,由于m=0,执行步骤S3422;
执行S3422,赋值X6+1=X6-1=3,Y6+1=Y6=8,j=6+1=7,执行步骤S3423;
第六阶段;
执行S3423,X7=3大于目标扩散线段的左端点K7的横坐标2,跳转至步骤S3419;
执行S3419,赋值X7+1=X7=3,Y7+1=Y7+1=9,j=7+1=8,返回步骤S3415;
执行S3415,坐标(X8,Y8)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X8,Y8)在障碍物区域,跳转至S3420;
执行S3420,赋值Y8=Y8-1=9-1=8,执行步骤S3421;
执行S3421,由于m=0,执行步骤S3422;
执行S3422,赋值X8+1=X8-1=2,Y8+1=Y8=8,j=8+1=9,执行步骤S3423;
第七阶段;
执行S3423,X9=2等于目标扩散线段的左端点K7的横坐标2,跳转至步骤S3419;
执行S3419,赋值X9+1=X9=2,Y9+1=Y9+1=9,j=9+1=10,返回步骤S3415;
执行S3415,坐标(X10,Y10)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X10,Y10)不在障碍物区域,跳转至S3418;
执行S3418,标注坐标(X10,Y10)=(2,9)为拐点的坐标,执行步骤S3419;
执行S3419,赋值X10+1=X10=2,Y10+1=Y10+1=10,j=10+1=4,返回步骤S3415。
第八阶段;
执行S3415,坐标(X11,Y11)等于(Xh,Yh),执行步骤S3416;
执行S3416,提取已标注的拐点。
至此,机器人已提取出拐点(X0,Y0)=(5,5)、拐点(X1,Y1)=(5,6)、拐点(X2,Y2)=(5,7)、拐点(X3,Y3)=(5,8)、拐点(X10,Y10)=(2,9)。
机器人得到各个目标扩散线段的拐点后,连接初始点、每条目标扩散线段的拐点及目标点,便可以得到最短行走路径。
在一些实施例中,在图6e中,机器人尽可能地朝着目标点的方向以搜索拐点,但是,若出现图6f的情况,在栅格K7时,栅格K7的左方、上方及下方都是障碍物,如果机器人一开始朝着目标点的方向以搜索拐点时,如果没有解困算法,会一直陷入在栅格K7的死循环中。因此,在一些实施例中,本方法还可以及时解困,以便更加可靠地搜索到拐点。
请继续结合图6d与图6f,此时,初始点的坐标(X0,Y0)依然为(5,5),目标点的坐标(Xh,Yh)为(4,11)。
如前所述,在执行完第七阶段的步骤S3419后,接着执行步骤S3415时,如下所述:此时,X10=2,Y10=9,j=10。
第九阶段;
执行S3415,(X10,Y10)不等于(Xh,Yh),执行步骤S3417;
执行S3417,坐标(X10,Y10)在障碍物区域,跳转至S3420;
执行S3420,赋值Y10=Y10-1=9-1=8,执行步骤S3421;
执行S3421,由于m=0,执行步骤S3422;
执行S3422,赋值X10+1=X10-1=1,Y10+1=Y10=9,j=10+1=11,执行步骤S3423;
第十阶段;
执行S3423,X11=1小于目标扩散线段的左端点K7的横坐标2,跳转至步骤S3424;
执行S3424,赋值m=1,跳转至步骤S3420;
执行S3420,赋值Y11=Y11-1=8,执行步骤S3421;
执行S3421,m不等于0,执行步骤S3425;
执行S3425,赋值X11+1=X11+1=2,Y11+1=Y11=8,j=11+1=12,执行步骤S3426;
执行S3426,X12等于目标扩散线段的左端点的横坐标,跳转至步骤S3419;
第十一阶段;
执行S3419,赋值X12+1=X12=2,Y12+1=Y12+1=9,j=12+1=13,返回步骤S3415。
以此类推,在此不再赘述。
采用本方法,其能够可靠高效地确定出每个目标扩散线段的拐点。
在一些实施例中,连接初始点、每条目标扩散线段的拐点及目标点时,机器人根据每条目标扩散线段的等级顺序,连接初始点、每条目标扩散线段的拐点及目标点,其中,每条目标扩散线段与初始点或目标点的距离,与每条目标扩散线段的等级关联。
举例而言,目标扩散线段集合为{Q1,Q2,Q3……Qt},其中,目标扩散线段Q1包含初始点,Qt包含目标点,各个目标扩散线段的等级依次降低。形成最短行走路径时,机器人先将目标扩散线段Q1的初始点与目标扩散线段Q2的拐点连接,再依序将目标扩散线段Q2的拐点与目标扩散线段Q3的拐点连接,依次类推。
采用本方法,其能够有序连接初始点、拐点及目标点,提高行走路径的搜索效率。
通常,在行走过程中,由于拐弯次数比较繁多,机器人需要进行复杂地运动控制,拐弯次数越多,机器人出现偏离原有行走路径的概率也高,并且控制难度也越大,因此,在一些实施例中,本方法还可以最大化降低机器人的拐弯次数。请参阅6g,步骤S34包括步骤S343,在步骤S343中,根据最短行走路径,搜索最终行走路径,机器人按照最终行走路径行走时,拐弯次数小于或等于按照最短行走路径行走时拐弯的次数。
请结合图4e和图6h,图4e所示的行走路径46与图6h所示的行走路径60都是最短行走路径,但是,图6h的行走路径60相对图4e而言,机器人需要拐弯更多。采用图6g所示的方法后,其可以得到图4e所示的行走路径46,机器人行走时,拐弯次数最少。因此,采用本方法,其能够降低控制难度,提高机器人行走的便利性和准确性。
可以理解的是,机器人可以选择任意合适算法以确定拐弯次数最少的最终行走路径。
在栅格地图定义坐标系x0y,x轴平行于行栅格线,y轴平行于列栅格线。当机器人需要朝着行栅格线方向,从初始点行走到目标点时,此时的最短行走路径包括按照次序排列的若干段横线段,每条横线段中全部栅格的纵坐标皆相同。当机器人需要朝着列栅格线方向,从初始点行走到目标点时,此时的最短行走路径包括按照次序排列的若干段纵线段,每条纵线段中全部栅格的横坐标皆相同,在图6h中,机器人需要朝着列栅格线方向行走。
下文以图6h为例子,详细阐述步骤S343的具体过程,可以理解的是,确定拐弯次数最少的最终行走路径的方法比较繁多,本实施例提供的只是其中一个方案,本领域技术人员可以根据本发明实施例公开的内容,通过合理的推导,可以选择其它替换方案,但是所做的替换方案应当视为落入本发明的保护范围之内。另外,在“机器人需要朝着行栅格线方向行走”与“机器人需要朝着列栅格线方向行走”两种场景下,两者确定拐弯次数最少的最终行走路径的方法本质相同,在此以“机器人需要朝着列栅格线方向行走”作为示例性说明,不再赘述“机器人需要朝着行栅格线方向行走”场景下的具体过程。
请参阅图7,步骤S343包括:
S701、判断第n+1纵线段是否为最后纵线段,n≥0且n为整数,若是,跳转至S702,若否,跳转至S703;
S702、若是,依次连接起始点、每个最优拐点、存在的拐点及目标点,得到最终行走路径;
S703、若否,按照当前平移方向,将相邻的两条纵线段中的第n纵线段与第n+1纵线段平移对齐,得到新n+1纵线段,跳转至S704;
S704、判断第n纵线段平移时,是否横跨障碍物区域,若是,跳转至S705,若否,跳转至S707;
S705、若横跨,过第n+1纵线段的最低拐点作垂直于障碍物区域的第一垂线,在第一垂线中选择与障碍物区域最近的栅格作为最优拐点,跳转至S706;
S706、过最优拐点作垂直于第n纵线段的第二垂线,选择第二垂线与第n纵线段相交的栅格作为第n纵线段的最高拐点,删除第n纵线段中纵坐标高于最高拐点的拐点,返回步骤S701;
S707、若未横跨,按照当前平移方向,判断是否搜索到第n+2纵线段,若是,跳转至S708,若否,跳转至S709;
S708、若搜索到,赋值n=n+1,返回步骤S701;
S709、若未搜索到,将第n+1纵线段的横坐标和第n纵线段的纵坐标组合成另一个最优拐点的坐标,跳转至S710;
S710、对当前平移方向作反向处理,得到反向后的当前平移方向,赋值n=n+1,返回步骤S701。
在本实施例中,行走路径包括多条纵线段,每条纵线段按照与初始点距离远近,依次标记每条纵线段标,标记数值最大的纵线段为最后纵线段,举例而言,请一并结合图6h和图6i,如灰色栅格所示,行走路径60包括8个纵线段,按照与初始点的距离远近,依序标注这8个纵线段为第0纵线段70、第1纵线段71、第2纵线段72、第3纵线段73、第4纵线段74、第5纵线段75、第6纵线段76及第7纵线段77,其中,第7纵线段77为最后纵线段。
在本实施例中,当前平移方向用于指示机器人将第n纵线段与第n+1纵线段进行平移对齐,当前平移方向可以与上一次平移方向相同,亦可以不同,例如,如图6i所示,第0纵线段70沿着水平向左方向作平移,以与第1纵线段71对齐,得到新第1纵线段71。接着,新第1纵线段71沿着水平向左方向作平移,以与第2纵线段72对齐,得到新第2纵线段72。如图6i所示,新第2纵线段72沿着水平向右方向作平移,以与第3纵线段73对齐。
在本实施例中,每条纵线段是由多个拐点组成,在每条纵线段中,相邻两个拐点的纵坐标相差一个像素高度,亦即,每条纵线段中各个拐点的纵坐标是依序逐渐递增的,则纵线段中最小纵坐标的拐点为最低拐点。
在本实施例中,当按照固定平移方向搜索相邻的两条纵线段并作平移对齐处理,其容易陷入死循环,因此,本实施例可以将当前平移方向作反向处理,本文提供“反向处理”可以理解为将当前平移方向调换成与当前平移方向相反的平移方向,例如,当前平移方向为水平向左方向,则经过反向处理后的当前平移方向为水平向右方向,同理可得,当前平移方向为水平向右方向,则经过反向处理后的当前平移方向为水平向左方向。
为了详细理解本方案,下文结合图7对此举例说明,具体如下:
在S701中,当n=0,由于第0纵线段不是最后纵线段,则跳转至S703。
在S703中,机器人按照当前平移方向(水平向左方向),将第0纵线段与第1纵线段进行平移对齐,得到新第1纵线段,接着执行S704。
在S704中,机器人判断第0纵线段平移时是否横跨障碍物区域,显然,平移第0纵线段时,并没有横跨障碍物区域,于是执行S707。
在S707中,按照当前平移方向,机器人判断是否搜索到第2纵线段,显然,机器人是可以搜索到第2纵线段,于是执行S708;
在S708中,赋值n=0+1=1,返回步骤S701。
继续下个环节。
在S701中,机器人判断第1+1纵线段是否为最后纵线段,显然,第2纵线段不是最后纵线段,跳转至S703;
在S703中,机器人按照水平向左方向,将第1纵线段与第2纵线段进行平移对齐,得到新第2纵线段,接着执行S704。
在S704中,机器人判断第1纵线段平移时是否横跨障碍物区域,显然,平移第1纵线段时,并没有横跨障碍物区域,于是执行S707。
在S707中,按照水平向左方向,机器人判断是否搜索到第3纵线段,由于第3纵线段不可以由水平向左方向进行搜索得到,于是执行S709;
在S709中,将第2纵线段的横坐标和第1纵线段的纵坐标组合成另一个最优拐点的坐标,亦即,得到最优拐点P1的坐标,接着继续执行S710;
在S710中,机器人对当前平移方向作逆反处理,得到逆反后的当前平移方向,亦即,将水平向左方向变更为水平向右方向,并赋值n=1+1=2,返回步骤S701;
继续下个环节。
在S701中,机器人判断第2+1纵线段是否为最后纵线段,显然,第3纵线段不是最后纵线段,跳转至S703;
在S703中,机器人按照水平向右方向,将第2纵线段与第3纵线段进行平移对齐,得到新第3纵线段,接着执行S704。
在S704中,机器人判断第2纵线段平移时是否横跨障碍物区域,显然,平移第2纵线段时,存在横跨障碍物区域,于是执行S705。
在S705中,过第3纵线段的最低拐点P2作垂直于障碍物区域Z0的第一垂线Z1,在第一垂线Z1中选择与障碍物区域Z0最近的栅格作为最优拐点P3,跳转至S706;在第一垂线Z1中,栅格P3与障碍物区域Z0最近,因此,栅格P3可以作为最优拐点P3。
在S706中,过最优拐点P3作垂直于第2纵线段的第二垂线Z2,选择第二垂线Z2与第2纵线段相交的栅格作为第2纵线段的最高拐点P4,删除第2纵线段中纵坐标高于最高拐点P4的拐点,返回步骤S701。
以此类推。
得到每个最优拐点和存在的拐点后,机器人再依次连接起始点、每个最优拐点、存在的拐点及目标点,得到最终行走路径,如图4e所示。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
作为本发明实施方式的另一方面,本发明实施方式提供一种机器人行走路径搜索装置。其中,机器人行走路径搜索装置可以为软件模块,所述软件模块包括若干指令,其存储在存储器内,处理器可以访问该存储器,调用指令进行执行,以完成上述各个实施方式所阐述的机器人行走路径搜索方法。
在一些实施方式中,机器人行走路径搜索装置亦可以由硬件器件搭建成的,例如,机器人行走路径搜索装置可以由一个或两个以上的芯片搭建而成,各个芯片可以互相协调工作,以完成上述各个实施方式所阐述的机器人行走路径搜索方法。再例如,机器人行走路径搜索装置还可以由各类逻辑器件搭建而成,诸如由通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合而搭建成。
请参阅图8,机器人行走路径搜索装置800包括地图获取模块81、线段扩散模块82、线段筛选模块83及路径搜索模块84。
地图获取模块81用于获取栅格地图,在所述栅格地图的可清扫区域中确定包含初始点的初始线段,所述初始线段与所述栅格地图的行栅格线或列栅格线平行。
线段扩散模块82用于在所述可清扫区域中,扩散与所述初始线段平行的至少两条扩散线段,直至扩散线段包含目标点时,停止扩散操作;
线段筛选模块83用于根据搜索算法,筛选所述机器人由所述初始点到所述目标点所经过的若干目标扩散线段;
路径搜索模块84用于根据所述若干目标扩散线段,搜索所述机器人的行走路径。
区别于传统技术以像素点为扩散单位,本实施例以线段为扩散单位辅助搜索行走路径,一方面,本实施例能够简化算法,降低数据的计算量,从而提高路径规划的实时性。另一方面,由于无需较多数据的计算,本实施例无需开辟较多内存满足数据的计算,减少内存资源的占用。
在一些实施例中,所述搜索算法包括回溯算法,线段筛选模块83用于根据所述回溯算法,筛选所述机器人由所述目标点到所述初始点所经过的若干目标扩散线段。
在一些实施例中,线段筛选模块83还用于根据每条所述扩散线段与所述初始线段的距离,标注每条所述扩散线段的等级;根据所述回溯算法,删除与所述目标扩散线段同等级,且所述机器人预判断从所述目标点到所述初始点时不经过的扩散线段。
在一些实施例中,线段筛选模块83具体用于以第m目标扩散线段为当前扩散线段,反向搜索已迭代得到所述当前扩散线段的第m+1目标扩散线段,m≥0且为整数,当m=0时,第0目标扩散线段包含所述目标点;判断所述第m+1目标扩散线段是否包含所述初始点;若是,停止回溯操作,并提取全部所述目标扩散线段;若否,赋值m=m+1,返回以第m目标扩散线段为当前扩散线段,反向搜索已迭代得到所述当前扩散线段的第m+1目标扩散线段的步骤。
在一些实施例中,线段扩散模块82用于在所述可清扫区域中,以第i扩散线段为当前迭代母线段,扩散与所述当前迭代母线段平行的第i+1扩散线段,i≥0且为整数,当i=0时,第0扩散线段为所述初始线段;判断所述第i+1扩散线段是否包含所述目标点;若是,停止扩散操作;若否,赋值i=i+1,返回以第i扩散线段为当前迭代母线段,扩散与所述当前迭代母线段平行的第i+1扩散线段的步骤。
在一些实施例中,路径搜索模块84用于确定每条所述目标扩散线段的拐点,所述机器人可在相邻两条所述目标扩散线段中一条目标扩散线段上行走,并通过所述拐点拐弯至另一条目标扩散线段上行走;连接所述初始点、每条所述目标扩散线段的拐点及所述目标点,得到所述机器人的最短行走路径。
在一些实施例中,路径搜索模块84还用于根据所述最短行走路径,搜索最终行走路径,所述机器人按照所述最终行走路径行走时,拐弯次数小于或等于按照所述最短行走路径行走时拐弯的次数。。
在一些实施例中,路径搜索模块84具体用于根据每条所述目标扩散线段的等级顺序,连接所述初始点、每条所述目标扩散线段的拐点及所述目标点,其中,每条所述目标扩散线段与所述初始点或所述目标点的距离,与每条所述目标扩散线段的等级关联。
在一些实施例中,所述栅格地图包括不可清扫区域;所述初始线段及每条所述扩散线段的两端栅格皆为所述可清扫区域与所述不可清扫区域的边界栅格。
需要说明的是,上述机器人行走路径搜索装置可执行本发明实施方式所提供的机器人行走路径搜索方法,具备执行方法相应的功能模块和有益效果。未在机器人行走路径搜索装置实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的机器人行走路径搜索方法。
请参阅图9,图9为本发明实施例提供的一种电子设备的电路结构示意图,其中,电子设备可以为任意合适类型的设备或电子产品。如图9所示,电子设备900包括一个或多个处理器91以及存储器92。其中,图9中以一个处理器91为例。
处理器91和存储器92可以通过总线或者其他方式连接,图9中以通过总线连接为例。
存储器92作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的机器人行走路径搜索方法对应的程序指令/模块。处理器91通过运行存储在存储器92中的非易失性软件程序、指令以及模块,从而执行机器人行走路径搜索装置的各种功能应用以及数据处理,即实现上述方法实施例提供的机器人行走路径搜索方法以及上述装置实施例的各个模块或单元的功能。
存储器92可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器92可选包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至处理器91。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器92中,当被所述一个或者多个处理器91执行时,执行上述任意方法实施例中的机器人行走路径搜索方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图9中的一个处理器91,可使得上述一个或多个处理器可执行上述任意方法实施例中的机器人行走路径搜索方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行任一项所述的机器人行走路径搜索方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种机器人行走路径搜索方法,其特征在于,包括:
获取栅格地图,在所述栅格地图的可清扫区域中确定包含初始点的初始线段,所述初始线段与所述栅格地图的行栅格线或列栅格线平行;
在所述可清扫区域中,扩散与所述初始线段平行的至少两条扩散线段,直至扩散线段包含目标点时,停止扩散操作,扩散是指在可清扫区域中查找与当前扩散线段相邻且平行的线段的操作;
根据搜索算法,筛选所述机器人由所述初始点到所述目标点所经过的若干目标扩散线段,其中,所述搜索算法包括回溯算法,所述根据搜索算法,筛选所述机器人由所述初始点到所述目标点所经过的若干目标扩散线段包括:根据所述回溯算法,筛选所述机器人由所述目标点到所述初始点所经过的若干目标扩散线段;
根据所述若干目标扩散线段,搜索所述机器人的行走路径。
2.根据权利要求1所述的方法,其特征在于,所述根据搜索算法,筛选所述机器人由所述初始点到所述目标点所经过的若干目标扩散线段还包括:
根据每条所述扩散线段与所述初始线段的距离,标注每条所述扩散线段的等级;
根据所述回溯算法,删除与所述目标扩散线段同等级,且所述机器人预判断从所述目标点到所述初始点时不经过的扩散线段。
3.根据权利要求1所述的方法,其特征在于,所述根据所述回溯算法,筛选所述机器人由所述目标点到所述初始点所经过的若干目标扩散线段包括:
以第m目标扩散线段为当前扩散线段,反向搜索已迭代得到所述当前扩散线段的第m+1目标扩散线段,m≥0且为整数,当m=0时,第0目标扩散线段包含所述目标点;
判断所述第m+1目标扩散线段是否包含所述初始点;
若是,停止回溯操作,并提取全部所述目标扩散线段;
若否,赋值m=m+1,返回以第m目标扩散线段为当前扩散线段,反向搜索已迭代得到所述当前扩散线段的第m+1目标扩散线段的步骤。
4.根据权利要求1所述的方法,其特征在于,所述在所述可清扫区域中,扩散与所述初始线段平行的至少两条扩散线段,包括:
在所述可清扫区域中,以第i扩散线段为当前迭代母线段,扩散与所述当前迭代母线段平行的第i+1扩散线段,i≥0且为整数,当i=0时,第0扩散线段为所述初始线段;
判断所述第i+1扩散线段是否包含所述目标点;
若是,停止扩散操作;
若否,赋值i=i+1,返回以第i扩散线段为当前迭代母线段,扩散与所述当前迭代母线段平行的第i+1扩散线段的步骤。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述若干目标扩散线段,搜索所述机器人的行走路径包括:
确定每条所述目标扩散线段的拐点,所述机器人可在相邻两条所述目标扩散线段中一条目标扩散线段上行走,并通过所述拐点拐弯至另一条目标扩散线段上行走;
连接所述初始点、每条所述目标扩散线段的拐点及所述目标点,得到所述机器人的最短行走路径。
6.根据权利要求5所述的方法,其特征在于,所述根据所述若干目标扩散线段,搜索所述机器人的行走路径还包括:
根据所述最短行走路径,搜索最终行走路径,所述机器人按照所述最终行走路径行走时,拐弯次数小于或等于按照所述最短行走路径行走时拐弯的次数。
7.根据权利要求5所述的方法,其特征在于,所述连接所述初始点、每条所述目标扩散线段的拐点及所述目标点包括:
根据每条所述目标扩散线段的等级顺序,连接所述初始点、每条所述目标扩散线段的拐点及所述目标点,其中,每条所述目标扩散线段与所述初始点或所述目标点的距离,与每条所述目标扩散线段的等级关联。
8.根据权利要求1至4任一项所述的方法,其特征在于,
所述栅格地图包括不可清扫区域;
所述初始线段及每条所述扩散线段的两端栅格皆为所述可清扫区域与所述不可清扫区域的边界栅格。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8任一项所述的机器人行走路径搜索方法。
CN202011098823.4A 2020-10-14 2020-10-14 一种机器人行走路径搜索方法及电子设备 Active CN112515554B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011098823.4A CN112515554B (zh) 2020-10-14 2020-10-14 一种机器人行走路径搜索方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011098823.4A CN112515554B (zh) 2020-10-14 2020-10-14 一种机器人行走路径搜索方法及电子设备

Publications (2)

Publication Number Publication Date
CN112515554A CN112515554A (zh) 2021-03-19
CN112515554B true CN112515554B (zh) 2022-05-03

Family

ID=74979533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011098823.4A Active CN112515554B (zh) 2020-10-14 2020-10-14 一种机器人行走路径搜索方法及电子设备

Country Status (1)

Country Link
CN (1) CN112515554B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113720344B (zh) * 2021-08-30 2024-06-04 深圳银星智能集团股份有限公司 路径搜寻方法、装置、智能设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101667029B1 (ko) * 2009-08-10 2016-10-17 삼성전자 주식회사 로봇의 경로 계획방법 및 장치
CN108209741B (zh) * 2017-08-30 2020-05-26 深圳乐动机器人有限公司 清洁机器人控制方法和清洁机器人
CN107478232B (zh) * 2017-09-18 2020-02-21 珠海市一微半导体有限公司 机器人导航路径的搜索方法
CN108549388A (zh) * 2018-05-24 2018-09-18 苏州智伟达机器人科技有限公司 一种基于改进a星策略的移动机器人路径规划方法
CN109855622B (zh) * 2019-01-07 2021-06-11 上海岚豹智能科技有限公司 用于移动机器人的路径搜索方法及设备

Also Published As

Publication number Publication date
CN112515554A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN108983776B (zh) 一种机器人控制方法及其装置、电子设备
CN111700546B (zh) 一种移动机器人的清扫方法及移动机器人
CN106054900B (zh) 基于深度摄像头的机器人临时避障方法
CN109363585B (zh) 分区遍历方法、清扫方法及其扫地机器人
CN113219992B (zh) 一种路径规划方法及清洁机器人
US10860033B2 (en) Movable object and method for controlling the same
CN111714892B (zh) 游戏寻路方法及装置、存储介质、计算机设备
CN115268471B (zh) 扫地机器人的路径生成方法及装置、存储介质
CN111609853B (zh) 三维地图构建方法、扫地机器人及电子设备
CN111679661A (zh) 基于深度相机的语义地图构建方法及扫地机器人
Hu et al. Robot-assisted mobile scanning for automated 3D reconstruction and point cloud semantic segmentation of building interiors
CN111679664A (zh) 基于深度相机的三维地图构建方法及扫地机器人
CN113219995A (zh) 一种路径规划方法及清洁机器人
CN112515554B (zh) 一种机器人行走路径搜索方法及电子设备
CN114089752A (zh) 机器人的自主探索方法、机器人及计算机可读存储介质
CN118258407B (zh) 基于分层场景图谱的导航方法、系统、终端及存储介质
CN112051818A (zh) 一种机器人的本地递送调度方法、装置和机器人
CN112515556B (zh) 一种环境地图的处理方法及其装置、电子设备
CN111609854A (zh) 基于多个深度相机的三维地图构建方法及扫地机器人
Kathe et al. Maze solving robot using image processing
Ramalingam et al. Optimal selective floor cleaning using deep learning algorithms and reconfigurable robot hTetro
CN112987709B (zh) 一种路径规划方法、系统及作业机器人
US10713832B2 (en) Precomputed environment semantics for contact-rich character animation
CN111736580B (zh) 扫地设备的避障脱困方法、装置、电子设备及存储介质
CN112033423A (zh) 一种基于道路共识的机器人路径规划方法、装置和机器人

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 518110 1701, building 2, Yinxing Zhijie, No. 1301-72, sightseeing Road, Xinlan community, Guanlan street, Longhua District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Yinxing Intelligent Group Co.,Ltd.

Address before: 518110 Building A1, Yinxing Hi-tech Industrial Park, Guanlan Street Sightseeing Road, Longhua District, Shenzhen City, Guangdong Province

Patentee before: Shenzhen Silver Star Intelligent Technology Co.,Ltd.