坐标系标定方法、装置、电子设备及存储介质与流程

文档序号:22340098发布日期:2020-09-25 18:12阅读:205来源:国知局
坐标系标定方法、装置、电子设备及存储介质与流程

本申请涉及人工智能领域,尤其涉及智能设备、智能机器及深度学习领域。



背景技术:

智能机器需要对环境进行感知。例如,智能挖掘机项目中需要环境感知的支持。采用深度传感器设备可以实现对环境的感知,目前常用深度传感器设备有激光雷达(lidar)、深度相机等。安装在智能挖掘机的外置深度传感器能够采集挖掘机周边的环境信息,以辅助挖掘机确定目标挖掘点、避障等操作。因此,标定深度传感器是必要的操作;标定深度传感器是指获取深度传感器设备与挖掘机本体坐标系的位姿关系,以便将深度传感器采集的环境信息投影至挖掘机本体坐标系下。位姿关系是指旋转平移关系,包括旋转矩阵和平移矩阵。

以智能挖掘机为例,现有的外置深度传感器与智能设备的本体坐标系的标定方法一般有以下两种:

第一种,测量法:将挖掘机水平放置,测量外置深度传感器在三个坐标轴上的各自的倾角角度及平移分量,再将测量获取的三个坐标轴的角度转换为旋转矩阵,将平移分量转换为平移矩阵,获得最终的标定参数。这种方式由于获取的标定参数误差较大,很难获取准确的倾角角度和平移参数,从而导致标定参数不准确。

第二种,基于cad模型优化方法:此类方法需要挖掘机的准确cad模型支持,固定好外置深度传感器,通过外置深度传感器采集的点云数据与挖掘机本体上的倾角传感器采集的倾角数据建立起深度传感器采集的点云数据与cad模型在不同姿态下点云的约束关系求解标定参数。这种方式需要准确的cad模型参数的支持,而准确的cad模型参数是非常难以获取的,这严重限制了此类方法的应用。



技术实现要素:

本申请提供了一种坐标系标定方法、装置、电子设备及存储介质。

根据本申请的第一方面,提供了一种坐标系标定方法,包括:

采用深度传感器采集目标设备的多帧点云数据,每帧点云数据包括目标设备的多个三维点;深度传感器设置在目标设备的外侧;

获取每帧点云数据对应的姿态传感器的参数,利用参数确定各个姿态传感器的旋转矩阵;

利用多帧点云数据中的三维点及每帧点云数据对应的姿态传感器的旋转矩阵,确定包含第一标定参数的多个等式;第一标定参数为深度传感器与目标设备的本体坐标系的标定参数;

利用多个等式计算第一标定参数。

根据本申请的第二方面,提供了一种坐标系标定装置,包括:

采集模块,用于采用深度传感器采集目标设备的多帧点云数据,每帧点云数据包括目标设备的多个三维点;深度传感器设置在目标设备的外侧;

获取模块,用于获取每帧点云数据对应的姿态传感器的参数,利用参数确定各个姿态传感器的旋转矩阵;

确定模块,用于利用多帧点云数据中的三维点及每帧点云数据对应的姿态传感器的旋转矩阵,确定包含第一标定参数的多个等式;第一标定参数为深度传感器与目标设备的本体坐标系的标定参数;

计算模块,用于利用多个等式计算第一标定参数。

根据本申请的第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例中任一方面的方法。

根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述实施例中任一方面的方法。

根据本申请的技术,能够准确标定外置深度深度传感器与智能设备的本体坐标系的标定参数。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是本申请实施例的一种坐标系标定方法实现流程示意图;

图2是本申请实施例应用的智能挖掘机的传感器设置及坐标系标定示意图;

图3是本申请实施例的一种坐标系标定方法中,步骤s103的实现流程示意图;

图4是本申请实施例的一种坐标系标定装置结构示意图;

图5是本申请实施例的另一种坐标系标定装置结构示意图;

图6是用来实现本申请实施例的坐标系标定方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本申请实施例提出一种坐标系标定方法,图1是本申请实施例的一种坐标系标定方法实现流程图,包括:

步骤s101:采用深度传感器采集目标设备的多帧点云数据,每帧点云数据包括该目标设备的多个三维点;该深度传感器设置在该目标设备的外侧;

步骤s102:获取每帧点云数据对应的姿态传感器的参数,利用该参数确定各个姿态传感器的旋转矩阵;

步骤s103:利用多帧点云数据中的三维点及每帧点云数据对应的姿态传感器的旋转矩阵,确定包含第一标定参数的多个等式;该第一标定参数为该深度传感器与该目标设备的本体坐标系的标定参数;

步骤s104:利用上述多个等式计算该第一标定参数。

本申请实施例可以应用于智能挖掘机(简称挖掘机)。在以下实施例中,以目标设备为智能挖掘机为例进行介绍。如果其他类型的目标设备需要深度传感器的数据,也可以采用本申请实施例提出的坐标系标定方法把深度传感器和目标设备的坐标系标定在一起。

图2是本申请实施例应用的智能挖掘机的传感器设置及坐标系标定示意图。在图2中,d表示深度传感器,w表示挖掘机本体坐标系位置,位于挖掘机机身的点表示回转传感器的安装位置,位于挖掘机铲斗、小臂、大臂的三个黑点表示倾角传感器的安装位置。(r|t)表示待求解的标定参数,其中r表示标定参数中的旋转矩阵,t表示标定参数中的平移矩阵。为了区分不同的传感器,在以下实施例中,将安装于铲斗的倾角传感器记为q1,将安装于挖掘机小臂的倾角传感器记为q2,将安装于挖掘机大臂的倾角传感器记为q3,将安装于挖掘机机身的回转传感器记为h。上述倾角传感器和回转传感器可以统称为姿态传感器,可以测量其对应的挖掘机位置的旋转角度。

对于待求解的标定参数(r|t),其包括三个旋转参数(组成旋转矩阵r)和三个平移参数(组成平移矩阵t)。

如图3所示,在一些实施方式中,上述步骤s103中的利用多帧点云数据中的三维点及每帧点云数据对应的姿态传感器的旋转矩阵,确定包含第一标定参数的多个等式,包括:

步骤s301:将多帧点云数据中的任意一帧点云数据中的三维点作为参考点集合,将其余的任意一帧点云数据中的三维点作为输入点集合;

步骤s302:利用第一标定参数及参考点集合,将参考点集合投影至目标设备的本体坐标系下;并利用第一标定参数及输入点集合,将输入点集合投影至所述目标设备的本体坐标系下;

步骤s303:利用参考点集合对应的点云数据的姿态传感器的旋转矩阵,将本体坐标系下的参考点集合投影至目标设备的零位状态下;并利用输入点集合对应的点云数据的姿态传感器的旋转矩阵,将本体坐标系下的输入点集合投影至目标设备的零位状态下;其中,目标设备的零位状态包括姿态传感器的参数为0的状态;

步骤s304:利用零位状态下的参考点及零位状态下的对应输入点的等式关系,确定包含第一标定参数的多个等式。

仍以智能挖掘机为例,在固定好深度传感器及挖掘机后,首先需要进行数据采集。在一些实施方式中,本申请试实施例使用深度传感器采集挖掘机在不同姿态下的点云数据(n帧),即挖掘机在各个节点不同倾角及回转角度下的点云数据。在采集完数据后,本申请实施例可以在每帧点云数据中,选择n个挖掘机大臂小臂或铲斗上的三维点。选取的三维点可以是挖掘机上的任意点。为了表述方便,在以下实施例中,以三维点在挖掘机铲斗上为例进行说明。

选取n帧点云数据之后,在每帧点云数据中选择n个三维点,共计n*n个三维点。

将任意一帧点云数据中选取的三维点的集合作为参考点集合pt,pt={pt1,pt2,…ptn};

将其它的每一帧点云数据中的三维点集合作为该帧的输入点集合,如;

其它帧中的第一帧点云数据的输入点集合为p1;

其它帧中的第二帧点云数据的输入点集合为p2;

其它帧中的第(n-1)帧点云数据的输入点集合为pn-1。

对于任意一帧输入点集合pm,pm={pm1,pm2,…pmn}。

其中pti与pmi为对应点,其代表挖掘机机身三维点在各自帧中的三维点位置,比如挖掘机铲斗,大臂,小臂等位置的三维点,在本实施例中以铲斗上的三维点为例进行介绍。

根据参考点集合pt对应的倾角传感器参数以及回转传感器参数,可以获得每个传感器对应的旋转矩阵rtq1,rtq2,rtq3以及rth。

另外,对于任意一帧的输入点集合pm,其对应的倾角传感器和回转传感器对应的旋转矩阵为rmq1,rmq2,rmq3以及rmh。

对于上述数据,采用标定参数(r|t),可以使用深度传感器将参考点集合pt及任意一帧的输入点集合pm投影至挖掘机本体坐标系下,如式(1)和式(2):

pwt=(r|t)pt……(1)

pwm=(r|t)pm……(2)

利用上述式(1)和式(2),获取上述在挖掘机本体坐标系下对应的三维点集合pwt和pwm。

根据倾角传感器及回转传感器对应的旋转矩阵,可以将上述三维点集合投影到挖掘机零位下(即各传感器参数均为0的状态)的三维点集合,如式(1)和式(2):

在零位状态下参考点集合和输入点集合中对应的三维点是相等的,即存在下列一组式子:

综合以上式子,可以得到下列一组式子:

rthrtq3rtq2rtq1(r|t)pt1=rmhrmq3rmq2rmq1(r|t)pm1……(6-1)

rthrtq3rtq2rtq1(r|t)pt2=rmhrmq3rmq2rmq1(r|t)pm2……(6-2)

……

rthrtq3rtq2rtq1(r|t)pth=rmhrmq3rmq2rmh1(r|t)pmn……(6-n)

对于每一帧点云数据,可以获取如式(6-1)至式(6-n)的n个等式,在数据采集阶段共采集了1帧参考点集合和(n-1)帧输入点集合,则可以获得(n-1)*n个等式。通过最小二乘优化计算该(n-1)*n个等式,即可获得深度传感器与挖掘机本体坐标系的标定参数(p|t)。

以上是以三维点在挖掘机铲斗上为例进行介绍的。在一些实施方式中,上述步骤s102中的获取每帧点云数据对应的姿态传感器的参数,包括以下至少一项:

当点云数据的三维点位于所述挖掘机的铲斗时,获取设置于挖掘机铲斗、小臂和大臂的倾角传感器的参数以及设置于挖掘机机身的回转传感器的参数;

当点云数据的三维点位于所述挖掘机的小臂时,获取设置于挖掘机小臂和大臂的倾角传感器的参数以及设置于挖掘机机身的回转传感器的参数;即,在建立上述等式时,不包含旋转矩阵rq1(对应铲斗);

当点云数据的三维点位于所述挖掘机的大臂时,获取设置于挖掘机大臂的倾角传感器的参数以及设置于挖掘机机身的回转传感器的参数;即,在建立上述等式时,不包含旋转矩阵rq1(对应铲斗)和rq2(对应挖掘机小臂);

当点云数据的三维点位于所述挖掘机的机身时,获取设置于挖掘机机身的回转传感器的参数;即,在建立上述等式时,不包含旋转矩阵rq1(对应铲斗)、rq2(对应挖掘机小臂)和rq3(对应挖掘机大臂)。

可见,采用本申请实施例可以有效标定外置深度传感器与目标设备(如智能挖掘机)本体坐标系的标定参数。不需要cad模型的支持,所需约束较少,同时可以有效解决测量方式获得的标定参数不准确及鲁棒性不足的问题。

本申请实施例还提出一种坐标系标定装置,图4为本申请实施例的一种坐标系标定装置结构示意图,包括:

采集模块401,用于采用深度传感器采集目标设备的多帧点云数据,每帧点云数据包括目标设备的多个三维点;深度传感器设置在目标设备的外侧;

获取模块402,用于获取每帧点云数据对应的姿态传感器的参数,利用参数确定各个姿态传感器的旋转矩阵;

确定模块403,用于利用多帧点云数据中的三维点及每帧点云数据对应的姿态传感器的旋转矩阵,确定包含第一标定参数的多个等式;第一标定参数为深度传感器与目标设备的本体坐标系的标定参数;

计算模块404,用于利用多个等式计算第一标定参数。

如图5所示,在一些实施方式中,确定模块403包括:

集合确定子模块501,用于将多帧点云数据中的任意一帧点云数据中的三维点作为参考点集合,将其余的任意一帧点云数据中的三维点作为输入点集合;

第一投影子模块502,用于利用第一标定参数及参考点集合,将参考点集合投影至目标设备的本体坐标系下;并利用第一标定参数及输入点集合,将输入点集合投影至目标设备的本体坐标系下;

第二投影子模块503,用于利用参考点集合对应的点云数据的姿态传感器的旋转矩阵,将本体坐标系下的参考点集合投影至目标设备的零位状态下;并利用输入点集合对应的点云数据的姿态传感器的旋转矩阵,将本体坐标系下的输入点集合投影至目标设备的零位状态下;目标设备的零位状态包括姿态传感器的参数为0的状态;

等式确定子模块504,用于利用零位状态下的参考点及零位状态下的对应输入点的等式关系,确定包含第一标定参数的多个等式。

在一些实施方式中,目标设备包括挖掘机,姿态传感器包括倾角传感器和/或回转传感器;

获取模块402用于采用以下至少一种方式获取姿态传感器的参数:

当点云数据的三维点位于挖掘机的铲斗时,获取设置于挖掘机铲斗、小臂和大臂的倾角传感器的参数以及设置于挖掘机机身的回转传感器的参数;

当点云数据的三维点位于挖掘机的小臂时,获取设置于挖掘机小臂和大臂的倾角传感器的参数以及设置于挖掘机机身的回转传感器的参数;

当点云数据的三维点位于挖掘机的大臂时,获取设置于挖掘机大臂的倾角传感器的参数以及设置于挖掘机机身的回转传感器的参数;

当点云数据的三维点位于挖掘机的机身时,获取设置于挖掘机机身的回转传感器的参数。

在一些实施方式中,计算模块404用于,采用最小二乘优化方法,利用多个等式计算第一标定参数。

本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图6所示,是根据本申请实施例的坐标系标定方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。

存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的坐标系标定方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的坐标系标定方法。

存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的坐标系标定方法对应的程序指令/模块(例如,附图4所示的采集模块401、获取模块402、确定模块403和计算模块404)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的坐标系标定方法。

存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据坐标系标定方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至坐标系标定方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

坐标系标定方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。

输入装置603可接收输入的数字或字符信息,以及产生与坐标系标定方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。

根据本申请实施例的技术方案,可以有效标定外置深度传感器与目标设备(如智能挖掘机)本体坐标系的标定参数。不需要cad模型的支持,所需约束较少,同时可以有效解决测量方式获得的标定参数不准确及鲁棒性不足的问题。本申请实施例可以应用于智能挖掘机技术中,作为环境感知部分的重要步骤。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1