1.本技术涉及机器人技术领域,具体涉及一种标定方法、装置、机器人及计算机可读存储介质。
背景技术:2.在相关技术中,具有相机及雷达协同工作的机器人,在对其相机及雷达的标定时,都假设相机及雷达之间横滚角为零来进行标定,因此标定的精确度比较低,进而影响后续相机与雷达协同工作的精度。
技术实现要素:3.鉴于此,本技术提供一种标定方法、装置、机器人及计算机可读存储介质,可用于标定相机及雷达之间包括横滚维度的位姿关系。本技术技术方案如下:
4.本技术第一方面提供一种标定方法,所述标定方法包括:
5.通过相机获取标定区域对应的待标定图像,所述标定区域中包括多个标定物;
6.确定各个所述标定物在空间坐标系下的空间坐标,以及在所述待标定图像所对应的像素坐标;
7.根据所述空间坐标和所述像素坐标建立所述相机对应的投影矩阵;
8.通过雷达采集所述标定区域对应的雷达数据,得到所述标定物各自对应的雷达坐标;
9.根据所述投影矩阵、所述空间坐标以及所述雷达坐标,标定所述相机与所述雷达之间的目标位姿关系,所述目标位姿关系包括横滚维度的位姿关系。
10.根据本技术一种实施方式,所述根据所述投影矩阵、所述空间坐标以及所述雷达坐标,标定所述相机与所述雷达之间的目标位姿关系,包括:
11.根据所述投影矩阵确定所述相机坐标系在多个采集视角下分别对应的初始相机位姿数据;所述初始相机位姿数据包括旋转矩阵和平移向量;
12.根据所述旋转矩阵、所述平移向量以及所述空间坐标,计算得到所述标定物在多个所述采集视角下分别对应的相机坐标;
13.基于所述相机坐标以及所述雷达坐标,标定所述相机和所述雷达之间的目标位姿关系。
14.根据本技术一种实施方式,所述根据所述旋转矩阵、所述平移向量以及所述空间坐标,计算得到所述标定物在多个所述采集视角下分别对应的相机坐标,包括:
15.根据所述旋转矩阵和所述平移向量,确定多个所述采集视角各自对应的第一转换关系;
16.根据所述第一转换关系和所述空间坐标,计算得到多个所述采集视角下的初始相机坐标;
17.对所述初始相机坐标进行平面化处理,得到所述标定物在多个所述采集视角下分
别对应的目标相机坐标。
18.根据本技术一种实施方式,所述基于所述相机坐标以及所述雷达坐标,标定所述相机和所述雷达之间的目标位姿关系,包括:
19.根据多个采集视角下的所述相机坐标生成相机坐标点集;
20.根据多个采集视角下的所述雷达坐标生成雷达坐标点集;
21.基于所述相机坐标点集以及所述雷达坐标点集建立目标转换矩阵;
22.对所述目标转换矩阵进行奇异值分解,得到目标旋转数据和目标平移数据;
23.根据所述目标旋转数据和所述目标平移数据,标定所述相机和所述雷达之间的目标位姿关系。
24.根据本技术一种实施方式,所述对所述目标转换矩阵进行奇异值分解,得到目标旋转数据和目标平移数据,包括:
25.对所述目标转换矩阵进行奇异值分解,得到初始旋转数据;
26.将所述初始旋转数据转换为旋转角数据;
27.对所述旋转角数据进行迭代处理,得到目标旋转数据。
28.根据本技术一种实施方式,所述标定物包括相机标定物及雷达标定物;
29.所述确定各个所述标定物在空间坐标系下的空间坐标,包括:
30.获取多个所述相机标定物各自对应的第一尺寸信息和第一位置信息;
31.基于所述第一尺寸信息及所述第一相对位置信息建立空间坐标系,确定所述相机标定物在所述空间坐标系下的第一空间坐标;
32.获取所述雷达标定物的第二尺寸信息,以及所述雷达标定物与所述相机标定物之间的第二位置信息;
33.根据所述第二尺寸信息和所述第二相对位置信息确定所述雷达标定物在所述空间坐标系下的第二空间坐标。
34.根据本技术一种实施方式,所述根据所述空间坐标和所述像素坐标建立所述相机对应的投影矩阵,包括:
35.根据所述空间坐标和所述像素坐标建立所述相机对应的初始投影矩阵;
36.基于所述空间坐标确定所述相机对应的约束函数;
37.根据所述约束函数对所述初始投影矩阵进行误差处理,得到所述相机对应的目标投影矩阵。
38.本技术第二方面提供一种标定装置,包括:
39.图像获取模块,用于通过相机获取标定区域对应的待标定图像,所述标定区域中包括多个标定物;
40.像素坐标确定模块,用于确定各个所述标定物在空间坐标系下的空间坐标,以及在所述待标定图像所对应的像素坐标;
41.投影矩阵建立模块,用于根据所述空间坐标和所述像素坐标建立所述相机对应的投影矩阵;
42.雷达坐标确定模块,用于通过雷达采集所述标定区域对应的雷达数据,得到所述标定物各自对应的雷达坐标;
43.位姿关系标定模块,用于根据所述投影矩阵、所述空间坐标以及所述雷达坐标,标
定所述相机与所述雷达之间的目标位姿关系,所述目标位姿关系包括横滚维度的位姿关系。
44.本技术第三方面提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使所述处理器执行所述的标定方法。
45.本技术第四方面提供一种机器人,包括存储器以及处理器,所述存储器中存储有计算机程序,当所述计算机程序被处理器执行时,使所述处理器实现所述的标定方法。
46.本技术提供的技术方案带来的有益效果至少包括:
47.在本技术一个或多个实施例中,获得的投影矩阵和空间坐标中包括有相机的所有位姿信息,而雷达坐标则包括有雷达的位姿信息,因此根据投影矩阵、空间坐标以及雷达坐标去标定目标位姿关系时,该目标位姿关系包括有相机与雷达之间所有的相对位姿关系,即包括横滚维度的位姿关系。因此通过上述步骤进行相机和雷达之间位姿的标定,可同时标定两者之间包括横滚维度的位姿关系,从而在后续使用相机协同雷达去测量几何数据时,该目标位姿关系可作为高精度的测量初始参数,从而提高相机协同雷达进行几何数据测量的精度。
附图说明
48.图1是本技术提供的一种机器人的硬件结构示意图。
49.图2是本技术提供的一种机器人的机械结构示意图。
50.图3是本技术提供的一种标定方法的流程示意图。
51.图4是本技术提供的一种标定场景的示意图。
52.图5是本技术提供的一种标定目标位姿关系的流程示意图。
53.图6是本技术提供的一种计算相机坐标的流程示意图。
54.图7是本技术提供的一种标定相机与雷达的流程示意图。
55.图8是本技术提供的一种确定标定物空间坐标的流程示意图。
56.图9是本技术提供的一种建立投影矩阵的流程示意图。
57.图10是本技术提供的一种获得目标旋转数据的流程示意图。
58.图11是本技术提供的一种相机坐标系与雷达坐标系的示意图。
59.图12是本技术提供的一种标定后相机坐标点与雷达坐标点的效果图。
60.图13时本技术提供的一种标定装置的结构示意图。
61.主要元件符号说明
62.100-机器人;
63.101-机械单元;1011-驱动板;1012-电动机;1013-机械结构;1014-机身主体;1015-腿部;1016-足部;1017-头部结构;1018-尾巴结构;1019-载物结构;1020-鞍座结构;1021-相机结构;102-通讯单元;103-传感单元;104-接口单元;105-存储单元;106-显示单元;1061-显示面板;107-输入单元;1071-触控面板;1072-其他输入设备;1073-触摸检测装置;1074-触摸控制器;110-控制模块;111-电源。
具体实施方式
64.需要说明的是,本技术实施例中“至少一个”是指一个或者多个,“多个”是指两个
或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。本技术的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
65.另外需要说明的是,本技术实施例中公开的方法或流程图所示出的方法,包括用于实现方法的一个或多个步骤,在不脱离权利要求的范围的情况下,多个步骤的执行顺序可以彼此互换,其中某些步骤也可以被删除。
66.请参阅图1,图1为本技术其中一个实施方式的机器人100的硬件结构示意图。在图1所示的实施方式中,机器人100包括机械单元101、通讯单元102、传感单元103、接口单元104、存储单元105、控制模块110、电源111。机器人100的各种部件可以以任何方式连接,包括有线或无线连接等。本领域技术人员可以理解,图1中示出的机器人100的具体结构并不构成对机器人100的限定,机器人100可以包括比图示更多或更少的部件,某些部件也并不属于机器人100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略,或者组合某些部件。
67.下面结合图1对机器人100的各个部件进行具体的介绍:
68.机械单元101为机器人100的硬件。如图1所示,机械单元101可包括驱动板1011、电动机1012、机械结构1013,如图2所示,机械结构1013可包括机身主体1014、可伸展的腿部1015、足部1016,在其他实施方式中,机械结构1013还可包括可伸展的机械臂(图未示)、可转动的头部结构1017、可摇动的尾巴结构1018、载物结构1019、鞍座结构1020、相机结构1021等。需要说明的是,机械单元101的各个部件模块可以为一个也可以为多个,可根据具体情况设置,比如腿部1015可为4个,每个腿部1015可配置3个电动机1012,对应的电动机1012为12个。
69.通讯单元102可用于信号的接收和发送,还可以通过与网络和其他设备通信,比如,接收遥控器或其他机器人100发送的按照特定步态以特定速度值向特定方向移动的指令信息后,传输给控制模块110处理。通讯单元102包括如wifi模块、4g模块、5g模块、蓝牙模块、红外模块等。
70.传感单元103用于获取机器人100周围环境的信息数据以及监控机器人100内部各部件的参数数据,并发送给控制模块110。传感单元103包括多种传感器,如获取周围环境信息的传感器:激光雷达(用于远程物体检测、距离确定和/或速度值确定)、探测雷达(用于短程物体检测、距离确定和/或速度值确定)、相机、红外相机、全球导航卫星系统(gnss,global navigation satellite system)等。如监控机器人100内部各部件的传感器:惯性测量单元(imu,inertial measurement unit)(用于测量速度值、加速度值和角速度值的值),足底传感器(用于监测足底着力点位置、足底姿态、触地力大小和方向)、温度传感器(用于检测部件温度)。至于机器人100还可配置的载荷传感器、触摸传感器、电机角度传感器、扭矩传感器等其他传感器,在此不再赘述。
71.接口单元104可以用于接收来自外部装置的输入(例如,数据信息、电力等)并且将接收到的输入传输到机器人100内的一个或多个部件,或者可以用于向外部装置输出(例如,数据信息、电力等)。接口单元104可包括电源端口、数据端口(如usb端口)、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口等。
72.存储单元105用于存储软件程序以及各种数据。存储单元105可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统程序、运动控制程序、应用程序(比如文本编辑器)等;数据存储区可存储机器人100在使用中所生成的数据(比如传感单元103获取的各种传感数据,日志文件数据)等。此外,存储单元105可以包括高速随机存取存储器,还可以包括非易失性存储器,例如磁盘存储器、闪存器、或其他易失性固态存储器。
73.显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板1061。
74.输入单元107可用于接收输入的数字或字符信息。具体地,输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户的触摸操作(比如用户使用手掌、手指或适合的附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置1073和触摸控制器1074两个部分。其中,触摸检测装置1073检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器1074;触摸控制器1074从触摸检测装置1073上接收触摸信息,并将它转换成触点坐标,再送给控制模块110,并能接收控制模块110发来的命令并加以执行。除了触控面板1071,输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于遥控操作手柄等中的一种或多种,具体此处不做限定。
75.进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给控制模块110以确定触摸事件的类型,随后控制模块110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来分别实现输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现输入和输出功能,具体此处不做限定。
76.控制模块110是机器人100的控制中心,利用各种接口和线路连接整个机器人100的各个部件,通过运行或执行存储在存储单元105内的软件程序,以及调用存储在存储单元105内的数据,从而对机器人100进行整体控制。
77.电源111用于给各个部件供电,电源111可包括电池和电源控制板,电源控制板用于控制电池充电、放电、以及功耗管理等功能。在图1所示的实施方式中,电源111电连接控制模块110,在其它的实施方式中,电源111还可以分别与传感单元103(比如相机、雷达、音箱等)、电动机1012电性连接。需要说明的是,各个部件可以各自连接到不同的电源111,或者由相同的电源111供电。
78.在上述实施方式的基础上,具体地,在一些实施方式中,可以通过终端设备来与机器人100进行通信连接,在终端设备与机器人100进行通信时,可以通过终端设备来向机器人100发送指令信息,机器人100可通过通讯单元102来接收指令信息,并可在接收到指令信息的情况下,将指令信息传输至控制模块110,使得控制模块110可根据指令信息来处理得到目标速度值。终端设备包括但不限于:具备图像拍摄功能的手机、平板电脑、服务器、个人计算机、可穿戴智能设备、其它电器设备。
79.指令信息可以根据预设条件来确定。在一个实施方式中,机器人100可以包括传感单元103,传感单元103可根据机器人100所在的当前环境可生成指令信息。控制模块110可根据指令信息来判断机器人100的当前速度值是否满足对应的预设条件。若满足,则会保持
机器人100的当前速度值和当前步态移动;若不满足,则会根据对应的预设条件来确定目标速度值和相应的目标步态,从而可控制机器人100以目标速度值和相应的目标步态移动。环境传感器可以包括温度传感器、气压传感器、视觉传感器、声音传感器。指令信息可以包括温度信息、气压信息、图像信息、声音信息。环境传感器与控制模块110之间的通信方式可以为有线通信,也可以为无线通信。无线通信的方式包括但不限于:无线网络、移动通信网络(3g、4g、5g等)、蓝牙、红外。
80.本技术实施方式中,提供一种相机与传感器之间的标定方法,尤其提供一种相机与雷达之间的标定方法,其中,该雷达包括毫米波雷达等测距雷达。该标定方法可应用于上述机器人100,即对该机器人100的相机1021和传感单元103中的毫米波雷达等进行标定,以获得相机1021和传感单元103之间的位姿关系,从而可利用该位姿关系提高相机1021和传感单元103协同工作时获得测量数据的精度。
81.接下来,结合图1以及图2介绍本技术提供的一种标定方法。图3为本技术实施方式提供的一种标定方法的流程示意图,具体包括以下步骤:
82.步骤s31:通过相机获取标定区域对应的待标定图像,标定区域中包括多个标定物。
83.本技术实施方式中,在进行标定前,可以先建立标定区域,在标定区域中设置用于获取标定所需数据的标定物。其中,该标定物包括图像标定物及雷达标定物,该图像标定物为相机易于获取且后续易于在图像中识别出相应位置的物体,例如可以为在标定区域中对比度较大颜色的雪糕筒,在相机获取到标定区域对应的待标定图像后,通过颜色的识别可以准确的识别出在图像上的位置;还可以为架设一定高度的二维码图片等,这里不做限定。而雷达标定物则为雷达易于探测出相应位置的物体,例如机器人100中所设置的探测雷达为毫米波雷达时,则可设置易于探测的金属物体等,这里不做限定。
84.如图4所示,为本技术提供的一种标定场景的示意图,图中包括有相机401以及毫米波雷达402,上述标定物可以包括多个图像标定物403以及至少一个雷达标定物404。多个图像标定物403的数量可以为四个,四个图像标定物403的对地可以高度一致,即通过相机401获取具有四个图像标定物403的待标定图像后,在已知图像标定物403的对地高度及相机401的内部参数下,即可快速建立图像标定物403的空间坐标,在标定过程中可以提高标定的效率。而雷达标定物404则可以设置于四个图像标定物403之间。建立标定物的空间坐标时,例如可以以其中一个图像标定物403为原点,建立空间坐标系,且图像标定物403的高度等于图像标定物的空间坐标的z轴坐标值,进而获得其它图像标定物403以及雷达标定物404的空间坐标。
85.本技术实施方式中,在启动上述标定方法时,可以通过相机获取标定区域对应的待标定图像。
86.步骤s32:确定各个标定物在空间坐标系下的空间坐标,以及在待标定图像所对应的像素坐标。
87.本技术实施方式中,在获取待标定图像后,可根据该待标定图像中各个标定物之间的位置关系获取各个标定物在空间坐标系下的空间坐标。或者,在已知相机内部参数的情况下,还可以根据该内部参数获得相机坐标与世界坐标系之间的关系,再根据该关系确定图像中各个标定物的空间坐标。或者,在利用各个标定物建立标定所需的场景时,可直接
根据各个标定物的物理位置设定相应的空间坐标,在后续进行标定的过程中可以获取并利用。
88.其中,上述的第一种获取空间坐标的方式中,还可以先选取该待标定图像的场景中任意一点作为原点,再通过各个标定物之间的位置关系建立空间坐标系,并获取各个标定物的空间坐标时。例如,可以定义场景中其中一个标定物为空间坐标系的原点,标定物为雪糕筒时,可选取该雪糕筒的顶点为空间坐标系的原点,在知道其它标定物的尺寸、摆放相对的距离以及相机内部参数等信息下,即可快速建立出空间坐标系,从而获得其它标定物在该空间坐标系下的空间坐标。其中,标定物的坐标点可以为该标定物的几何中心点,即可通过标定物的尺寸数据计算出几何中心点作为标定物的坐标点,以提高标定过程的规范性。
89.获取各个标定物的像素坐标的过程可以包括识别、定义像素坐标系以及获取像素坐标的过程。识别过程即包括通过图像识别获得标定物在待标定图像上的位置,确定标定物在待标定图像中的平面图形。定义像素坐标系的过程包括在待标定图像上定义像素坐标系的原点、横轴以及纵轴,例如可以定义待标定图像的中心像素点为原点,再根据图像边框定义横轴以及纵轴,进而获得像素坐标系。根据该像素坐标系,即可计算出各个标定物在待标定图像上的像素坐标。其中,上述识别、定义像素坐标系以及获取像素坐标的过程可以通过计算机应用程序以及算法来实现。
90.其中,除了上述利用计算机应用程序以及算法来获取各个标定物的像素坐标,还可以通过人工的方式来获得各个标定物的像素坐标,即通过人工的方式去执行上述识别、定义像素坐标系以及获取像素坐标的过程。或者部分过程由人工来进行,部分过程通过计算机来进行,以平衡获取像素坐标的精度以及效率,这里不做限定。
91.步骤s33:根据空间坐标和像素坐标建立相机对应的投影矩阵。
92.本技术实施方式中,该投影矩阵即为上述建立的空间坐标系与相机坐标系之间的转换矩阵,包含了空间坐标系与相机坐标系之间的转换关系,即为相机的外部参数。建立高精度的投影矩阵过程,即找出空间坐标系与相机坐标系之间高精度的转换关系的过程,在上述各个标定物的空间坐标准确无误的情况先,该过程可以理解为首先对相机进行标定。
93.其中,为了确保投影矩阵的精度,可以从不同的角度去拍摄标定区域,获得多个角度下的投影矩阵,最终根据多个投影矩阵获得高精度的投影矩阵。例如,通过不同角度的待标定图像获得不同角度下标定物的像素坐标,再利用不同角度下标定物的像素坐标与标定物的空间坐标,即可获得多个投影矩阵,最终通过多个投影矩阵进行误差的消除,以获得高精度的投影矩阵。
94.其中,上述根据空间坐标和像素坐标建立投影矩阵的算法包括pnp算法(pnp,perspective-n-point,多点透视)、最小二乘法以及矩阵方程法等,这里不做限定。
95.步骤s34:通过雷达采集标定区域对应的雷达数据,得到标定物各自对应的雷达坐标。
96.本技术实施方式中,步骤s34的通过雷达采集标定区域对应的雷达数据的过程,可以与相机获取标定区域的待标定图像同步进行。即考虑到利用相机即雷达采集标定区域的相关数据时,需要更换不同的角度,这时候采集雷达数据以及获取待标定图像的过程可以同时进行。
97.其中,该雷达包括毫米波雷达,得到的标定物对应的雷达坐标为雷达坐标系上xy平面的坐标,该xy平面中,y轴的方向为毫米波雷达前方方向。
98.步骤s35:根据投影矩阵、空间坐标以及雷达坐标,标定相机与雷达之间的目标位姿关系,目标位姿关系包括横滚维度的位姿关系。
99.本技术实施方式中,由上述获取投影矩阵以及空间坐标步骤可知,投影矩阵为相机的外部参数,因此包括有相机的所有位姿信息,而雷达坐标则包括有雷达的位姿信息,因此根据投影矩阵、空间坐标以及雷达坐标去标定目标位姿关系时,该目标位姿关系包括有相机与雷达之间所有的相对位姿关系,即包括横滚维度的位姿关系,以及还包括有俯仰角维度等多维度的位姿关系。因此通过上述步骤进行相机和雷达之间位姿的标定,可同时标定两者之间包括横滚维度以及俯仰角维度等多维度的位姿关系,从而在后续使用相机协同雷达去测量几何数据时,该目标位姿关系可作为高精度的测量初始参数,从而提高相机协同雷达进行几何数据测量的精度。
100.示例性地,如图5所示,为本技术提供的一种标定目标位姿关系的流程示意图,即为上述步骤s35的其中一种实施方式,具体包括以下步骤:
101.步骤s51:根据投影矩阵确定相机坐标系在多个采集视角下分别对应的初始相机位姿数据;初始相机位姿数据包括旋转矩阵和平移向量。
102.本技术实施方式中,上述初始相机位姿数据即可用于描述相机在空间中的位置,以及相机的朝向。而由上述内容可知,该投影矩阵包含了空间坐标系与相机坐标系之间的转换关系,即为相机的外部参数,因此根据投影矩阵即可获得相应采集视角下的初始相机位姿数据。而该初始相机位姿数据可以通过旋转矩阵和平移向量来表示。
103.其中,获取上述初始相机位姿数据的算式包括:
104.p
ci
=[r
ci
|t
ci
];
[0105]
式中,p
ci
为第i个采集视角下的投影矩阵,k为相机的内参,r
ci
第i个采集视角下的旋转矩阵,t
ci
第i个采集视角下的平移向量。即在已知相机的内参k的情况下,在获得当前采集视角的投影矩阵后通过内参k即可换算出相应采集视角的旋转矩阵和平移向量。其中,该内参k可以为相机出厂时已知的参数,或者通过张正友标定方法获得。即可以通过上式,根据获得的投影矩阵以及相机的内参,计算出旋转矩阵和平移向量,利用该旋转矩阵和平移向量来表示初始相机位姿数据。
[0106]
步骤s52:根据旋转矩阵、平移向量以及空间坐标,计算得到标定物在多个采集视角下分别对应的相机坐标。
[0107]
本技术实施方式中,由上可知初始相机位姿数据即可用于描述相机在空间中的位置,以及相机的朝向,可以通过旋转矩阵和平移向量来表示。因此在获得标定物的空间坐标后,利用该空间坐标、旋转矩阵以及平移向量,即可计算出对应采集视角下标定物的相机坐标。
[0108]
其中,计算上述相机坐标的算式包括:
[0109][0110]
式中,为第i个采集视角下的相机坐标,r
ci
第i个采集视角下的旋转矩阵,t
ci
第i个采集视角下的平移向量,为第i个采集视角下的空间坐标。即在通过上述步骤获得旋
转矩阵和平移向量后,即可通过标定物的空间坐标及上述算式计算出该标定物的相机坐标。
[0111]
步骤s53:基于相机坐标以及雷达坐标,标定相机和雷达之间的目标位姿关系。
[0112]
本技术实施方式中,标定相机和雷达之间的目标位姿关系,即找出相机坐标向雷达坐标转换的换算关系,即可通过计算出相机坐标向雷达坐标进行转换的目标旋转数据及目标平移数据,利用目标旋转数据及目标平移数据作为该目标位姿关系。其中,通过上述步骤将投影矩阵和空间坐标转换为相机坐标再与雷达坐标进行标定,即以相机坐标作为中间过渡的坐标与雷达坐标进行标定,可以降低计算目标位姿关系的运算量,通过简单的线性拟合算法,如线性回归算法即可完成标定过程。并且,后续的相机与雷达协同进行工作时,在相机获取目标物体的相机坐标及雷达获取目标物体的雷达坐标的情况下,可以直接使用目标位姿关系作为初始参数,无需在进行换算,从而提高协同工作的效率。
[0113]
示例性地,如图6所示,为本技术提供的一种计算相机坐标的流程示意图,即为上述步骤s52的其中一种实施方式,具体包括以下步骤:
[0114]
步骤s61:根据旋转矩阵和平移向量,确定多个采集视角各自对应的第一转换关系。
[0115]
本技术实施方式中,确定每个采集时间对应的第一转换关系,即确定上述相机坐标的算式的过程。通过采集视角对应的旋转矩阵以及平移向量,建立该采集视角的相机坐标算式,待空间坐标的输入以计算出该采集视角下的初始相机坐标。
[0116]
步骤s62:根据第一转换关系和空间坐标,计算得到多个采集视角下的初始相机坐标。
[0117]
本技术实施方式中,将空间坐标一一代入上述多个采集视角下的相机坐标算式,即可计算出多个采集视角下初始相机坐标。其中,该初始相机坐标为三维数据。
[0118]
步骤s63:对初始相机坐标进行平面化处理,得到标定物在多个采集视角下分别对应的目标相机坐标。
[0119]
本技术实施方式中,雷达采集的雷达数据为二维平面数据,即为前述雷达坐标系下xy平面的坐标点。而相机坐标系的x轴对应雷达坐标系的x轴,相机坐标系的z轴对应雷达坐标系的y轴,因此在利用相机坐标与雷达坐标计算目标位姿关系前,可以将初始相机坐标的三维数据平面化为二维数据,从而减少运算量,以及避免相机坐标系中y轴的无用点数据对计算目标位姿关系的影响。其中,上述平面化处理包括对初始相机坐标中y轴的点数据直接进行剔除的处理,从而得到目标相机坐标,或者还可以利用初始相机坐标向相机坐标系的xz平面进行投影,从而得到目标相机坐标。
[0120]
示例性地,如图7所示,为本技术提供的一种标定相机与雷达的流程示意图,即为上述步骤s53的其中一种实施方式,具体包括以下步骤:
[0121]
步骤s71:根据多个采集视角下的相机坐标生成相机坐标点集。
[0122]
步骤s72:根据多个采集视角下的雷达坐标生成雷达坐标点集。
[0123]
本技术实施方式中,通过上述可知,相机坐标与雷达坐标之间存在转换关系,即目标旋转数据和目标平移数据,该目标旋转数据和目标平移数据即可包括相机和雷达之间的横滚维度、俯仰角维度以及航偏角维度等多维度的位姿关系,通过目标旋转数据和目标平移数据即可标定目标位姿关系。即相机坐标与雷达坐标之间的转换可通过一下算式表达:
[0124][0125]
式中,为第i个采集视角下平面化处理后的相机坐标,第i个采集视角下的雷达坐标,r
rc
为目标旋转数据,t
rc
为目标平移数据。即通过获得的相机坐标即雷达坐标,求解上述目标旋转数据r
rc
及移参数t
rc
即可完成标定过程。
[0126]
本技术实施方式中,求解目标旋转数据r
rc
及移参数t
rc
前,首先将获取到的所有相机坐标以及雷达坐标,可以生成去中心化的相机坐标点集以及雷达坐标点集其中,该uc为相机坐标点集a的中心点,ur为雷达坐标点集b的中心点。
[0127]
步骤s73:基于相机坐标点集以及雷达坐标点集建立目标转换矩阵。
[0128]
本技术实施方式中,该转换矩阵的算式为h=ab
t
。
[0129]
步骤s74:对目标转换矩阵进行奇异值分解,得到目标旋转数据和目标平移数据。
[0130]
本技术实施方式中,对转换矩阵进行奇异值分解,即h=ab
t
=udv
t
,将转换矩阵h分奇异值分解为三个矩阵u、d和v,最终通过矩阵u和v求得目标旋转数据及目标平移数据,具体算式包括:
[0131]rrc
=v
tut
;
[0132]
t
rc
=-r
rc
ur+uc;
[0133]
步骤s75:根据目标旋转数据和目标平移数据,标定相机和雷达之间的目标位姿关系。
[0134]
示例性地,如图8所示,为本技术提供的一种确定标定物空间坐标的流程示意图,即为上述步骤s32的其中一种实施方式,其中,标定物包括图像标定物及雷达标定物,具体包括以下步骤:
[0135]
步骤s81:获取多个相机标定物各自对应的第一尺寸信息和第一位置信息。
[0136]
本技术实施方式中,上述相机标定物的第一尺寸信息和第一相对位置信息可由进行标定的工作人员进行测量后输入至需要进行标定的机器人中。或者,该相机标定物的第一尺寸信息以及第一相对位置信息为固定信息,并预先存储在机器人中,也即多个相机标定物可组成一套结构固定的标定物装置,在进行机器人的相机与雷达的标定时,直接通过相机与雷达采集标定物装置的数据,以及根据预存的第一尺寸信息和第一相对位置信息来进行后续的标定过程。其中,该多个相机标定物的第一尺寸信息可以一致,即相机标定物的高度等可以一致,这里不做限定。
[0137]
步骤s82:基于第一尺寸信息及第一相对位置信息建立空间坐标系,确定相机标定物在空间坐标系下的第一空间坐标。
[0138]
本技术实施方式中,在获取到多个相机标定物的第一尺寸信息以及第一相对位置信息后,可选取其中一个相机标定物作为原点建立空间坐标系,例如相机标定物为雪糕筒时,可选取其中一个雪糕筒的顶点作为空间坐标系的原点,或者根据第一尺寸信息计算出该雪糕筒的中心点作为原点。
[0139]
步骤s83:获取雷达标定物的第二尺寸信息,以及雷达标定物与相机标定物之间的第二位置信息。
[0140]
步骤s84:根据第二尺寸信息和第二相对位置信息确定雷达标定物在空间坐标系下的第二空间坐标。
[0141]
本技术实施方式中,该第二尺寸信息以及第二相对位置信息同样可由进行标定的工作人员进行测量后输出至需要进行标定的机器人中。或者,该雷达标定物的第二尺寸信息以及该第二相对位置信息同样为固定信息,即该雷达标定物同为上述标定物装置的一部分,结构固定,从而无需再进行雷达标定物尺寸的计算,或者雷达标定物尺寸信息的输入,进一步提高标定的效率,以及可避免雷达标定物尺寸计算所带来的误差对标定精度的影响。
[0142]
示例性地,如图9所示,为本技术提供的一种建立投影矩阵的流程示意图,即为上述步骤s33的其中一种实施方式,具体包括以下步骤:
[0143]
步骤s91:根据空间坐标和像素坐标建立相机对应的初始投影矩阵。
[0144]
本技术实施方式中,该初始投影矩阵即利用标定物的空间坐标以及像素坐标,通过算法初次解算出来的矩阵,并没有经过去误差以及精调的过程。其中,解算初始投影矩阵的算法包括pnp算法(pnp,perspective-n-point,多点透视)、最小二乘法以及矩阵方程法等。
[0145]
步骤s92:基于空间坐标确定相机对应的约束函数。
[0146]
本技术实施方式中,假设根据空间坐标和像素坐标计算输出投影矩阵的过程为一个目标函数,则可以设计该目标函数相应的约束函数,通过该约束函数去限制目标函数的输出,即可以限制投影矩阵的范围,从而提高投影矩阵的精度。其中,由于标定物的空间坐标是固定的,因此可以基于标定物的空间坐标去确定上述约束函数。
[0147]
步骤s93:根据约束函数对初始投影矩阵进行误差处理,得到相机对应的目标投影矩阵。
[0148]
本技术实施方式中,由前述内容可知标定物可以包括多个相机标定物以及多个雷达标定物,初始建立的投影矩阵所用到的空间坐标和像素坐标可以为相机标定物的,在根据上述约束函数进行初始投影矩阵的重投影误差处理时,可以利用雷达标定物的像素坐标。即可以从待标定图像中获取雷达标定物的像素坐标进行投影矩阵的重投影误差处理,以获得目标投影矩阵,并替换初始的投影矩阵。通过对投影矩阵进行重投影误差处理,可以进一步提高投影矩阵的精度,从而提高后续获取目标位姿关系的精度。
[0149]
示例性地,如图10所示,为本技术提供的一种获得目标旋转数据的流程示意图,即为上述步骤s74的其中一种实施方式,具体包括以下步骤:
[0150]
步骤s101:对目标转换矩阵进行奇异值分解,得到初始旋转数据。
[0151]
步骤s102:将初始旋转数据转换为旋转角数据。
[0152]
步骤s103:对旋转角数据进行迭代处理,得到目标旋转数据。
[0153]
本技术实施方式中,上述通过奇异值分解后得到的初始旋转数据,也即初始的旋转矩阵,可能存在不正交的情况,即该初始的旋转矩阵的基底向量可能存在不互相垂直的情况。这时可以将初始旋转数据转换为旋转角数据,例如可以转换为笛卡尔坐标系下的旋转角,再通过迭代法精调该旋转角数据,使该旋转角数据还原为目标旋转数据时,该目标旋转数据达到正交的效果,从而进一步提高标定的精度。
[0154]
另外,设初始旋转数据为r’rc
,在r’rc
不正交时即|r’rc
|=-1。则上述目标旋转数据
可以为
[0155]
请参见图11,为本技术实施方式提供的一种相机坐标系与雷达坐标系的示意图。
[0156]
本技术实施方式中,上述所采用的雷达可以获取目标物体在水平面上的二维坐标即雷达获取目标物体的坐标只有水平面的坐标数据,没有高度数据。因此雷达所检测的目标物体的位置可以出现在一个球面的某个经线上,该球面以雷达为中心,以目标物体到雷达的距离为半径。
[0157]
本技术实施方式中,上述所采用的相机可以获取目标物体的三维坐标而在实际应用中,相机摆放的朝向需要满足横滚角等于0的条件,这样可以确保雷达获取的目标物体的水平面坐标在映射到相机的图像时,生成相机坐标系y轴方向的投影直线段,从而确保雷达与相机之间映射关系的准确性,以及协同工作的精度。而经过上述方案的标定过程后,相机与雷达的标定过程中已经考虑了对横滚维度的标定,即通过上述的相机与雷达之间的旋转数据r
rc
以及平移数据t
rc
考虑了该横滚维度。以下内容是标定完成后,相机与雷达之间协同工作的其中一种应用实例。
[0158]
假设在机器人中设置有相机与雷达,并通过上述方案进行相机与雷达的标定后,为了满足利用相机协同雷达进行目标检测和跟踪算法的需要,还可以在预存有不同目标类型相对于雷达的经验高度h
obj
,该目标类型包括行人以及车辆等,以及还可以标定雷达与相机之间的相对高度差h
rc
,最终建立雷达与相机之间的三维投影关系,以计算出目标物体在相机图像上的像素坐标。假设相机的俯仰角为0时,包括以下算式:
[0159][0160][0161]
式中,k为相机的内参,[x
pixel
,y
pixel
]
t
为目标物体的像素坐标。
[0162]
设相机坐标系为(x
′c,
′y′c,z
′c),设雷达坐标系为(xc,yc,zc),该雷达坐标系的原点与相机坐标系的原点重合,且该雷达坐标系的xz平面为水平面。相机与雷达之间的俯仰角pitch与横滚角roll如图3所示。已通过标定获得俯仰角pitch与横滚角roll的值,则计算目标物体的相机坐标系变换到雷达平面坐标系的算式(1)为:
[0163]
xc=x
′ccos(rl)-y
′csin(rl);
[0164]
vert_xy=x
′csin(roll)+y
′ccos(roll);
[0165]
yc=vert_xy*cos(pitch)+z
′csin(pitch);
[0166]
zc=-vert_xy*sin(pitch)+z
′ccos(pitch);
[0167]
实际中雷达只显示水平面的二维数据,则可获得目标物体由相机坐标系变换到雷达平面坐标系的输出为(xc,zc)。其中,vert_xy为雷达坐标系xy平面上竖直朝向的方向,借助于该vert_xy可以将俯仰角pitch与横滚角roll叠加在一起旋转。
[0168]
计算目标物体的雷达平面坐标系变换到相机坐标系的算式(2)为:
[0169]
yc=h
c-ho;
[0170]z′c=zccos(pitch)+ycsin(pitch);
[0171]
vert_xy=yccos(pitch)-zcsin(pitch);
[0172]
x
′c=vert_xy*sin(rl)+xccos(rl);
[0173]y′c=vert
xy
*cos(rl)-xcsin(rl);
[0174]
式中,hc为相机离地高度,ho为待测目标物体的先验高度。
[0175]
请参见图12,为本技术实施方式提供的一种标定后相机坐标点与雷达坐标点的效果图。图中点a为相机坐标点,点a2为变换后相机坐标点,点b为雷达坐标点。其中,该变换后相机坐标点可根据上述算式(1)获得。可见,在经过本方案的标定方法对相机与雷达进行标定后,可有效降低相机数据与雷达数据之间变换的误差,从而提高相机与雷达协同工作的精度。
[0176]
请参见图13,为本技术实施方式提供的一种标定装置的结构示意图,该标定装置1300包括:
[0177]
图像获取模块1310,用于通过相机获取标定区域对应的待标定图像,标定区域中包括多个标定物;
[0178]
像素坐标确定模块1320,用于确定各个标定物在空间坐标系下的空间坐标,以及在待标定图像所对应的像素坐标;
[0179]
投影矩阵建立模块1330,用于根据空间坐标和像素坐标建立相机对应的投影矩阵;
[0180]
雷达坐标确定模块1340,用于通过雷达采集标定区域对应的雷达数据,得到标定物各自对应的雷达坐标;
[0181]
位姿关系标定模块1350,用于根据投影矩阵、空间坐标以及雷达坐标,标定相机与雷达之间的目标位姿关系,目标位姿关系包括横滚维度的位姿关系。
[0182]
其中,该位姿关系标定模块1150,包括:
[0183]
位姿数据采集单元,用于根据所述投影矩阵确定所述相机坐标系在多个采集视角下分别对应的初始相机位姿数据;所述初始相机位姿数据包括旋转矩阵和平移向量;
[0184]
相机坐标计算单元,用于根据所述旋转矩阵、所述平移向量以及所述空间坐标,计算得到所述标定物在多个所述采集视角下分别对应的相机坐标;
[0185]
目标标定单元,用于基于所述相机坐标以及所述雷达坐标,标定所述相机和所述雷达之间的目标位姿关系。
[0186]
其中,上述相机坐标计算单元,包括:
[0187]
转换关系确定子单元,用于根据所述旋转矩阵和所述平移向量,确定多个所述采集视角各自对应的第一转换关系;
[0188]
相机坐标计算子单元,用于根据所述第一转换关系和所述空间坐标,计算得到多个所述采集视角下的初始相机坐标;
[0189]
平面化处理子单元,用于对所述初始相机坐标进行平面化处理,得到所述标定物在多个所述采集视角下分别对应的目标相机坐标。
[0190]
其中,上述目标标定单元,包括:
[0191]
第一点集获取子单元,用于根据多个采集视角下的所述相机坐标生成相机坐标点集;
[0192]
第二点集获取子单元,用于根据多个采集视角下的所述雷达坐标生成雷达坐标点
集;
[0193]
转换矩阵建立子单元,用于基于所述相机坐标点集以及所述雷达坐标点集建立目标转换矩阵;
[0194]
奇异值分解子单元,用于对所述目标转换矩阵进行奇异值分解,得到目标旋转数据和目标平移数据;
[0195]
目标位姿标定子单元,用于根据所述目标旋转数据和所述目标平移数据,标定所述相机和所述雷达之间的目标位姿关系。
[0196]
其中,上述奇异值分解子单元,包括:
[0197]
旋转数据获取子单元,用于对所述目标转换矩阵进行奇异值分解,得到初始旋转数据;
[0198]
旋转角数据转换子单元,用于将所述初始旋转数据转换为旋转角数据;
[0199]
迭代处理子单元,用于对所述旋转角数据进行迭代处理,得到目标旋转数据。
[0200]
其中,该标定物包括相机标定物和雷达标定物,上述像素坐标确定模块1120,包括:
[0201]
参数信息获取单元,用于获取多个所述相机标定物各自对应的第一尺寸信息和第一位置信息;
[0202]
空间坐标建立单元,用于基于所述第一尺寸信息及所述第一相对位置信息建立空间坐标系,确定所述相机标定物在所述空间坐标系下的第一空间坐标;
[0203]
位置信息获取单元,用于获取所述雷达标定物的第二尺寸信息,以及所述雷达标定物与所述相机标定物之间的第二位置信息;
[0204]
空间坐标获取单元,用于根据所述第二尺寸信息和所述第二相对位置信息确定所述雷达标定物在所述空间坐标系下的第二空间坐标。
[0205]
其中,上述投影矩阵建立模块1130,包括:
[0206]
初始矩阵建立单元,用于根据所述空间坐标和所述像素坐标建立所述相机对应的初始投影矩阵;
[0207]
约束函数确定单元,用于基于所述空间坐标确定所述相机对应的约束函数;
[0208]
目标矩阵获取单元,用于根据所述约束函数对所述初始投影矩阵进行误差处理,得到所述相机对应的目标投影矩阵。
[0209]
本技术实施例中,上述各个模块、单元以及子单元更加详细的功能描述可以参考前述部分相应的内容,在此不再赘述。
[0210]
本技术实施方式还提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,当该计算机程序被处理器执行时,使处理器执行上述的标定方法。上述标定装置各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在存储介质中。
[0211]
本技术实施方式还提供了一种机器人,该机器人包括存储器以及处理器,存储器中存储有计算机程序,当计算机程序被处理器执行时,使处理器实现上述实施方式中的标定方法。
[0212]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序
产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(digital versatile disc,dvd))、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
[0213]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可存储程序代码的介质。在不冲突的情况下,本实施例和实施方案中的技术特征可以任意组合。
[0214]
上面结合附图对本技术实施例作了详细说明,但是本技术不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本技术宗旨的前提下做出各种变化。