发明内容
本发明实施例提供一种定位初始化方法及装置,用以减小用户对设备进行位置初始化的操作难度。
本发明实施例提供的一种定位初始化方法,包括:
获取初始化指令,所述初始化指令是将第一设备的控制器固定在第一设备上的第一位置上之后获取的;根据所述初始化指令,获取第一坐标,所述第一坐标为所述控制器在虚拟坐标系中的初始化坐标,所述第一坐标是所述控制器固定在所述第一位置时,根据所述第一位置与所述第一设备上的第二位置之间的相对位置关系以及所述现实坐标系与所述虚拟坐标系的转换关系确定的,所述现实坐标系是以所述第二位置为坐标原点建立的坐标系;将所述控制器在所述虚拟坐标系中的当前坐标初始化为所述第一坐标。
可选的,根据所述初始化指令,获取第一坐标,包括:根据所述初始化指令,获取所述第一坐标;或者,根据所述初始化指令,获取第二坐标,所述第二坐标为所述控制器固定在所述第一位置时所述控制器在所述现实坐标系中的坐标;根据所述第二坐标和所述转换关系,确定所述第一坐标。
可选的,根据所述第二坐标和所述转换关系,确定所述第一坐标,包括:根据所述第二坐标以及所述第二位置与第三位置的相对位置,确定所述第一坐标;其中,所述第三位置设置在所述第一设备上,且所述虚拟坐标系是以所述第三位置为坐标原点建立的坐标系,所述第二位置与所述第三位置的相对位置根据所述转换关系确定。
可选的,所述控制器上设置有初始化按钮,所述初始化按钮在所述控制器固定在所述第一位置上之后启动,所述初始化指令是在所述初始化按钮启动后获取的。
可选的,所述第一位置处设置有卡扣,所述控制器通过所述卡扣固定在所述第一位置上。
本发明实施例提供的一种定位初始化装置,包括:
第一获取单元,用于所述初始化指令是将第一设备的控制器固定在第一设备的第一位置上之后获取的;
第二获取单元,用于根据所述初始化指令,获取第一坐标,所述第一坐标为所述控制器在虚拟坐标系中的初始化坐标,所述第一坐标是所述控制器固定在所述第一位置时,根据所述第一位置与所述第一设备上的第二位置之间的相对位置关系以及所述现实坐标系与所述虚拟坐标系的转换关系确定的,所述现实坐标系是以所述第二位置为坐标原点建立的坐标系;
初始化单元,用于将所述控制器在所述虚拟坐标系中的当前坐标初始化为所述第一坐标。
可选的,所述第二获取单元具体用于:根据所述初始化指令,获取所述第一坐标。
可选的,所述第二获取单元具体用于:根据所述初始化指令,获取第二坐标,所述第二坐标为所述控制器固定在所述第一位置时所述控制器在所述现实坐标系中的坐标;根据所述第二坐标和所述转换关系,确定所述第一坐标。
可选的,所述第二获取单元用于:
根据所述第二坐标以及所述第二位置与第三位置的相对位置,确定所述第一坐标;其中,所述第三位置设置在所述第一设备上,且所述虚拟坐标系是以所述第三位置为坐标原点建立的坐标系,所述第二位置与所述第三位置的相对位置根据所述转换关系确定。
可选的,所述控制器上设置有初始化按钮,所述初始化按钮在所述控制器固定在所述第一位置上之后启动,所述初始化指令是在所述初始化按钮启动后获取。
可选的,所述第一位置处设置有卡扣,所述控制器通过所述卡扣固定在所述第一设备上。
上述实施例中,将控制器固定在第一设备的第一位置进行定位初始化,并利用第一设备上的第一位置与第二位置之间的相对位置关系以及现实坐标系与虚拟坐标系的转换关系确定第一坐标,第一坐标为控制器在虚拟坐标系中的初始化坐标,将虚拟坐标系中控制器的当前坐标初始化为第一坐标,相对于现有技术,控制器的定位初始化操作简便,并且第一位置和第二位置都在第一设备上,其相对位置关系固定,现实坐标系与虚拟坐标系的转换关系也是固定的,因此,根据第一位置与第二位置之间的相对位置关系以及现实坐标系与虚拟坐标系的转换关系确定第一坐标作为控制器在虚拟坐标系中的初始坐标更为准确,提升了定位初始化的准确度。
具体实施方式
为了使控制器的定位初始化过程简单易操作,并能提升定位初始化精度,本发明实施例提供一种定位初始化方法,该方法应用于第一设备的控制器的定位初始化。
参见图1,第一设备200为VR或AR设备,例如头盔。控制器100为VR或AR设备的辅助设备,例如是方便用户在虚拟场景中互动的手柄。在第一设备200与控制器100在初始化之前,第一设备200和控制器100都为自定位设备,在第一设备200移动时,可以获取第一设备200的当前位置相对于第一设备200的上个位置的位移量和旋转量,控制器100在移动时,可以获取控制器100的当前位置相对于控制器100的上个位置的位移量和旋转量。为了提高控制器100的定位精度,提升用户的沉浸感,在初次使用或者使用一段时间后,需要对控制器100进行定位初始化操作,以便将控制器100相对于第一设备200的初始坐标进行初始化。
以图1为例的定位初始化方法,具体包括:
步骤101,获取初始化指令,初始化指令是将第一设备200的控制器100固定在第一设备200的第一位置a上之后获取的;
可选的,为了便于固定控制器100,第一位置a为第一设备200外表面上的任意位置。
可选的,控制器100上设置有初始化按钮,初始化按钮在控制器100固定在第一位置a上之后启动,初始化指令是在初始化按钮启动后获取的。
可选的,第一位置a处设置有卡扣300,控制器100通过卡扣300固定在第一位置a上。
可选的,通过无线或有线的通信方式接收初始化指令。
步骤102,根据初始化指令,获取第一坐标,第一坐标为控制器100在虚拟坐标系中的初始化坐标,第一坐标是控制器100固定在第一位置a时,根据第一位置a与第一设备200上的第二位置b之间的相对位置关系以及现实坐标系与虚拟坐标系的转换关系确定的,现实坐标系是以第二位置b为坐标原点建立的坐标系;
其中,第二位置b与第一位置a是不同的位置,第二位置b可以设置在第一设备200的表面的任意位置,也可以设置在第一设备200内部的任意位置。
可选的,根据初始化指令,获取预先存储的第一坐标。
可选的,根据初始化指令,获取预先存储的第二坐标,第二坐标为控制器100固定在第一位置a时控制器100在现实坐标系中的坐标;根据第二坐标和上述转换关系,确定第一坐标。
可选的,根据第二坐标和上述转换关系,确定第一坐标,包括:根据第二坐标以及第二位置与第三位置的相对位置,确定第一坐标;其中,第三位置c设置在第一设备200上,且虚拟坐标系是以第三位置c为坐标原点建立的坐标系,第二位置b与第三位置c的相对位置根据转换关系确定。
其中,第三位置c与第一位置a、第二位置b是不同的位置,第三位置c可以设置在第一设备200的表面的任意位置,也可以设置在第一设备200内部的任意位置。
步骤103,将控制器100在虚拟坐标系中的当前坐标初始化为第一坐标。
本申请实施例中,上述方法流程由定位初始化装置执行,定位初始化装置的位置包括但并不限于设置在第一设备200内,初始化装置也可以设置在外部设备中,该外部设备通过无线或有线的方式与第一设备200、控制器100进行通信。
本申请上述实施例中,将控制器100固定在第一设备200的第一位置a进行定位初始化,并利用第一设备200上的第一位置a与第二位置b之间的相对位置关系以及现实坐标系与虚拟坐标系的转换关系确定第一坐标,将虚拟坐标系中控制器100的当前坐标初始化为第一坐标,相对于现有技术,操作简便,并且第一位置a和第二位置b都在第一设备200上,其相对位置关系固定,现实坐标系与虚拟坐标系的转换关系也是固定的,因此,根据第一位置a与第二位置b之间的相对位置关系以及现实坐标系与虚拟坐标系的转换关系确定第一坐标作为控制器100在虚拟坐标系中的初始坐标更为准确,提升了定位初始化的准确度。
下面结合具体示例对本申请提供的定位初始化方法进行详细说明。
本申请实施例提供的第一种示例参见图2,具体的定位初始化过程包括:在进行定位初始化时,将控制器100固定在第一设备200的第一位置a处的卡扣300上,然后按下控制器100上的初始化按钮,控制器100发送初始化指令,以第一设备200为执行定位初始化操作为例,第一设备200接收到初始化指令之后,获取预先存储的第一坐标,将控制器100在虚拟坐标系中的当前坐标初始化为获取的第一坐标。
其中,预先存储的第一坐标通过以下步骤确定:
步骤1:将控制器100固定在第一设备200的第一位置a处的卡扣300上。
步骤2:以第一设备200上的第二位置b为坐标原点建立现实坐标系,根据现实坐标系与虚拟坐标系之间的转换关系,确定第一设备200上的第三位置c,第三位置c为虚拟坐标系的坐标原点,虚拟坐标系的X’轴、Y’轴、Z’轴分别与现实坐标系的X轴、Y轴、Z轴的方向一致,只是坐标原点位置不同。
步骤3:根据第一位置a与第三位置c的相对位置关系,确定在现实坐标系中第一位置a与第三位置c分别沿水平面上的X轴、Y轴方向的距离,以及沿垂直于水平面的Z轴方向的距离。
如图2所示,第一位置a与第三位置c沿Z轴方向的距离为L1,第一位置a与第三位置c沿X轴方向的距离为L2,第一位置a与第三位置c沿Y轴方向的距离为L3。
步骤4:根据第一位置a与控制器100的中心的位置关系,确定控制器100的中心与第一位置a沿Z轴方向的垂直距离;
如图2所示,控制器100的中心与第一位置a沿Z轴方向的垂直距离为L4。
步骤5:确定控制器100的中心相对于第三位置c的距离,控制器100的中心相对于第三位置c分别沿X轴、Y轴、Z轴方向上的距离位为L2,L3,L1+L4。
步骤6:根据控制器100的中心相对于第三位置c的距离,确定第一坐标。
由于第一坐标是指控制器100固定在第一位置a上时,控制器100的中心在虚拟坐标系中的坐标,因此,第一坐标可以标记为:(L2,L3,L1+L4)。
步骤7:将第一坐标预先存储,可以存储在第一设备200中,也可以存储在控制器100中,也可以存储在外部设备中,以便执行定位初始化操作的装置或设备在接收到定位初始化指令后获取。
本申请实施例提供的第二种示例参见图3,具体的定位初始化过程包括:
在进行定位初始化时,将控制器100固定在第一设备200的第一位置a处的卡扣300上,然后按下控制器100上的初始化按钮,控制器100发送初始化指令,以第一设备200为执行定位初始化操作为例,第一设备200接收到初始化指令之后,获取预先存储的第二坐标,根据第二坐标,确定第一坐标。然后将控制器100在虚拟坐标系中的当前坐标初始化为获取的第一坐标。
其中,预先存储的第二坐标通过以下步骤确定:
步骤1:将控制器100固定在第一设备200的第一位置a处的卡扣300上。
步骤2:以第一设备200上的第二位置b为坐标原点建立现实坐标系;
步骤3:根据第一位置a与第二位置b的相对位置关系,确定第一位置a在现实坐标系中的坐标;
如图3所示,第一位置a与第二位置b沿Z轴方向的距离为L1,第一位置a与第二位置b沿X轴方向的距离为2L2,第一位置a与第二位置b沿Y轴方向的距离为L3。因此,第一位置a在现实坐标系中的坐标为(2L2,L3,L1)。
步骤4:根据第一位置a与控制器100的中心的位置关系,确定第二坐标,即控制器100的中心在现实坐标系中的坐标。如图3所示,控制器100的中心与第一位置a沿Z轴方向的垂直距离为L4。因此,控制器100的中心在现实坐标系中的坐标为(2L2,L3,L1+L4)。
步骤5:将第二坐标预先存储,可以存储在第一设备200中,也可以存储在控制器100中,也可以存储在外部设备中,以便执行定位初始化操作的装置或设备在接收到定位初始化指令后获取。
根据第二坐标,确定第一坐标,具体通过以下步骤确定:
根据现实坐标系与虚拟坐标系之间的转换关系,确定第一设备200上的第三位置c,使第三位置c为虚拟坐标系的坐标原点,虚拟坐标系的X轴、Y轴、Z轴分别与现实坐标系的X轴、Y轴、Z轴的方向一致,只是坐标原点位置不同。假如第三位置c位于现实坐标系的X轴上,且第三位置c在现实坐标系中的坐标为(L2,0,0),则根据(L2+L5,L3,L1+L4)和(L5,0,0)之间的相对位置关系,确定的第一坐标为(L2,L3,L1+L4),即控制器100固定在第一位置a上时,控制器100的中心在虚拟坐标系中的坐标为(L2,L3,L1+L4)。
本申请上述实施例中,第一位置a、第二位置b与第三位置c之间的相对位置关系仅为示例,本申请实施例中的第一位置a、第二位置b与第三位置c之间的相对位置关系包括但并不限于上述示例,可以根据实际应用场景合适的确定。
需要说明的是,本申请并不限定控制器的数量,若控制器的数量为2个,例如图4所示,第一设备200的控制器的数量为2个,即控制器100和控制器102,在进行控制器的定位初始化时,控制器100固定在第一位置a处的卡扣300上,另一控制器102固定在第四位置d处的卡扣302上,第二位置b,第三位置c分别是现实坐标系的坐标原点、虚拟坐标系的坐标原点,然后控制器100和控制器102的定位初始化操作参照上述实施例的具体内容,此处不再累述。
基于相同的发明构思,本发明实施例还提供了一种定位初始化装置,该定位初始化装置可以设置在第一设备中,也可以设置在外部设备中,如图5所示,该定位初始化装置500包括:
第一获取单元501,用于初始化指令是将第一设备的控制器固定在第一设备的指定位置上之后获取的;
第二获取单元502,用于根据初始化指令,获取第一坐标,第一坐标为控制器在虚拟坐标系中的初始化坐标,第一坐标是控制器固定在第一位置时,根据第一位置与第一设备上的第二位置之间的相对位置关系以及现实坐标系与虚拟坐标系的转换关系确定的,现实坐标系是以第二位置为坐标原点建立的坐标系;
初始化单元503,用于将控制器在虚拟坐标系中的当前坐标初始化为第一坐标。
可选的,第二获取单元502具体用于:
根据初始化指令,获取第一坐标;或者,
根据初始化指令,获取第二坐标,第二坐标为控制器固定在指定位置时控制器在现实坐标系中的坐标;
根据第二坐标和现实坐标系与虚拟坐标系的转换关系,确定第一坐标。
可选的,第二获取单元502用于:
根据第二坐标以及第二位置与第三位置的相对位置,确定第一坐标;
其中,第三位置设置在第一设备上,且虚拟坐标系是以第三位置为坐标原点建立的坐标系,第二位置与第三位置的相对位置根据转换关系确定。
可选的,控制器上设置有初始化按钮,初始化按钮在控制器固定在第一位置上之后启动,初始化指令是在初始化按钮启动后获取。
可选的,第一位置处设置有卡扣,控制器通过卡扣固定在第一设备上。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。