CN110928312A - 机器人位置确定方法、非易失性计算机可读存储介质及机器人 - Google Patents

机器人位置确定方法、非易失性计算机可读存储介质及机器人 Download PDF

Info

Publication number
CN110928312A
CN110928312A CN201911296211.3A CN201911296211A CN110928312A CN 110928312 A CN110928312 A CN 110928312A CN 201911296211 A CN201911296211 A CN 201911296211A CN 110928312 A CN110928312 A CN 110928312A
Authority
CN
China
Prior art keywords
point cloud
lines
coordinate system
robot
distance
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.)
Granted
Application number
CN201911296211.3A
Other languages
English (en)
Other versions
CN110928312B (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 CN201911296211.3A priority Critical patent/CN110928312B/zh
Publication of CN110928312A publication Critical patent/CN110928312A/zh
Application granted granted Critical
Publication of CN110928312B publication Critical patent/CN110928312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0242Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0248Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0257Control of position or course in two dimensions specially adapted to land vehicles using a radar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0259Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0259Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means
    • G05D1/0261Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means using magnetic plots

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Electromagnetism (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本发明涉及机器人技术领域,涉及一种机器人位置确定方法、非易失性计算机可读存储介质及机器人。本方法包括:获取预设空间内,机器人在已知位置的第一点云与第一偏航角,以及未知位置的第二点云及第二偏航角,第一点云及所述第二点云为非连续的两帧点云;根据第一偏航角及第二偏航角,将第二点云变换至旋转坐标系,得到变换点云,旋转坐标系与第一点云的第一坐标系平行;确定至少两对匹配线条;根据至少两对匹配线条及已知位置的位置信息,确定未知位置的位置信息。即使机器人被大幅度地瞬间挪移到未知位置,本方法无需重新构建地图,还可以确定未知位置的位置信息,该未知位置的位置信息可作为重定位操作的初值,从而有效地减少搜索空间,进而减少计算量,极大提高重定位效率。

Description

机器人位置确定方法、非易失性计算机可读存储介质及机 器人
技术领域
本发明涉及机器人技术领域,涉及一种机器人位置确定方法、非易失性计算机可读存储介质及机器人。
背景技术
随着机器视觉技术的发展,机器人在一个物理空间内自构建地图,并根据构建的地图实施导航,以便完成特定业务功能。
机器人在导航行进过程中,经常被大幅度地瞬间挪移到陌生位置,导致无法有效地导航。
为了有效地实施导航,传统作法是需要机器人重定位,然而,重定位搜索的区间通常是整个物理空间的地图,机器人需要进行大量数据的计算,导致重定位的时间比较长,无法有效地完成特定业务功能。
发明内容
本发明实施例的一个目的旨在提供一种机器人位置确定方法、非易失性计算机可读存储介质及机器人,其能够有效地重定位。
在第一方面,本发明实施例提供一种机器人位置确定方法,包括:
获取预设空间内,所述机器人在已知位置的第一点云与第一偏航角,以及未知位置的第二点云及第二偏航角,所述第一点云及所述第二点云为非连续的两帧点云;
根据所述第一偏航角及所述第二偏航角,将所述第二点云变换至旋转坐标系,得到变换点云,所述旋转坐标系与所述第一点云的第一坐标系平行;
确定至少两对匹配线条,每对所述匹配线条中一条线条由所述第一点云得到,另一条线条由所述变换点云得到;
根据所述至少两对匹配线条及所述已知位置的位置信息,确定所述未知位置的位置信息。
在第二方面,本发明实施例提供一种机器人位置确定装置,包括:
数据获取模块,用于获取预设空间内,所述机器人在已知位置的第一点云与第一偏航角,以及未知位置的第二点云及第二偏航角,所述第一点云及所述第二点云为非连续的两帧点云;
坐标转换模块,用于根据所述第一偏航角及所述第二偏航角,将所述第二点云变换至旋转坐标系,得到变换点云,所述旋转坐标系与所述第一点云的第一坐标系平行;
线条确定模块,用于确定至少两对匹配线条,每对所述匹配线条中一条线条由所述第一点云得到,另一条线条由所述变换点云得到;
位置确定模块,用于根据所述至少两对匹配线条及所述已知位置的位置信息,确定所述未知位置的位置信息。
在第三方面,本发明实施例提供一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使机器人执行任一项所述的机器人位置确定方法。
在第四方面,本发明实施例提供一种机器人,包括:
图像采集设备,用于采集预设空间的点云数据;
角度检测设备,用于获取所述机器人所在的偏航角;
至少一个处理器,分别与所述图像采集设备和所述角度检测设备电连接;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行任一项所述的机器人位置确定方法。
在第五方面,本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被机器人执行时,使机器人执行任一项所述的机器人位置确定方法。
相对于传统技术,在本发明各个实施例提供的机器人位置确定方法中,首先,获取预设空间内,所述机器人在已知位置的第一点云与第一偏航角,以及未知位置的第二点云及第二偏航角,第一点云及第二点云为非连续的两帧点云。其次,根据第一偏航角及第二偏航角,将第二点云变换至旋转坐标系,得到变换点云,旋转坐标系与第一点云的第一坐标系平行。再次,确定至少两对匹配线条,每对匹配线条中一条线条由第一点云得到,另一条线条由变换点云得到。最后,根据至少两对匹配线条及已知位置的位置信息,确定未知位置的位置信息。因此,即使机器人被大幅度地瞬间挪移到未知位置,本方法无需重新构建地图,还可以确定未知位置的位置信息,该未知位置的位置信息可作为重定位操作的初值,从而有效地减少搜索空间,进而减少计算量,极大提高重定位效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种机器人的电路结构示意图;
图2a是本发明实施例提供的一种机器人位置确定方法的流程示意图;
图2b及图2c皆为本发明实施例提供的机器人及激光雷达的各个坐标系的变换示意图;
图2d是本发明实施例提供的机器人到两对匹配线条的示意图;
图3是图2中S50的流程示意图;
图4是图3中S51的流程示意图;
图5a是图4中S512的流程示意图;
图5b是本发明实施例提供的在第一点云中第一候选线条与第二候选线条的相交示意图;
图6是图3中S52的流程示意图;
图7a是本发明实施例提供的一种机器人位置确定装置的结构示意图;
图7b是图7a中线条确定模块的结构示意图;
图8是本发明实施例提供的一种电子设备的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
本发明实施例的机器人可以被构造成任何合适形状,以便实现特定业务功能操作,例如,本发明实施例机器人可以为扫地机器人、清洁机器人、宠物机器人、搬运机器人、看护机器人等等。
请参阅图1,机器人100包括控制单元11、无线通信单元12、驱动单元13、音频单元14及传感器单元15。
控制单元11作为机器人100的控制核心,协调各个单元的工作。控制单元11可以为通用处理器(例如中央处理器CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA、CPLD等)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,控制单元11还可以是任何传统处理器、控制器、微控制器或状态机。控制单元11也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
无线通信单元12用于与用户终端无线通信,无线通信单元12与控制单元11电连接。用户通过用户终端向机器人100发送控制指令,无线通信单元12接收控制指令并向控制单元11发送该控制指令,控制单元11根据该控制指令控制机器人100。
无线通信单元12包括广播接收模块、移动通信模块、无线互联网模块、短距离通信模块和定位信息模块的其中一种或多种的组合。其中,广播接收模块经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播接收模块可以使用数字广播***来接收数字广播信号,数字广播***诸如为地面数字多媒体广播(DMB-T)、卫星数字多媒体广播(DMB-S)、仅媒体前向链路(MediaFLO)、手持数字视频广播(DVB-H)或地面综合业务数字广播(ISDB-T)。
移动通信模块向移动通信网络上的基站、外部终端和服务器中的至少一方发送无线信号,或者可以从基站、外部终端和服务器中的至少一方接收无线信号。这里,根据字符/多媒体消息的接收和发送,无线信号可以包括语音呼叫信号、视频呼叫信号或各种形式的数据。
无线互联网模块指的是用于无线互联网连接的模块,并且可以内置或外置于终端。可以使用诸如无线LAN(WLAN)(Wi-Fi)、无线宽带(Wibro)、全球微波接入互操作性(Wimax)、高速下行分组接入(HSDPA)这样的无线互联网技术。
短距离通信模块指的是用于进行短距离通信的模块。可以使用诸如蓝牙(Bluetooth)、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)或ZigBee这样的短距离通信技术。
定位信息模块是用于获得移动终端的位置的模块,例如全球定位***(GPS)模块。
驱动单元13用于驱动机器人100行走,其中,控制单元11根据传感器单元15采集的传感器数据,结合地图构建算法,构建预设空间的地图,接着,控制单元11根据导航指令,控制驱动单元13驱动机器人100完成特定业务功能,诸如清洗地面、扫地、搬运货物等等。地图构建算法可以采用SLAM(simultaneous localization and mapping)等等算法。
在一些实施例中,驱动单元13可以由滚轮与驱动模组组成的,驱动模组包括电机及驱动轴,电机与驱动轴连接,驱动轴与滚轮连接,控制单元11可以控制电机的运转,从而通过驱动轴驱动滚轮转动。
音频单元14用于向采集机器人100周围环境的声音,或者,推送声音,音频单元14与控制单元11电连接。
在一些实施例中,音频单元14可以为喇叭、扬声器、麦克风等等电声换能器,其中,喇叭或扬声器的数量可以为一个或多个,麦克风的数量可以为多个,多个麦克风可以构成麦克风阵列,以便有效地采集声音。麦克风可以是电动式的(动圈式、带式)、电容式的(直流极化式)、压电式的(晶体式、陶瓷式)、电磁式的、碳粒式的、半导体式的等或其任意组合。在一些实施例中,麦克风可以是微型机电***(MEMS)麦克风。
传感器单元15用于检测机器人100所处的预设空间,得到传感器数据。预设空间为机器人所处的环境,在一些实施例中,预设空间可以由若干墙壁或者墙板组成的物理空间,在预设空间内,用户可以摆放桌子、电视机、垃圾桶等等家居用品。当机器人100使用传感器单元15检测预设空间时,一方面,传感器单元15可以采集到预设空间内的图像,其中,所述图像可以为机器人100在不同位置或不同角度下得到的,并且,所述图像可以由摄像模组拍摄预设空间得到的,亦可以由激光雷达扫描预设空间得到的。另一方面,传感器单元15还可以采集到机器人100一些运动参数,诸如加速度、偏航角等等。
在一些实施例中,传感器单元15包括角度检测设备及图像采集设备。
角度检测设备可以选择运动传感器,用于采集机器人100的一些运动参数,运动传感器可包括诸如惯性测量单元(Inertial measurement unit,IMU)、陀螺仪、磁场计、加速度计或速度计等等。
图像采集设备包括摄像模组及激光雷达,摄像模组用于拍摄预设空间,得到预设空间的画面图像。对于预设空间内相同的物体而言,当机器人在不同角度拍摄预设空间时,一帧图像的物体被旋转预设角度后,会与另一帧图像的相同物体接近重合。
摄像模组固定安装在机器人上,机器人被配置有机器人坐标系,并且,机器人还对应有世界坐标系。摄像模组被配置有相机坐标系、图像坐标系及像素坐标系,在一些实施例中,机器人坐标系与相机坐标系重合,亦可以不重合。当机器人坐标系与相机坐标系不重合时,通过机器人坐标系与相机坐标系之间的转换矩阵,将物理点在机器人坐标系与相机坐标系之间进行转换。
摄像模组包括一个或多个光学传感器与镜头,一个或多个光学传感器设置于镜头的成像面,拍摄物体时,通过镜头将生成的光学图像投射至光学传感器上。光学传感器包括电荷耦合设备(Charge-coupled Device,CCD)、互补金属氧化物半导体(ComplementaryMetal Oxide Semiconductor,CMOS),CMOS传感器可以为背照式CMOS传感器或堆栈式CMOS传感器。
在一些实施例中,摄像模组还集成有ISP(Image Signal Processor,图像信号处理器),ISP用于处理光学传感器的输出数据,如做AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正等等功能的处理。
激光雷达用于扫描预设空间,得到预设空间的点云图像。同理可得,对于预设空间内相同的物体而言,当机器人在不同角度拍摄预设空间时,一帧图像的物体被旋转预设角度后,会与另一帧图像的相同物体接近重合。
激光雷达固定安装在机器人上,激光雷达被配置有激光雷达坐标系,在一些实施例中,机器人坐标系与激光雷达坐标系重合,亦可以不重合。当机器人坐标系与激光雷达坐标系不重合时,通过机器人坐标系与激光雷达坐标系之间的转换矩阵,将物理点在机器人坐标系与激光雷达坐标系之间进行转换。
激光雷达包括任意类型并且能够投射激光点的激光源,激光源包括固体激光器、气体激光器、液体激光器、半导体激光器、自由电子激光器等等。
在一些实施例中,预设空间配置有世界坐标系,世界坐标系采用右手定则。机器人坐标系的原点在机器人中心,机器人正前方为x轴方向,机器人左侧为y轴方向,z轴朝上,采用右手定则。激光雷达的坐标系采用左手定则。
在本实施例中,机器人的2D位姿表示为Pose(x,y,th),x为机器人在世界坐标系的x轴坐标,y为机器人在世界坐标系的y轴坐标,th为机器人在世界坐标系中的朝向。
在本实施例中,激光雷达的中心在机器人坐标系下的坐标为lidar(x,y),其中,激光雷达的安装位置是已知的。
一般的,当机器人上电构建完预设空间的地图后,若机器人按照正常行走路径进行行走,机器人都能够确定自身在预设空间内的位置。但是,当机器人被大幅度地瞬间挪移到未知位置,即使采用两帧之间位姿匹配算法ICP、PLICP、NICP等,由于机器人姿态变化比较大,例如扫地机器人被抱到其它位置,或者,大幅度地瞬间旋转机器人的角度,其都会导致帧间匹配失败。
并且,由于安装因素,机器人的激光雷达会导致部分角度的激光数据点缺失,使得机器人在不同角度扫到的环境信息因部分环境数据缺失而无法完全匹配,也导致其他依靠较为完整环境数据的激光帧间匹配算法失效。如前所述,传统作法是需要机器人重定位,然而重定位又需要大量的计算,定位效率不高。
基于此,本发明实施例提供一种机器人位置确定方法。请参阅图2a,机器人位置确定方法S20包括:
S30、获取预设空间内,机器人在已知位置的第一点云与第一偏航角,以及未知位置的第二点云及第二偏航角,第一点云及第二点云为非连续的两帧点云;
在本实施例中,激光雷达固定安装在机器人。检测时,激光雷达检测预设空间,从而得到各帧点云。其中,第一点云由机器人在已知位置下检测预设空间得到的,第一偏航角为机器人在已知位置时的偏航角。第二点云由机器人在未知位置下检测预设空间得到的,第二偏航角为机器人在未知位置时的偏航角。
在本实施例中,第一点云及第二点云在帧序上,两者互为非连续的两帧点云,亦即,当传感器单元在已知位置得到第一点云,在未知位置得到第二点云,其中,已知位置与未知位置两者距离大于预设距离阈值(例如10厘米),则第一点云与第二点云在帧序上,两者互为非连续的两帧点云,例如,机器人被绑架抱起,由已知位置挪移20厘米至未知位置。此时,在已知位置得到的第一点云与在未知位置得到的第二点云之间间隔多帧无效点云,亦即,第一点云与第二点云是非连续的。
在本实施例中,已知位置的位置信息是已知的,一般的,假设机器人被绑架的时刻为第t1时刻,在第t1时刻之前的位置都可以通过机器人上电时,预先构建的地图而得到。
由于机器人被抱离已知位置后,经过大幅度的角度旋转或者大幅度的距离搬运,导致机器人无法通过预先构建的地图得到当前位置的位置信息,亦即无法得到未知位置的位置信息,但是可以采集到未知位置的第二点云。
在本实施例中,当机器人得到第一点云及第二点云,其可以分别将第一点云及第二点云转换成二维点云,以便后续作线条匹配处理。其中,第一点云对应第一坐标系,第二点云对应第二坐标系,所述第一坐标系及所述第二坐标系皆由安装在所述机器人的激光雷达的坐标系在不同角度下转换得到的。
将第一点云转换成在第一坐标系下的二维点云,如下:
Figure BDA0002320622310000091
将第二点云转换成在第二坐标系下的二维点云,如下:
tx=r*cos(i*π/180)
ty=r*sin(i*π/180)
其中,r为当前激光角度扫描到的距离,i为第i个激光束。
S40、根据第一偏航角及第二偏航角,将第二点云变换至旋转坐标系,得到变换点云,旋转坐标系与第一点云的第一坐标系平行。
如前所述,激光雷达可配置有坐标系,当机器人行进时,激光雷达相对于机器人不发生转动,但是,不同位置或角度下的激光雷达的坐标系可随着机器人的前进、后退、左转及右转出现了移动。为了后期作线条匹配处理,需要将未知位置的第二点云变换至旋转坐标系,其中,旋转坐标系与第一点云的第一坐标系平行。
举例而言,请结合图2b及图2c,其中,在图2c中,x0-y0为世界坐标系,x1-y1为第一点云的机器人坐标系,x2-y2为第一点云中激光雷达的第一坐标系,x3-y3为第二点云中激光雷达的第二坐标系,x4-y4为变换点云的旋转坐标系,x5-y5为第二点云的机器人坐标系,x6-y6为旋转后的机器人坐标系。得到变换点云的过程如下:
第一步:机器人计算第二偏航角与第一偏航角之间的偏航角差值,如下:
dth=imu_target.yaw-imu_ref.yaw
其中,imu_target.yaw为第二偏航角,imu_ref.yaw为第一偏航角,dth为差值。
第二步:机器人根据二维坐标旋转公式,结合偏航角差值,计算未旋转前激光雷达在旋转坐标系的雷达坐标,如下:
cx=cos(dth)*lidar.x-sin(dth)*lidar.y+lidar.x
cy=sin(dth)*lidar.x+cos(dth)*lidar.y+lidar.y
第三步:根据二维坐标旋转公式,结合偏航角差值及雷达坐标,计算第二点云旋转到旋转坐标系的坐标,得到变换点云(x2,y2,id2),如下:
Figure BDA0002320622310000111
S50、确定至少两对匹配线条,每对匹配线条中一条线条由第一点云得到,另一条线条由变换点云得到。
在本实施例中,线条可以呈任意形状的线性,诸如直线、弧线等等。
一般的,当机器人携带激光雷达移动时,相同物体轮廓在第二点云或变换点云呈现的线条可通过作对应旋转变换后,与在第一点云呈现的线条呈现出满足激光索引匹配条件的,由此可以结合坐标系旋转变换原理,反推出未知位置的位置信息。因此,在上述过程中,匹配线条为在第一点云的若干线条中,与变换点云中线条满足激光索引匹配条件的线条。同理可得,匹配线条为在变换点云的若干线条中,与第一点云中线条满足激光索引匹配条件的线条。对于相同物体而言,当第一点云与变换点云都存在互相匹配的线条时,此时,第一点云与变换点云匹配的第一线条与,变换点云与第一点云匹配的第二线条形成一对匹配线条。
可以理解的是,预设空间一般存在多种物体,其可以存在多对匹配线条。还可以理解的是,同一个物体,其也可以存在多对匹配线条,例如,长方体状的墙壁,每面都具有四个线条,因此,在第一点云与变换点云两者中,其可以存在四对匹配线条。
在本实施例中,机器人可以采用预设算法处理第一点云及第二点云,从第一点云及第二点云中提取出若干线条,后续再将第一点云的任一线条与第二点云的任一线条作匹配处理,得到至少两对匹配线条。
S60、根据至少两对匹配线条及已知位置的位置信息,确定未知位置的位置信息。
举例而言,机器人根据至少两对匹配线条,计算机器人在已知位置时被移动后的距离增量,根据距离增量及所述已知位置的位置信息,确定未知位置的位置信息。由于已知位置的位置信息是已知的,当得到距离增量ΔL后,将便可以将已知位置的位置信息与距离增量ΔL进行叠加,得到未知位置的位置信息。
一般的,已知位置可被视为在世界坐标系下的一个坐标(x,y,θ),请结合图2d,当机器人在X轴方向上移动时,则机器人根据至少两对匹配线条计算距离增量时,首先,机器人获取一对匹配线条corrLine[0]中一条线条corrLine[0][0]相对第一坐标系X轴的第一角度refα、及另一对匹配线条corrLine[1]中一条线条corrLine[1][0]相对第一坐标系X轴的第二角度refβ、一对匹配线条corrLine[0]中另一条线条corrLine[0][1]相对旋转坐标系X轴的第三角度tarα、及另一对匹配线条corrLine[1]中另一条线条corrLine[1][1]相对旋转坐标系X轴的第四角度tarβ。
corrLine[i]表示第i对匹配线条,corrLine[i][0]表示第i对匹配线条的第一点云中的线条,corrLine[i][1]表示第i对匹配线条的变换点云中的线条。
其次,机器人计算第一坐标系原点分别到一对匹配线条corrLine[0]中一条线条corrLine[0][0]的第一距离d1及到另一对匹配线条corrLine[1]中一条线条corrLine[1][0]的第二距离d2,以及旋转坐标系原点分别到一对匹配线条corrLine[0]中另一条线条corrLine[0][1]的第三距离d3及到另一对匹配线条corrLine[1]中另一条线条corrLine[1][1]的第四距离d4。
再次,机器人根据第一距离d1、第二距离d2、第一角度refα及第二角度refβ,计算在第一坐标系X轴的第一投影距离refx,如下所示:
refx=d1*sin refα+d2*sin refβ
再次,机器人根据第三距离d3、第四距离d4、第三角度tarα及第四角度tarβ,计算在旋转坐标系X轴的第二投影距离tarx,如下所示:
tarx=d3*sin tarα+d4*sin tarβ
最后,机器人将第二投影距离tarx相减第一投影距离refx,得到第一距离增量dx,如下所示:
dx=tarx-refx
同理可得,当机器人在Y轴方向上移动时,首先,机器人根据第一距离d1、第二距离d2、第一角度refα及第二角度refβ,计算在第一坐标系Y轴的第三投影距离refy,如下所示:
refy=d1*cos refα-d2*cos refβ
其次,机器人根据第三距离d3、第四距离d4、第三角度tarα及第四角度tarβ,计算在旋转坐标系Y轴的第四投影距离tary,如下所示:
tary=d3*cos tarα-d4*cos tarβ
最后,机器人将第四投影距离tary相减第三投影距离refy,得到第二距离增量dy,如下所示:
dy=tary-refy
同理可得,机器人还可以计算出机器人的角度增量,如下所示:
dth=corrLine[0][1].a-corrLine[0][0].a
当计算出在X轴、Y轴的距离增量以及角度增量后,机器人根据距离增量及已知位置的位置信息确定未知位置的位置信息时,首先,机器人计算第二偏航角与第一偏航角之间的偏航角差值t。
其次,机器人根据二维坐标旋转公式,结合第一距离增量、所述第二距离增量、偏航角差值及已知位置的位置信息,确定未知位置的位置信息,如下所示:
Figure BDA0002320622310000131
至此,机器人已计算出未知位置的位置信息。
在本实施例中,即使机器人被大幅度地瞬间挪移到未知位置,本方法无需重新构建地图,还可以确定未知位置的位置信息,该未知位置的位置信息可作为重定位操作的初值,从而有效地减少搜索空间,进而减少计算量,极大提高重定位效率。
在一些实施例中,机器人确定至少两对匹配线条时,其会在第一坐标系及旋转坐标系中分别提取各自的线条,并将双方的线条再作匹配处理。请参阅图3,S50包括:
S51、根据每个坐标系下的每帧点云,提取每帧点云的目标线条;
S52、根据每帧点云的目标线条,匹配出至少两对匹配线条。
在本实施例中,机器人不仅可以在第一坐标系下,从第一点云中提取目标线条。而且,当第二点云变换至旋转坐标系后得到变换点云,与此同时,机器人在旋转坐标系下,从变换点云中提取目标线条。其中,目标线条为满足预设线条要求的线条。
机器人在每帧点云提取目标线条的过程中,会使用预设线条提取算法,选择每帧点云中对应激光点形成的目标线条,并将不满足预设线条要求的激光点给予剔除。
一般的,预设空间内会存在多个物体,例如,室内依次摆放两张桌子L1和L2,桌子L1和L2按照直线进行排列,每个桌子的轮廓都呈相同的直线状。由于后续线条匹配时需要将第一点云的直线与变换点云的直线作线条匹配处理,于是,可能会出现将第一点云的直线L1’与直线L2’当成一条直线,或者,也可以将变换点云的直线L1”与直线L2”当成一条直线,从而导致后续计算未知位置时出现偏差。因此,在一些实施例中,如图4所示,S51包括:
S511、根据每个坐标系下的每帧点云,确定激光点连续且最长候选线条;
S512、合并满足预设合并条件的最长候选线条,得到每帧点云的目标线条。
在一些实施例中,在每帧点云中确定最长候选线条时,首先,机器人在每个坐标系下的每帧点云,随机选择两个激光点构建随机直线,举例而言,机器人在第一坐标系下的第一点云随机选择两个激光点构建随机直线,与此同时,机器人还在旋转坐标系下的变换点云随机选择两个激光点构建随机直线,例如,机器人计算每个坐标系下的点P1、P2组成的直线line及其直线参数。
其次,机器人筛选满足预设筛选条件的随机直线,得到初步直线,其中,初步直线上存在至少两个激光点,任意两个以上激光点可构成子直线。
举例而言,机器人从每帧点云中提取线条时,先进行初始化,亦即,根据RANSAC算法,设置RANSAC外置参数,RANSAC外置参数包括最大直线个数maxIterNum及内点先验概率probability。
接着,机器人获取当前迭代次数curLineIter,若所述当前迭代次数curLineIter小于或等于预设最大迭代次数lineMaxIter,求取每帧点云中全部激光点与随机直线的距离。
机器人统计距离小于预设距离阈值dmin的激光点的内点总数inliears,根据内点总数inliears、全部激光点的总数C及预设内点先验概率probability,计算理想迭代次数N,如下所示:
N=log(1-probability)/log(1-(1-e)2)
e=inliears/C
其中,e为内点总数inliears除以全部激光点的总数C。
若当前迭代次数大于或等于理想迭代次数,则选择随机直线作为初步直线。
若当前迭代次数小于理想迭代次数,则将当前迭代次数与预设数值作赋值处理(curLineIter=curLineIter+1),得到赋值后的当前迭代次数,并返回获取当前迭代次数的步骤。
至此,机器人分别从第一点云及变换点云中都提取出各自的初步直线。
最后,机器人从初步直线中遍历出激光点连续且连续的激光点个数大于预设激光点阈值MinSubLinePointNum的目标子直线,将目标子直线为最长候选线条。举例而言,机器人计算每条初步直线上内点的数量,若所述数量小于或等于预设数量阈值,则丢弃所述初步直线;若所述数量大于预设数量阈值,则在所述初步直线遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线。在一些实施例中,当相邻激光点的激光索引差值在id<=4,都可以视为两个激光点是连续的。
因此,通过上述方式,其能够找出最长候选线条,为后续精确地计算出未知位置的位置信息作好准备。
在一些实施例中,为了更加精确地找出目标子直线,机器人还可以根据所述初步直线上的各个内点,重新拟合出精确直线。接着,从所述精确直线中遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线。
当提取出每帧点云对应的目标线条之后,为了更加高效率地计算出未知位置,在一些实施例中,机器人可以在每帧点云中对近乎平行的线条作合并处理,例如,请参阅图5a,S512包括:
S5121、计算任意两条最长候选线条的夹角、对应坐标系原点到一条最长候选线条的第一垂直距离及原点到另一条最长候选线条的第二垂直距离;
S5122、当夹角小于预设角度阈值,且第二垂直距离与第一垂直距离两者的差值小于预设差值时,将两条最长候选线条合并成每帧点云对应的目标线条。
以在第一点云中合并最长候选线条为例,在本实施例中,请结合图5b,机器人计算第一最长候选线条L1与第二最长候选线条L2的夹角dth,以及第一坐标系原点到第一最长候选线条L1的第一垂直距离dL1、第一坐标系原点到第二最长候选线条L2的第二垂直距离dL2。
当夹角dth大于预设角度阈值CorrLineAngleThresh,不合并第一候选线条L1与第二候选线条L2。
当第二垂直距离dL2与第一垂直距离dL1两者的差值Δd大于或等于预设差值CorrLineDistanceThresh,不合并第一最长候选线条L1与第二最长候选线条L2。
当夹角dth小于预设角度阈值CorrLineAngleThresh,且第二垂直距离dL2与第一垂直距离dL1两者的差值Δd小于预设差值CorrLineDistanceThresh时,将两条最长候选线条合并成每帧点云对应的目标线条。合并得到目标线条后,机器人根据目标线条中各个激光点,重新调整目标线条。并且,机器人还根据每个目标线条中激光点的激光索引值,对每帧点云中全部目标线条进行排序,排序可以为升序或降序。
当合并得到目标线条后,机器人根据每帧点云对应的目标线条,匹配出至少两对匹配线条。在一些实施例中,请参阅图6,S52包括:
S521、将变换点云中任一目标线条相对旋转坐标系X轴的角度,以及第一点云中任一目标线条相对第一坐标系X轴的角度作差值运算,得到角度差值;
S522、根据角度差值,匹配出至少两对匹配线条。
举例而言,假设第一点云存在如下目标线条[B1、B2、B3……Bn],变换点云存在如下目标线条[C1、C2、C3……Cn],则,机器人从第一点云或变换点云选择任一目标线条的角度与对方中任一目标线条的角度作差值运算,得到角度差值。例如,机器人将目标线条C1的角度与目标线条[B1、B2、B3……Bn]中任一目标线条的角度作差值运算,得到每个对比下的角度差值。假设目标线条C1与目标线条B1的角度差值大于预设阈值,目标线条C1与目标线条B2的角度差值小于预设阈值,则机器人将目标线条C1与目标线条B2组成一对匹配线条。
为了进一步得到更为准确的一对匹配线条,在一些实施例中,令角度差值小于或等于预设角度差值并在第一点云中的每条目标线条为第一目标线条,角度差值小于或等于预设角度差值并在变换点云中的每条目标线条为第二目标线条。
机器人还可以计算所述第一目标线条的激光索引覆盖范围与所述第二目标线条的激光索引覆盖范围两者的重叠度数,若所述重叠度数大于或等于预设重叠阈值,选择所述第一目标线条与所述第二目标线条为一对最佳线条,直至匹配出至少两对最佳线条,从所述至少两对最佳线条中筛选出至少两对匹配线条。
举例而言,假设变换点云的第二目标线条C1的激光索引如下所示:
{2,3,5,7,8,10,44,45,46,47,49,51}
则第二目标线条C1的激光索引覆盖范围为2-10及44-51。
假设第一点云的第一目标线条B2的激光索引如下所示:
{1,2,3,5,7,8,40,41,42,44,46,47}
则第一目标线条B2的激光索引覆盖范围为1-8及40-47。
则第二目标线条C1与第一目标线条B2两者的重叠范围为2-8,44-47,则重叠度数为(8-2+1)+(47-44+1)=11。
由于重叠度数11大于预设重叠阈值10,则机器人选择第一目标线条B2与第二目标线条C1为一对最佳线条。
以此类推,直至匹配出至少两对最佳线条。
在一些实施例中,当存在与第二目标线条匹配的多条第一目标线条,选择重叠度数最大的第一目标线条与第二目标线条作为一对最佳线条。
在一些实施例中,机器人可以把每对最佳线条当做一对匹配线条。在一些实施例中,机器人还可以进一步地得到更为准确的匹配线条。
举例而言,机器人从至少两对最佳线条中筛选出至少两对匹配线条时,首先,机器人计算每对最佳线条的匹配分值,其中,机器人可以采用任意合适权重算法来计算每对最佳线条的匹配分值,例如,如下所示:score(corrLine[i])=
wsum*pSum+wadiff*pADiff++wddiff*pDDiff+wpdiff*pPDiff
wsum+wadiff+wddiff+wpdiff=1
Figure BDA0002320622310000181
Figure BDA0002320622310000182
Figure BDA0002320622310000183
Figure BDA0002320622310000184
corrLine[i]表示第i对匹配线条,Wsum、Wadiff、Wddiff、Wpdiff分别为权重系数,pSum为匹配线条点云个数得分,pADiff为两条线条平行性得分,pDDiff为两条线条距离相近性得分,pPDiff为两条线条点云差值得分,corrLine[i][0]表示第i对匹配线条的第一点云中的线条,corrLine[i][1]表示第i对匹配线条的变换点云中的线条,n表示线条中激光点个数,a表示线条的角度,d表示原点到线条距离。
其次,机器人按照每对最佳线条的匹配分值,降序排列每对最佳线条。
再次,机器人选择排序在前并位于预设名次以内的至少两对最佳线条作为至少两对匹配线条,例如,机器人选择取得分最高的两条最佳线条作为匹配线条,如果匹配线条相互平行或相互间的夹角小于一定角度阈值,则依次向下取次高匹配线条,如果所有匹配线条相互间的夹角均小于一定角度阈值,说明该场景为类似走廊的场景。
需要说明的是,在上述各个实施例中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
作为本发明实施例的另一方面,本发明实施例提供一种机器人位置确定装置。其中,机器人位置确定装置可以为软件模块,所述软件模块包括若干指令,其存储在电调中的存储器内,处理器可以访问该存储器,调用指令进行执行,以完成上述各个实施例所阐述的机器人位置确定方法。
在一些实施例中,机器人位置确定装置亦可以由硬件器件搭建成的,例如,机器人位置确定装置可以由一个或两个以上的芯片搭建而成,各个芯片可以互相协调工作,以完成上述各个实施例所阐述的机器人位置确定方法。再例如,机器人位置确定装置还可以由各类逻辑器件搭建而成,诸如由通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合而搭建成。
请参阅图7a,机器人位置确定装置700包括数据获取模块71、坐标转换模块72、线条确定模块73及位置确定模块74。
数据获取模块71用于获取预设空间内,所述机器人在已知位置的第一点云与第一偏航角,以及未知位置的第二点云及第二偏航角,所述第一点云及所述第二点云为非连续的两帧点云;
坐标转换模块72用于根据所述第一偏航角及所述第二偏航角,将所述第二点云变换至旋转坐标系,得到变换点云,所述旋转坐标系与所述第一点云的第一坐标系平行;
线条确定模块73用于确定至少两对匹配线条,每对所述匹配线条中一条线条由所述第一点云得到,另一条线条由所述变换点云得到;
位置确定模块74用于根据所述至少两对匹配线条及所述已知位置的位置信息,确定所述未知位置的位置信息。
在本实施例中,即使机器人被大幅度地瞬间挪移到未知位置,本装置无需重新构建地图,还可以确定未知位置的位置信息,从而有效地减少搜索空间,进而减少计算量,极大提高重定位效率。
在一些实施例中,请参阅图7b,线条确定模块73包括线条提取单元731及线条匹配单元732。
线条提取单元731用于根据每个坐标系下的每帧点云,提取每帧点云的目标线条;
线条匹配单元732用于根据每帧点云的目标线条,匹配出至少两对匹配线条。
在一些实施例中,线条提取单元731具体用于根据每个坐标系下的每帧点云,确定激光点连续且最长候选线条;合并满足预设合并条件的最长候选线条,得到每帧点云的目标线条。
在一些实施例中,所述线条为直线,线条提取单元731具体用于在每个坐标系下的每帧点云,随机选择两个激光点构建随机直线;筛选满足预设筛选条件的随机直线,得到初步直线;从所述初步直线中遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线,将所述目标子直线为最长候选线条。
在一些实施例中,线条提取单元731具体用于获取当前迭代次数,若所述当前迭代次数小于或等于预设最大迭代次数,求取所述每帧点云中全部激光点与所述随机直线的距离;统计距离小于预设距离阈值的激光点的内点总数,根据所述内点总数、所述全部激光点的总数及预设内点先验概率,计算理想迭代次数;若所述当前迭代次数大于或等于所述理想迭代次数,则选择所述随机直线作为初步直线;若所述当前迭代次数小于所述理想迭代次数,则将所述当前迭代次数与预设数值作赋值处理,得到赋值后的当前迭代次数,并返回获取当前迭代次数。
在一些实施例中,线条提取单元731具体用于计算每条所述初步直线上内点的数量;若所述数量小于或等于预设数量阈值,则丢弃所述初步直线;若所述数量大于预设数量阈值,则在所述初步直线遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线。
在一些实施例中,线条提取单元731具体用于根据所述初步直线上的各个内点,重新拟合出精确直线;从所述精确直线中遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线。
在一些实施例中,线条提取单元731具体用于计算任意两条最长候选线条的夹角、对应坐标系原点到一条所述最长候选线条的第一垂直距离及所述原点到另一条所述最长候选线条的第二垂直距离;当所述夹角小于预设角度阈值,且所述第二垂直距离与所述第一垂直距离两者的差值小于预设差值时,将所述两条最长候选线条合并成每帧点云对应的目标线条。
在一些实施例中,线条匹配单元732具体用于将所述变换点云中任一目标线条相对所述旋转坐标系X轴的角度,以及所述第一点云中任一目标线条相对所述第一坐标系X轴的角度作差值运算,得到角度差值;根据所述角度差值,匹配出至少两对匹配线条。
在一些实施例中,角度差值小于或等于预设角度差值并在所述第一点云中的每条目标线条为第一目标线条,所述角度差值小于或等于预设角度差值并在所述变换点云中的每条目标线条为第二目标线条,线条匹配单元732具体用于计算所述第一目标线条的激光索引覆盖范围与所述第二目标线条的激光索引覆盖范围两者的重叠度数;若所述重叠度数大于或等于预设重叠阈值,选择所述第一目标线条与所述第二目标线条为一对最佳线条,直至匹配出至少两对最佳线条;从所述至少两对最佳线条中筛选出至少两对匹配线条。
在一些实施例中,线条匹配单元732具体用于计算每对所述最佳线条的匹配分值;按照每对所述最佳线条的匹配分值,降序排列每对所述最佳线条;选择排序在前并位于预设名次以内的至少两对最佳线条作为至少两对匹配线条。
当存在与所述第二目标线条匹配的多条第一目标线条,在一些实施例中,线条匹配单元732具体用于选择重叠度数最大的第一目标线条与第二目标线条作为一对最佳线条。
所述线条为直线,在一些实施例中,线条匹配单元732具体用于根据所述至少两对匹配线条,计算所述机器人在所述已知位置时被移动后的距离增量;根据所述距离增量及所述已知位置的位置信息,确定所述未知位置的位置信息。
在一些实施例中,所述距离增量包括在X轴方向上的第一距离增量,线条匹配单元732具体用于获取一对所述匹配线条中一条线条相对所述第一坐标系X轴的第一角度、及另一对所述匹配线条中一条线条相对所述第一坐标系X轴的第二角度、一对所述匹配线条中另一条线条相对所述旋转坐标系X轴的第三角度、及另一对所述匹配线条中另一条线条相对所述旋转坐标系X轴的第四角度;计算所述第一坐标系原点分别到一对所述匹配线条中一条线条的第一距离及到另一对所述匹配线条中一条线条的第二距离,以及所述旋转坐标系原点分别到一对所述匹配线条中另一条线条的第三距离及到另一对所述匹配线条中另一条线条的第四距离;根据所述第一距离、所述第二距离、所述第一角度及所述第二角度,计算在所述第一坐标系X轴的第一投影距离;根据所述第三距离、所述第四距离、所述第三角度及所述第四角度,计算在所述旋转坐标系X轴的第二投影距离;将所述第二投影距离相减所述第一投影距离,得到第一距离增量。
在一些实施例中,所述距离增量包括在Y轴方向上的第二距离增量,线条匹配单元732具体用于根据所述第一距离、所述第二距离、所述第一角度及所述第二角度,计算在所述第一坐标系Y轴的第三投影距离;根据所述第三距离、所述第四距离、所述第三角度及所述第四角度,计算在所述旋转坐标系Y轴的第四投影距离;将所述第四投影距离相减所述第三投影距离,得到第二距离增量。
在一些实施例中,线条匹配单元732具体用于计算所述第二偏航角与所述第一偏航角之间的偏航角差值;根据二维坐标旋转公式,结合所述第一距离增量、所述第二距离增量、所述偏航角差值及所述已知位置的位置信息,确定所述未知位置的位置信息。
在一些实施例中,各个所述点云由安装在所述机器人的激光雷达采集的,所述第一点云对应第一坐标系,所述第二点云对应第二坐标系,所述旋转坐标系可由所述第二坐标系旋转得到并与所述第一坐标系平行。
在一些实施例中,坐标转换模块72具体用于计算所述第二偏航角与所述第一偏航角之间的偏航角差值;根据二维坐标旋转公式,结合所述偏航角差值,计算未旋转前所述激光雷达在所述旋转坐标系的雷达坐标;根据二维坐标旋转公式,结合所述偏航角差值及所述雷达坐标,计算所述第二点云旋转到所述旋转坐标系的坐标,得到变换点云。
需要说明的是,上述机器人位置确定装置可执行本发明实施例所提供的机器人位置确定方法,具备执行方法相应的功能模块和有益效果。未在机器人位置确定装置实施例中详尽描述的技术细节,可参见本发明实施例所提供的机器人位置确定法。
图8是本发明实施例提供的一种电子设备的电路结构示意图。如图8所示,该电子设备包括一个或多个处理器81以及存储器82。其中,图8中以一个处理器81为例。
处理器81和存储器82可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器82作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的机器人位置确定方法对应的程序指令/模块。处理器81通过运行存储在存储器82中的非易失性软件程序、指令以及模块,从而执行机器人位置确定装置的各种功能应用以及数据处理,即实现上述方法实施例提供的机器人位置确定方法以及上述装置实施例的各个模块或单元的功能。
存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器82可选包括相对于处理器81远程设置的存储器,这些远程存储器可以通过网络连接至处理器81。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器82中,当被所述一个或者多个处理器81执行时,执行上述任意方法实施例中的机器人位置确定方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图8中的一个处理器81,可使得上述一个或多个处理器可执行上述任意方法实施例中的机器人位置确定方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行任一项所述的机器人位置确定方法。
在本实施例中,即使机器人被大幅度地瞬间挪移到未知位置,本方法无需重新构建地图,还可以确定未知位置的位置信息,从而有效地减少搜索空间,进而减少计算量,极大提高重定位效率。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (20)

1.一种机器人位置确定方法,其特征在于,包括:
获取预设空间内,所述机器人在已知位置的第一点云与第一偏航角,以及未知位置的第二点云及第二偏航角,所述第一点云及所述第二点云为非连续的两帧点云;
根据所述第一偏航角及所述第二偏航角,将所述第二点云变换至旋转坐标系,得到变换点云,所述旋转坐标系与所述第一点云的第一坐标系平行;
确定至少两对匹配线条,每对所述匹配线条中一条线条由所述第一点云得到,另一条线条由所述变换点云得到;
根据所述至少两对匹配线条及所述已知位置的位置信息,确定所述未知位置的位置信息。
2.根据权利要求1所述的方法,其特征在于,所述确定至少两对匹配线条包括:
根据每个坐标系下的每帧点云,提取每帧点云的目标线条;
根据每帧点云的目标线条,匹配出至少两对匹配线条。
3.根据权利要求2所述的方法,其特征在于,所述根据每个坐标系下的每帧点云,提取每帧点云的目标线条包括:
根据每个坐标系下的每帧点云,确定激光点连续且最长候选线条;
合并满足预设合并条件的最长候选线条,得到每帧点云的目标线条。
4.根据权利要求3所述的方法,其特征在于,所述线条为直线,根据每个坐标系下的每帧点云,确定激光点连续且最长候选线条包括:
在每个坐标系下的每帧点云,随机选择两个激光点构建随机直线;
筛选满足预设筛选条件的随机直线,得到初步直线;
从所述初步直线中遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线,将所述目标子直线为最长候选线条。
5.根据权利要求4所述的方法,其特征在于,筛选满足预设筛选条件的随机直线,得到初步直线包括:
获取当前迭代次数,若所述当前迭代次数小于或等于预设最大迭代次数,求取所述每帧点云中全部激光点与所述随机直线的距离;
统计距离小于预设距离阈值的激光点的内点总数,根据所述内点总数、所述全部激光点的总数及预设内点先验概率,计算理想迭代次数;
若所述当前迭代次数大于或等于所述理想迭代次数,则选择所述随机直线作为初步直线;
若所述当前迭代次数小于所述理想迭代次数,则将所述当前迭代次数与预设数值作赋值处理,得到赋值后的当前迭代次数,并返回获取当前迭代次数的步骤。
6.根据权利要求4所述的方法,其特征在于,从所述初步直线中遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线包括:
计算每条所述初步直线上内点的数量;
若所述数量小于或等于预设数量阈值,则丢弃所述初步直线;
若所述数量大于预设数量阈值,则在所述初步直线遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线。
7.根据权利要求6所述的方法,其特征在于,所述在所述初步直线遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线,包括:
根据所述初步直线上的各个内点,重新拟合出精确直线;
从所述精确直线中遍历出激光点连续且连续的激光点个数大于预设激光点阈值的目标子直线。
8.根据权利要求3至7任一项所述的方法,其特征在于,所述线条为直线,合并满足预设合并条件的最长候选线条,得到每帧点云对应的目标线条包括:
计算任意两条最长候选线条的夹角、对应坐标系原点到一条所述最长候选线条的第一垂直距离及所述原点到另一条所述最长候选线条的第二垂直距离;
当所述夹角小于预设角度阈值,且所述第二垂直距离与所述第一垂直距离两者的差值小于预设差值时,将所述两条最长候选线条合并成每帧点云对应的目标线条。
9.根据权利要求2至7任一项所述的方法,其特征在于,所述线条为直线,根据每帧点云对应的目标线条,匹配出至少两对匹配线条包括:
将所述变换点云中任一目标线条相对所述旋转坐标系X轴的角度,以及所述第一点云中任一目标线条相对所述第一坐标系X轴的角度作差值运算,得到角度差值;
根据所述角度差值,匹配出至少两对匹配线条。
10.根据权利要求9所述的方法,其特征在于,角度差值小于或等于预设角度差值并在所述第一点云中的每条目标线条为第一目标线条,所述角度差值小于或等于预设角度差值并在所述变换点云中的每条目标线条为第二目标线条,所述根据所述角度差值,匹配出至少两对匹配线条包括:
计算所述第一目标线条的激光索引覆盖范围与所述第二目标线条的激光索引覆盖范围两者的重叠度数;
若所述重叠度数大于或等于预设重叠阈值,选择所述第一目标线条与所述第二目标线条为一对最佳线条,直至匹配出至少两对最佳线条;
从所述至少两对最佳线条中筛选出至少两对匹配线条。
11.根据权利要求10所述的方法,其特征在于,所述从所述至少两对最佳线条中筛选出至少两对匹配线条包括:
计算每对所述最佳线条的匹配分值;
按照每对所述最佳线条的匹配分值,降序排列每对所述最佳线条;
选择排序在前并位于预设名次以内的至少两对最佳线条作为至少两对匹配线条。
12.根据权利要求10所述的方法,其特征在于,当存在与所述第二目标线条匹配的多条第一目标线条,选择所述第一目标线条与所述第二目标线条作为一对最佳线条包括:
选择重叠度数最大的第一目标线条与第二目标线条作为一对最佳线条。
13.根据权利要求1至7任一项所述的方法,其特征在于,所述线条为直线,根据所述至少两对匹配线条及所述已知位置的位置信息,定位所述未知位置的位置信息,包括:
根据所述至少两对匹配线条,计算所述机器人在所述已知位置时被移动后的距离增量;
根据所述距离增量及所述已知位置的位置信息,定位所述未知位置的位置信息。
14.根据权利要求13所述的方法,其特征在于,所述距离增量包括在X轴方向上的第一距离增量,所述根据所述至少两对匹配线条,计算所述机器人移动后的距离增量包括:
获取一对所述匹配线条中一条线条相对所述第一坐标系X轴的第一角度、及另一对所述匹配线条中一条线条相对所述第一坐标系X轴的第二角度、一对所述匹配线条中另一条线条相对所述旋转坐标系X轴的第三角度、及另一对所述匹配线条中另一条线条相对所述旋转坐标系X轴的第四角度;
计算所述第一坐标系原点分别到一对所述匹配线条中一条线条的第一距离及到另一对所述匹配线条中一条线条的第二距离,以及所述旋转坐标系原点分别到一对所述匹配线条中另一条线条的第三距离及到另一对所述匹配线条中另一条线条的第四距离;
根据所述第一距离、所述第二距离、所述第一角度及所述第二角度,计算在所述第一坐标系X轴的第一投影距离;
根据所述第三距离、所述第四距离、所述第三角度及所述第四角度,计算在所述旋转坐标系X轴的第二投影距离;
将所述第二投影距离相减所述第一投影距离,得到第一距离增量。
15.根据权利要求14所述的方法,其特征在于,所述距离增量包括在Y轴方向上的第二距离增量,所述根据所述至少两对匹配线条,计算所述机器人移动后的距离增量还包括:
根据所述第一距离、所述第二距离、所述第一角度及所述第二角度,计算在所述第一坐标系Y轴的第三投影距离;
根据所述第三距离、所述第四距离、所述第三角度及所述第四角度,计算在所述旋转坐标系Y轴的第四投影距离;
将所述第四投影距离相减所述第三投影距离,得到第二距离增量。
16.根据权利要求15所述的方法,其特征在于,根据所述距离增量及所述已知位置的位置信息,定位所述未知位置的位置信息包括:
计算所述第二偏航角与所述第一偏航角之间的偏航角差值;
根据二维坐标旋转公式,结合所述第一距离增量、所述第二距离增量、所述偏航角差值及所述已知位置的位置信息,定位所述未知位置的位置信息。
17.根据权利要求1至7任一项所述的方法,其特征在于,各个所述点云由安装在所述机器人的激光雷达采集的,所述第一点云对应第一坐标系,所述第二点云对应第二坐标系,所述旋转坐标系可由所述第二坐标系旋转得到并与所述第一坐标系平行。
18.根据权利要求17所述的方法,其特征在于,所述根据所述第一偏航角及所述第二偏航角,将所述第二点云变换至旋转坐标系,得到变换点云包括:
计算所述第二偏航角与所述第一偏航角之间的偏航角差值;
根据二维坐标旋转公式,结合所述偏航角差值,计算未旋转前所述激光雷达在所述旋转坐标系的雷达坐标;
根据二维坐标旋转公式,结合所述偏航角差值及所述雷达坐标,计算所述第二点云旋转到所述旋转坐标系的坐标,得到变换点云。
19.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使机器人执行如权利要求1至18任一项所述的机器人位置确定方法。
20.一种机器人,其特征在于,包括:
图像采集设备,用于采集预设空间的点云数据;
角度检测设备,用于获取所述机器人所在的偏航角;
至少一个处理器,分别与所述图像采集设备和所述角度检测设备电连接;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至18任一项所述的机器人位置确定方法。
CN201911296211.3A 2019-12-16 2019-12-16 机器人位置确定方法、非易失性计算机可读存储介质及机器人 Active CN110928312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911296211.3A CN110928312B (zh) 2019-12-16 2019-12-16 机器人位置确定方法、非易失性计算机可读存储介质及机器人

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911296211.3A CN110928312B (zh) 2019-12-16 2019-12-16 机器人位置确定方法、非易失性计算机可读存储介质及机器人

Publications (2)

Publication Number Publication Date
CN110928312A true CN110928312A (zh) 2020-03-27
CN110928312B CN110928312B (zh) 2021-06-29

Family

ID=69863799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911296211.3A Active CN110928312B (zh) 2019-12-16 2019-12-16 机器人位置确定方法、非易失性计算机可读存储介质及机器人

Country Status (1)

Country Link
CN (1) CN110928312B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111546348A (zh) * 2020-06-10 2020-08-18 上海有个机器人有限公司 机器人位置标定方法和位置标定***
CN114001706A (zh) * 2021-12-29 2022-02-01 阿里巴巴达摩院(杭州)科技有限公司 航向角估计方法、装置、电子设备和存储介质
CN114660583A (zh) * 2022-02-17 2022-06-24 深圳市杉川机器人有限公司 一种机器人及其重定位方法、装置和介质
CN116906277A (zh) * 2023-06-20 2023-10-20 北京图知天下科技有限责任公司 风机偏航变动的确定方法、装置、电子设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959691A (zh) * 2017-03-24 2017-07-18 联想(北京)有限公司 可移动电子设备和即时定位与地图构建方法
CN107037806A (zh) * 2016-02-04 2017-08-11 科沃斯机器人股份有限公司 自移动机器人重新定位方法及采用该方法的自移动机器人
US9868212B1 (en) * 2016-02-18 2018-01-16 X Development Llc Methods and apparatus for determining the pose of an object based on point cloud data
CN107765694A (zh) * 2017-11-06 2018-03-06 深圳市杉川机器人有限公司 一种重定位方法、装置及计算机可读取存储介质
CN108052101A (zh) * 2017-12-06 2018-05-18 北京奇虎科技有限公司 机器人的重定位方法及装置
CN108053446A (zh) * 2017-12-11 2018-05-18 北京奇虎科技有限公司 基于点云的定位方法、装置及电子设备
CN108931983A (zh) * 2018-09-07 2018-12-04 深圳市银星智能科技股份有限公司 地图构建方法及其机器人
CN109186608A (zh) * 2018-09-27 2019-01-11 大连理工大学 一种面向重定位的稀疏化三维点云地图生成方法
US20190121364A1 (en) * 2016-08-29 2019-04-25 PerceptIn, Inc. Fault-tolerance to provide robust tracking for autonomous and non-autonomous positional awareness
CN110574071A (zh) * 2017-01-27 2019-12-13 Ucl商业有限公司 用于对齐3d数据集的设备,方法和***
CN110561423A (zh) * 2019-08-16 2019-12-13 深圳优地科技有限公司 位姿变换的方法、机器人及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107037806A (zh) * 2016-02-04 2017-08-11 科沃斯机器人股份有限公司 自移动机器人重新定位方法及采用该方法的自移动机器人
US9868212B1 (en) * 2016-02-18 2018-01-16 X Development Llc Methods and apparatus for determining the pose of an object based on point cloud data
US20190121364A1 (en) * 2016-08-29 2019-04-25 PerceptIn, Inc. Fault-tolerance to provide robust tracking for autonomous and non-autonomous positional awareness
CN110574071A (zh) * 2017-01-27 2019-12-13 Ucl商业有限公司 用于对齐3d数据集的设备,方法和***
CN106959691A (zh) * 2017-03-24 2017-07-18 联想(北京)有限公司 可移动电子设备和即时定位与地图构建方法
CN107765694A (zh) * 2017-11-06 2018-03-06 深圳市杉川机器人有限公司 一种重定位方法、装置及计算机可读取存储介质
CN108052101A (zh) * 2017-12-06 2018-05-18 北京奇虎科技有限公司 机器人的重定位方法及装置
CN108053446A (zh) * 2017-12-11 2018-05-18 北京奇虎科技有限公司 基于点云的定位方法、装置及电子设备
CN108931983A (zh) * 2018-09-07 2018-12-04 深圳市银星智能科技股份有限公司 地图构建方法及其机器人
CN109186608A (zh) * 2018-09-27 2019-01-11 大连理工大学 一种面向重定位的稀疏化三维点云地图生成方法
CN110561423A (zh) * 2019-08-16 2019-12-13 深圳优地科技有限公司 位姿变换的方法、机器人及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111546348A (zh) * 2020-06-10 2020-08-18 上海有个机器人有限公司 机器人位置标定方法和位置标定***
CN114001706A (zh) * 2021-12-29 2022-02-01 阿里巴巴达摩院(杭州)科技有限公司 航向角估计方法、装置、电子设备和存储介质
CN114001706B (zh) * 2021-12-29 2022-04-29 阿里巴巴达摩院(杭州)科技有限公司 航向角估计方法、装置、电子设备和存储介质
CN114660583A (zh) * 2022-02-17 2022-06-24 深圳市杉川机器人有限公司 一种机器人及其重定位方法、装置和介质
CN116906277A (zh) * 2023-06-20 2023-10-20 北京图知天下科技有限责任公司 风机偏航变动的确定方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110928312B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN110928312B (zh) 机器人位置确定方法、非易失性计算机可读存储介质及机器人
JP6885485B2 (ja) 複数カメラネットワークを利用して静止シーン及び/又は移動シーンを取り込むためのシステム及び方法
CN110869974B (zh) 点云处理方法、设备及存储介质
US8644859B2 (en) Apparatus to provide augmented reality service using location-based information and computer-readable medium and method of the same
CN112050810B (zh) 一种基于计算机视觉的室内定位导航方法及***
CN109165606B (zh) 一种车辆信息的获取方法、装置以及存储介质
WO2016032735A1 (en) Systems and methods for determining a seam
WO2021134809A1 (zh) 测距模组、机器人、测距方法及非易失性可读存储介质
WO2021016854A1 (zh) 一种标定方法、设备、可移动平台及存储介质
EP3716210B1 (en) Three-dimensional point group data generation method, position estimation method, three-dimensional point group data generation device, and position estimation device
CN110675457A (zh) 定位方法及装置、设备、存储介质
CN108332748B (zh) 一种室内可见光定位方法及装置
WO2015010579A1 (zh) 目标查找方法、装置、设备及***
US10210615B2 (en) System and method for extrinsic camera parameters calibration by use of a three dimensional (3D) calibration object
US11095870B1 (en) Calibration of cameras on unmanned aerial vehicles using human joints
CN108459597A (zh) 一种用于处理任务区域的任务的移动电子设备以及方法
JP2017117386A (ja) 自己運動推定システム、自己運動推定システムの制御方法及びプログラム
JP2020017173A (ja) 移動体
CN105387857A (zh) 导航方法及装置
CN114199235B (zh) 一种基于扇面深度相机的定位***及定位方法
CN113556680A (zh) 指纹数据的处理方法、介质和移动机器人
CN113536820B (zh) 位置识别方法、装置以及电子设备
WO2023160301A1 (zh) 物体信息确定方法、移动机器人***及电子设备
Kulkarni et al. Approximate initialization of camera sensor networks
KR20170077370A (ko) 객체 인식을 위한 디바이스, 방법 및 이를 이용한 객체 인식 시스템

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

Address after: 518000 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: 518000 building A1, Yinxing hi tech Industrial Park, Guanlan street, Longhua District, Shenzhen City, Guangdong Province

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

CP03 Change of name, title or address