本申请涉及计算机技术领域,具体涉及控制技术领域,尤其涉及无人搬运车的控制方法和装置。
背景技术:
无人搬运车(automatedguidedvehicle,agv),也称自动导引运输车,指装备有电磁或光学等自动导引装置,能够沿规定的导引路径行驶,具有安全保护以及各种移载功能的运输车。无人搬运车不需要驾驶员,一般可透过电脑来控制其行进路线以及行为。
在实际应用中,无人搬运车需要沿着多条行进路线行驶直至到达目的地。因此,当无人搬运车沿一条行进路线行驶至该行进路线的终点时,就需要控制无人搬运车转向下一条行进路线,并继续行驶。
然而,无人搬运车在行驶过程中经常出现偏离预先设定的行进路线的情况。因此,如何在无人搬运车偏离行进路线的情况下控制无人搬运车在转向的同时消除偏航误差就成为一种高效实用的策略。
技术实现要素:
本申请实施例的目的在于提出一种改进的无人搬运车的控制方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种无人搬运车的控制方法,该方法包括:接收对无人搬运车的转向控制指令,其中,转向控制指令包括无人搬运车的目标位姿信息,位姿信息用于指示无人搬运车的位置和行驶方向;将预先获取的无人搬运车的位姿信息作为初始位姿信息;获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移;基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。
在一些实施例中,无人搬运车包括至少两个驱动轮;以及基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向,包括:基于位置偏移,从至少两个驱动轮中选取出驱动轮作为第一驱动轮,并从至少两个驱动轮中选取出驱动轮作为第二驱动轮,其中,第一驱动轮与第二驱动轮不是同一个驱动轮;控制第一驱动轮转动,以使第一驱动轮的位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半;控制第一驱动轮停止转动,并控制第二驱动轮转动,以使无人搬运车行驶至目标位姿信息所指示的位置;控制第一驱动轮和第二驱动轮等速反向转动,以使无人搬运车原地转动直至达到目标位姿信息所指示的行驶方向。
在一些实施例中,控制第一驱动轮转动,以使第一驱动轮的位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半,包括:执行以下第一控制步骤:控制第一驱动轮转动,并在第一预设时间段后获取无人搬运车的当前位姿信息;基于当前位姿信息和第一驱动轮与第二驱动轮的间距,确定第一驱动轮的当前位置;基于当前位置和目标位姿信息,确定当前位置与目标位姿信息所指示的位置之间的距离;确定当前位置与目标位姿信息所指示的位置之间的距离是否等于第一驱动轮与第二驱动轮的间距的一半;响应于确定当前位置与目标位姿信息所指示的位置之间的距离不等于第一驱动轮与第二驱动轮的间距的一半,继续执行第一控制步骤。
在一些实施例中,控制第一驱动轮停止转动,并控制第二驱动轮转动,以使无人搬运车行驶至目标位姿信息所指示的位置,包括:控制第一驱动轮停止转动;执行以下第二控制步骤:控制第二驱动轮转动,并在第二预设时间段后获取无人搬运车的当前位姿信息;确定当前位姿信息所指示的位置是否是目标位姿信息所指示的位置;响应于确定当前位姿信息所指示的位置不是目标位姿信息所指示的位置,继续执行第二控制步骤。
在一些实施例中,控制第一驱动轮和第二驱动轮等速反向转动,以使无人搬运车原地转动直至达到目标位姿信息所指示的行驶方向,包括:执行以下第三控制步骤:控制第一驱动轮和第二驱动轮等速反向转动,并在第三预设时间段后获取无人搬运车的当前位姿信息;确定当前位姿信息所指示的行驶方向是否是目标位姿信息所指示的行驶方向;响应于确定当前位姿信息所指示的行驶方向不是目标位姿信息所指示的行驶方向,继续执行第三控制步骤。
在一些实施例中,当前位姿信息是通过以下方式获取的:采集无人搬运车当前所经过地面的图像,其中,图像包含无人搬运车当前所经过二维码的图像;对图像和图像中所呈现的二维码进行分析,确定无人搬运车的当前位姿信息。
在一些实施例中,对图像和图像中所呈现的二维码进行分析,确定无人搬运车的当前位姿信息,包括:获取图像中所呈现的二维码所记录的坐标和图像中所呈现的二维码在图像中的位置和角度,其中,二维码用于记录二维码所在位置的坐标;基于所获取的坐标、位置和角度,确定无人搬运车的当前位姿信息。
第二方面,本申请实施例提供了一种无人搬运车的控制装置,该装置包括:接收单元,配置用于接收对无人搬运车的转向控制指令,其中,转向控制指令包括无人搬运车的目标位姿信息,位姿信息用于指示无人搬运车的位置和行驶方向;设定单元,配置用于将预先获取的无人搬运车的位姿信息作为初始位姿信息;获取单元,配置用于获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移;控制单元,配置用于基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。
在一些实施例中,无人搬运车包括至少两个驱动轮;以及控制单元包括:选取子单元,配置用于基于位置偏移,从至少两个驱动轮中选取出驱动轮作为第一驱动轮,并从至少两个驱动轮中选取出驱动轮作为第二驱动轮,其中,第一驱动轮与第二驱动轮不是同一个驱动轮;第一控制子单元,配置用于控制第一驱动轮转动,以使第一驱动轮的位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半;第二控制子单元,配置用于控制第一驱动轮停止转动,并控制第二驱动轮转动,以使无人搬运车行驶至目标位姿信息所指示的位置;第三控制子单元,配置用于控制第一驱动轮和第二驱动轮等速反向转动,以使无人搬运车原地转动直至达到目标位姿信息所指示的行驶方向。
在一些实施例中,第一控制子单元进一步配置用于:执行以下第一控制步骤:控制第一驱动轮转动,并在第一预设时间段后获取无人搬运车的当前位姿信息;基于当前位姿信息和第一驱动轮与第二驱动轮的间距,确定第一驱动轮的当前位置;基于当前位置和目标位姿信息,确定当前位置与目标位姿信息所指示的位置之间的距离;确定当前位置与目标位姿信息所指示的位置之间的距离是否等于第一驱动轮与第二驱动轮的间距的一半;响应于确定当前位置与目标位姿信息所指示的位置之间的距离不等于第一驱动轮与第二驱动轮的间距的一半,继续执行第一控制步骤。
在一些实施例中,第二控制子单元进一步配置用于:控制第一驱动轮停止转动;执行以下第二控制步骤:控制第二驱动轮转动,并在第二预设时间段后获取无人搬运车的当前位姿信息;确定当前位姿信息所指示的位置是否是目标位姿信息所指示的位置;响应于确定当前位姿信息所指示的位置不是目标位姿信息所指示的位置,继续执行第二控制步骤。
在一些实施例中,第三控制子单元进一步配置用于:执行以下第三控制步骤:控制第一驱动轮和第二驱动轮等速反向转动,并在第三预设时间段后获取无人搬运车的当前位姿信息;确定当前位姿信息所指示的行驶方向是否是目标位姿信息所指示的行驶方向;响应于确定当前位姿信息所指示的行驶方向不是目标位姿信息所指示的行驶方向,继续执行第三控制步骤。
在一些实施例中,当前位姿信息是通过以下模块获取的:采集模块,配置用于采集无人搬运车当前所经过地面的图像,其中,图像包含无人搬运车当前所经过二维码的图像;分析模块,配置用于对图像和图像中所呈现的二维码进行分析,确定无人搬运车的当前位姿信息。
在一些实施例中,分析模块包括:获取子模块,配置用于获取图像中所呈现的二维码所记录的坐标和图像中所呈现的二维码在图像中的位置和角度,其中,二维码用于记录二维码所在位置的坐标;确定子模块,配置用于基于所获取的坐标、位置和角度,确定无人搬运车的当前位姿信息。
第三方面,本申请实施例提供了一种车载智能设备,该车载智能设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本申请实施例提供的无人搬运车的控制方法和装置,在接收到对无人搬运车的转向控制指令的情况下,首先,将预先获取的无人搬运车的位姿信息作为初始位姿信息;然后,获取转向控制指令中的目标位姿信息与初始位姿信息之间的位置偏移和角度偏移;最后,基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。从而实现了在无人搬运车偏离行进路线的情况下控制无人搬运车在转向的同时消除偏航误差并行驶到下一条行进路线上。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的无人搬运车的控制方法的一个实施例的流程图;
图3是根据本申请的无人搬运车的示例性驱动轮分布图;
图4是根据本申请的无人搬运车的控制方法的一个应用场景的示意图;
图5是根据本申请的无人搬运车的控制方法的又一个实施例的流程图;
图6是对图5的流程图中的控制第一驱动轮转动步骤的分解流程图;
图7是对图5的流程图中的控制第二驱动轮转动步骤的分解流程图;
图8是对图5的流程图中的控制第一驱动轮和第二驱动轮等速反向转动步骤的分解流程图;
图9是根据本申请的无人搬运车的控制装置的一个实施例的结构示意图;
图10是适于用来实现本申请实施例的车载智能设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的无人搬运车的控制方法或无人搬运车的控制装置的示例性系统架构100。
如图1所示,系统架构100可以包括无人搬运车101、网络102和对无人搬运车101提供支持的服务器103。无人搬运车101中可以设置有车载智能设备104。网络102用以在车载智能设备104和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
车载智能设备104上安装有无人搬运车101的控制系统,其可以对无人搬运车101的运动方式进行控制(例如转向控制、直行控制等)。车载智能设备104也可以通过网络102与服务器103交互,以接收控制指令(例如转向控制指令)等信息。
无人搬运车101还可以安装有其他设备,例如,用于拍摄地面图像的拍摄装置、用于检测地面图像上的二维码的二维码传感器、用于驱动无人搬运车前进、后退或转向的驱动轮等等。
服务器103可以是提供各种服务的服务器,例如对无人搬运车101进行管理并分配任务的管理服务器,管理服务器可以向车载智能设备104发送转向控制指令等信息,以使车载智能设备104对无人搬运车101进行控制。
需要指出的是,转向控制指令也可以在无人搬运车101所安装的二维码传感器检测到某一信息时自动触发,此时,系统架构100可以不设置网络102和服务器103。
需要说明的是,本申请实施例所提供的无人搬运车的控制方法一般由车载智能设备104执行,相应地,无人搬运车的控制装置一般设置于车载智能设备104中。
应该理解,图1中的无人搬运车、车载智能设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的无人搬运车、车载智能设备、网络和服务器。
继续参考图2,其示出了根据本申请的无人搬运车的控制方法的一个实施例的流程200。该无人搬运车的控制方法,包括以下步骤:
步骤201,接收对无人搬运车的转向控制指令。
在本实施例中,无人搬运车的控制方法运行于其上的电子设备(例如图1所示的车载智能设备104)可以通过有线连接方式或者无线连接方式从服务器(例如图1所示的服务器103)接收对无人搬运车(例如图1所示的无人搬运车101)的转向控制指令。其中,转向控制指令可以包括无人搬运车的目标位姿信息。位姿信息可以用于指示无人搬运车的位置和行驶方向。目标位姿信息可以用于指示无人搬运车的目标位置和目标行驶方向。例如,位姿信息可以包括无人搬运车在预设坐标系中的坐标和无人搬运车偏离行进路线的角度。这里,预设坐标系可以是以地面为平面、以无人搬运车的当前行进路线与下一条行进路线之间的交点为原点、以无人搬运车的当前行进路线为x轴(即横轴)、以x轴逆时针旋转90°的方向为y轴(即纵轴)而预先建立的直角坐标系。通常,无人搬运车需要沿着多条行进路线行驶直至到达目的地,每条行进路线均为直线。作为示例,若无人搬运车需要顺时针转动90度从当前行进路线的终点进入下一条行进路线的起点,则在预设坐标系中,目标位姿信息所指示的位置的坐标为(x0,y0),目标位姿信息所指示的行驶方向与x轴正方向(当前行进路线)之间的夹角为θ0,无人搬运车的目标位姿信息为(x0,y0,θ0)。其中,x0=0,y0=0,θ0=-90。
需要指出的是,电子设备还可以在无人搬运车沿当前行进路线行驶过程中周期性地获取无人搬运车的位姿信息。若所获取的位姿信息指示无人搬运车已经偏离了当前行进路线(例如所获取的位姿信息所指示的位置不在当前行进路线上),并且所获取的位姿信息所指示的位置与目标位姿信息所指示的位置之间的距离小于预设阈值,则控制无人搬运车停止行驶,此时也可以认为电子设备接收到了转向控制指令,并自动触发对无人搬运车的控制。
步骤202,将预先获取的无人搬运车的位姿信息作为初始位姿信息。
在本实施例中,电子设备可以将预先获取的无人搬运车的位姿信息作为初始位姿信息。其中,初始位姿信息可以用于指示无人搬运车的初始位置和初始行驶方向。这里,在电子设备接收到转向控制指令之前,无人搬运车可以处于静止状态。电子设备可以预先获取无人搬运车静止时的位姿信息,并将其作为初始位姿信息。作为示例,当无人搬运车静止时,电子设备可以首先获取预设坐标系中无人搬运车静止时所在位置的坐标(x1,y1),并获取预设坐标系中无人搬运车的当前行驶方向与x轴正方向之间的夹角θ1;然后将(x1,y1,θ1)作为无人搬运车的初始位姿信息。
步骤203,获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移。
在本实施例中,基于步骤201中的目标位姿信息和步骤202中的初始位姿信息,电子设备可以获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移。
在本实施例的一些可选的实现方式中,在预设坐标系中,若目标位姿信息为(x0,y0,θ0),初始位姿信息为(x1,y1,θ1),则电子设备可以通过如下公式获取目标位姿信息(x0,y0,θ0)与初始位姿信息(x1,y1,θ1)之间的位置偏移δs和角度偏移δθ;
其中,x0为目标位姿信息(x0,y0,θ0)所指示的位置在x轴方向上的横坐标,y0为目标位姿信息(x0,y0,θ0)所指示的位置在y轴方向上的纵坐标,θ0为目标位姿信息(x0,y0,θ0)所指示的行驶方向与x轴正方向之间的夹角,x1为初始位姿信息(x1,y1,θ1)所指示的位置在x轴方向上的横坐标,y1为初始位姿信息(x1,y1,θ1)所指示的位置在y轴方向上的纵坐标,θ1为初始位姿信息(x1,y1,θ1)所指示的行驶方向与x轴正方向之间的夹角。
步骤204,基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。
在本实施例中,基于步骤203中所获取的位置偏移和角度偏移,电子设备可以控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。
在本实施例中,无人搬运车通常可以包括至少两个驱动轮,以双驱动轮无人搬运车为例,其底盘驱动轮分布可以如图3所示,无人搬运车底盘301上设置有两个驱动轮3021、3022和四个从动万向轮3031、3032、3033、3034。其中,驱动轮3021为左驱动轮,用于驱动从动万向轮3031、3032。驱动轮3022为右驱动轮,用于驱动从动万向轮3033、3034。这里,无人搬运车可以采用差动控制,即直行时左驱动轮和右驱动轮的速度大小相同,转动方向相同,原地转向时左驱动轮和右驱动轮的速度大小相同,转动方向相反。
在本实施例中,电子设备可以通过多种方式控制无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。
在本实施例的一些可选的实现方式中,电子设备可以首先控制无人搬运车的两个驱动轮等速反向转动,直至无人搬运车的行驶方向由初始位姿信息所指示的位置指向目标位姿信息所指示的位置为止;然后控制无人搬运车的两个驱动轮等速同向转动,以使无人搬运车从初始位姿信息所指示的位置直行至目标位姿信息所指示的位置;最后控制无人搬运车的两个驱动轮等速反向转动,直至无人搬运车的行驶方向达到目标位姿信息所指示的行驶方向为止。
继续参见图4,图4是根据本实施例的无人搬运车的控制方法的应用场景的一个示意图。在图4的应用场景中,首先,无人搬运车401的车载智能设备402接收对无人搬运车401的转向控制指令403,其中,转向控制指令403可以包括无人搬运车401的目标位姿信息404;之后,车载智能设备402将预先获取的无人搬运车401的位姿信息作为初始位姿信息405;然后,车载智能设备402获取目标位姿信息404与初始位姿信息405之间的位置偏移406和角度偏移407;最后,车载智能设备402基于位置偏移406和角度偏移407,控制无人搬运车401的驱动轮转动,以使无人搬运车401由初始位姿信息405所指示的位置和行驶方向行驶直至达到目标位姿信息404所指示的位置和行驶方向。
本申请实施例提供的无人搬运车的控制方法,在接收到对无人搬运车的转向控制指令的情况下,首先,将预先获取的无人搬运车的位姿信息作为初始位姿信息;然后,获取转向控制指令中的目标位姿信息与初始位姿信息之间的位置偏移和角度偏移;最后,基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。从而实现了在无人搬运车偏离行进路线的情况下控制无人搬运车在转向的同时消除偏航误差并行驶到下一条行进路线上。
进一步参考图5,其示出了无人搬运车的控制方法的又一个实施例的流程500。该无人搬运车的控制方法的流程500,包括以下步骤:
步骤501,接收对无人搬运车的转向控制指令。
在本实施例中,无人搬运车的控制方法运行于其上的电子设备(例如图1所示的车载智能设备104)可以通过有线连接方式或者无线连接方式从服务器(例如图1所示的服务器103)接收对无人搬运车(例如图1所示的无人搬运车101)的转向控制指令。其中,转向控制指令可以包括无人搬运车的目标位姿信息。位姿信息可以用于指示无人搬运车的位置和行驶方向。目标位姿信息可以用于指示无人搬运车的目标位置和目标行驶方向。例如,位姿信息可以包括无人搬运车在预设坐标系中的坐标和无人搬运车偏离行进路线的角度。这里,预设坐标系可以是以地面为平面、以无人搬运车的当前行进路线与下一条行进路线之间的交点为原点、以无人搬运车的当前行进路线为x轴(即横轴)、以x轴逆时针旋转90°的方向为y轴(即纵轴)而预先建立的直角坐标系。通常,无人搬运车需要沿着多条行进路线行驶直至到达目的地,每条行进路线均为直线。作为示例,若无人搬运车需要顺时针转动90度从当前行进路线的终点进入下一条行进路线的起点,则在预设坐标系中,目标位姿信息所指示的位置的坐标为(x0,y0),目标位姿信息所指示的行驶方向与x轴正方向(当前行进路线)之间的夹角为θ0,无人搬运车的目标位姿信息为(x0,y0,θ0)。其中,x0=0,y0=0,θ0=-90。
步骤502,将预先获取的无人搬运车的位姿信息作为初始位姿信息。
在本实施例中,电子设备可以将预先获取的无人搬运车的位姿信息作为初始位姿信息。其中,初始位姿信息可以用于指示无人搬运车的初始位置和初始行驶方向。这里,在电子设备接收到转向控制指令之前,无人搬运车可以处于静止状态。电子设备可以预先获取无人搬运车静止时的位姿信息,并将其作为初始位姿信息。作为示例,当无人搬运车静止时,电子设备可以首先获取预设坐标系中无人搬运车静止时所在位置的坐标(x1,y1),并获取预设坐标系中无人搬运车的当前行驶方向与x轴正方向之间的夹角θ1;然后将(x1,y1,θ1)作为无人搬运车的初始位姿信息。
步骤503,获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移。
在本实施例中,基于步骤501中的目标位姿信息和步骤502中的初始位姿信息,电子设备可以获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移。
步骤504,基于位置偏移,从至少两个驱动轮中选取出驱动轮作为第一驱动轮,并从至少两个驱动轮中选取出驱动轮作为第二驱动轮。
在本实施例中,基于步骤503中所获取的位置偏移,电子设备可以从至少两个驱动轮中选取出驱动轮作为第一驱动轮,并从至少两个驱动轮中选取出驱动轮作为第二驱动轮。其中,第一驱动轮与第二驱动轮不是同一个驱动轮。
在本实施例中,无人搬运车可以包括至少两个驱动轮,以双驱动轮无人搬运车(具体可参见图3)为例。在预设坐标系中,目标位姿信息为(x0,y0,θ0),初始位姿信息为(x1,y1,θ1),若y1大于y0,则左驱动轮为第一驱动轮,右驱动轮为第二驱动轮;若y1不大于y0,则右驱动轮为第一驱动轮,左驱动轮为第二驱动轮。
步骤505,控制第一驱动轮转动,以使第一驱动轮的位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半。
在本实施例中,电子设备可以控制第一驱动轮转动,以使第一驱动轮的位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半。作为示例,若初始位姿信息为(0.01,-0.05,2.86),目标位姿信息为(0,0,-90),则电子设备可以控制右驱动轮转动(此时左驱动轮不动),以使无人搬运车顺时针转动直至右驱动轮的位置与目标位姿信息(0,0,-90)所指示的位置(该位置的坐标为(0,0))之间的距离等于第一驱动轮与第二驱动轮的间距的一半为止。
步骤506,控制第一驱动轮停止转动,并控制第二驱动轮转动,以使无人搬运车行驶至目标位姿信息所指示的位置。
在本实施例中,当第一驱动轮的位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半时,电子设备可以控制第一驱动轮停止转动,并控制第二驱动轮转动,以使无人搬运车行驶至目标位姿信息所指示的位置。作为示例,若初始位姿信息为(0.01,-0.05,2.86),目标位姿信息为(0,0,-90),当右驱动轮的位置与目标位姿信息(0,0,-90)所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半时,电子设备可以控制右驱动轮停止转动,并控制左驱动轮转动,以使无人搬运车顺时针转动直至无人搬运车行驶至目标位姿信息(0,0,-90)所指示的位置为止。
步骤507,控制第一驱动轮和第二驱动轮等速反向转动,以使无人搬运车原地转动直至达到目标位姿信息所指示的行驶方向。
在本实施例中,当无人搬运车行驶至目标位姿信息所指示的位置时,电子设备可以控制第一驱动轮和第二驱动轮等速反向转动,以使无人搬运车原地转动直至达到目标位姿信息所指示的行驶方向。作为示例,若初始位姿信息为(0.01,-0.05,2.86),目标位姿信息为(0,0,-90),当无人搬运车行驶至目标位姿信息(0,0,-90)所指示的位置时,电子设备可以控制左驱动轮和右驱动轮等速反向转动,以使无人搬运车顺时针原地转动直至无人搬运车达到目标位姿信息(0,0,-90)所指示的行驶方向(该行驶方向与x轴正方向之间的夹角等于-90度)为止。
从图5中可以看出,与图2对应的实施例相比,本实施例中的无人搬运车的控制方法的流程500突出对无人搬运车的控制步骤。由此,本实施例描述的方案中将对无人搬运车的控制过程划分为三个阶段,并且每个阶段中无人搬运车的运动范围均较小,实现在无人搬运机器人偏离行进路线的情况下控制无人搬运车转向并行驶到下一条行进路线上的同时,还避免了控制过程中与相邻行进路线上的无人搬运车发生剐蹭。
进一步参考图6,其示出了对图5的流程图中的控制第一驱动轮转动步骤的分解流程600。在图6中,将控制第一驱动轮转动步骤分解成如下的5个子步骤,即:步骤601、步骤602、步骤603、步骤604和步骤605。
步骤601,控制第一驱动轮转动,并在第一预设时间段后获取无人搬运车的当前位姿信息。
在本实施例中,电子设备(例如图1所示的车载智能设备104)可以控制第一驱动轮转动,并在第一预设时间段后获取无人搬运车的当前位姿信息。其中,当前位姿信息用于指示无人搬运车的当前位置和当前行驶方向。
步骤602,基于当前位姿信息和第一驱动轮与第二驱动轮的间距,确定第一驱动轮的当前位置。
在本实施例中,基于第一驱动轮与第二驱动轮的间距和步骤601中所获取的当前位姿信息,电子设备可以确定出第一驱动轮的当前位置。
在本实施例的一些可选的实现方式中,在预设坐标系中,若当前位姿信息为(x2,y2,θ2),且第一驱动轮是左驱动轮,电子设备可以通过如下公式获取左驱动轮(即第一驱动轮)的当前位置:
其中,x2为当前位姿信息(x2,y2,θ2)所指示的位置在x轴方向上的横坐标,y2为当前位姿信息(x2,y2,θ2)所指示的位置在y轴方向上的纵坐标,θ2为当前位姿信息(x2,y2,θ2)所指示的行驶方向与x轴正方向之间的夹角,sinθ2为θ2的正弦值,cosθ2为θ2的余弦值,l为第一驱动轮与第二驱动轮的间距,xl为左驱动轮的当前位置在x轴方向上的横坐标,yl为左驱动轮的当前位置在y轴方向上的纵坐标,(xl,yl)为左驱动轮的当前位置的坐标。
在本实施例的一些可选的实现方式中,在预设坐标系中,若当前位姿信息为(x2,y2,θ2),且第一驱动轮是右驱动轮,电子设备可以通过如下公式获取右驱动轮(即第一驱动轮)的当前位置:
其中,x2为当前位姿信息(x2,y2,θ2)所指示的位置在x轴方向上的横坐标,y2为当前位姿信息(x2,y2,θ2)所指示的位置在y轴方向上的纵坐标,θ2为当前位姿信息(x2,y2,θ2)所指示的行驶方向与x轴正方向之间的夹角,sinθ2为θ2的正弦值,cosθ2为θ2的余弦值,l为第一驱动轮与第二驱动轮的间距,xr为右驱动轮的当前位置在x轴方向上的横坐标,yr为右驱动轮的当前位置在y轴方向上的纵坐标,(xr,yr)为右驱动轮的当前位置的坐标。
步骤603,基于当前位置和目标位姿信息,确定当前位置与目标位姿信息所指示的位置之间的距离。
在本实施例中,基于目标位姿信息和步骤602中所确定的第一驱动轮的当前位置,电子设备可以确定第一驱动轮的当前位置与目标位置信息所指示的位置之间的距离。这里,电子设备可以利用两点间距离公式计算第一驱动轮的当前位置与目标位置信息所指示的位置之间的距离,在此不再赘述。
步骤604,确定当前位置与目标位姿信息所指示的位置之间的距离是否等于第一驱动轮与第二驱动轮的间距的一半。
在本实施例中,电子设备可以确定第一驱动轮的当前位置与目标位姿信息所指示的位置之间的距离是否等于第一驱动轮与第二驱动轮的间距的一半,若第一驱动轮的当前位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半,则继续执行步骤605;若第一驱动轮的当前位置与目标位姿信息所指示的位置之间的距离不等于第一驱动轮与第二驱动轮的间距的一半,则返回执行步骤601,直到第一驱动轮的当前位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半为止。
步骤605,结束。
进一步参考图7,其示出了对图5的流程图中的控制第二驱动轮转动步骤的分解流程700。在图7中,将控制第二驱动轮转动步骤分解成如下的4个子步骤,即:步骤701、步骤702、步骤703和步骤704。
步骤701,控制第一驱动轮停止转动。
在本实施例中,当第一驱动轮的当前位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半时,电子设备(例如图1所示的车载智能设备104)可以控制第一驱动轮停止转动。
步骤702,控制第二驱动轮转动,并在第二预设时间段后获取无人搬运车的当前位姿信息。
在本实施例中,电子设备可以控制第二驱动轮转动,并在第二预设时间段后获取无人搬运车的当前位姿信息。其中,当前位姿信息用于指示无人搬运车的当前位置和当前行驶方向。
步骤703,确定当前位姿信息所指示的位置是否是目标位姿信息所指示的位置。
在本实施例中,基于步骤702中所获取的当前位姿信息,电子设备可以确定当前位姿信息所指示的位置是否是目标位姿信息所指示的位置,若当前位姿信息所指示的位置是目标位姿信息所指示的位置,则继续执行步骤704;若当前位姿信息所指示的位置不是目标位姿信息所指示的位置,则返回执行步骤702,直至当前位姿信息所指示的位置是目标位姿信息所指示的位置为止。
步骤704,结束。
进一步参考图8,其示出了对图5的流程图中的控制第一驱动轮和第二驱动轮等速反向转动步骤的分解流程800。在图8中,将控制第一驱动轮和第二驱动轮等速反向转动步骤分解成如下的3个子步骤,即:步骤801、步骤802和步骤803。
步骤801,控制第一驱动轮和第二驱动轮等速反向转动,并在第三预设时间段后获取无人搬运车的当前位姿信息。
在本实施例中,当无人搬运车的当前位姿信息所指示的位置是目标位姿信息所指示的位置时,电子设备(例如图1所示的车载智能设备104)可以控制第一驱动轮和第二驱动轮等速反向转动,并在第三预设时间段后获取无人搬运车的当前位姿信息。其中,当前位姿信息用于指示无人搬运车的当前位置和当前行驶方向。
步骤802,确定当前位姿信息所指示的行驶方向是否是目标位姿信息所指示的行驶方向。
在本实施例中,基于步骤801中所获取的无人搬运车的当前位姿信息,电子设备可以确定当前位姿信息所指示的行驶方向是否是目标位姿信息所指示的行驶方向,若当前位姿信息所指示的行驶方向是目标位姿信息所指示的行驶方向,则继续执行步骤803;若当前位姿信息所指示的行驶方向不是目标位姿信息所指示的行驶方向,则返回执行步骤801,直至当前位姿信息所指示的行驶方向是目标位姿信息所指示的行驶方向为止。
步骤803,结束。
在图6-8所示的实施例中,电子设备可以通过多种方式获取无人搬运车的当前位姿信息。
在一些可选的实现方式中,电子设备可以通过如下公式获取无人搬运车的当前位姿信息(x2,y2,θ2):
其中,x1为初始位姿信息(x1,y1,θ1)所指示的位置在x轴方向上的横坐标,y1为初始位姿信息(x1,y1,θ1)所指示的位置在y轴方向上的纵坐标,θ1为初始位姿信息(x1,y1,θ1)所指示的行驶方向与x轴正方向之间的夹角,sinθ1为θ1的正弦值,cosθ1为θ1的余弦值,δsl为左驱动轮的行驶距离,δsr为右驱动轮的行驶距离,x2为当前位姿信息(x2,y2,θ2)所指示的位置在x轴方向上的横坐标,y2为当前位姿信息(x2,y2,θ2)所指示的位置在y轴方向上的纵坐标,θ2为当前位姿信息(x2,y2,θ2)所指示的行驶方向与x轴正方向之间的夹角,sinθ2为θ2的正弦值,cosθ2为θ2的余弦值,l为第一驱动轮与第二驱动轮的间距。这里,δsr和δsl可以通过无人搬运车上安装的光码盘反馈获得。
在一些可选的实现方式中,无人搬运车的行进路线上被预先绘制了多个二维码,相邻两个二维码之间间隔一定的距离。由于在无人搬运车的转向过程中,无人搬运车始终处于同一个二维码的上方,因此电子设备还可以通过如下方式获取无人搬运车的当前位姿信息:首先,采集无人搬运车当前所经过地面的图像;然后,对图像和图像中所呈现的二维码进行分析,确定无人搬运车的当前位姿信息。其中,图像可以包含无人搬运车当前所经过二维码的图像。
在一些可选的实现方式中,无人搬运车的行进路线上被预先绘制了多个二维码,相邻两个二维码之间间隔一定的距离。由于在无人搬运车的转向过程中,无人搬运车始终处于同一个二维码的上方,因此电子设备还可以通过如下方式获取无人搬运车的当前位姿信息:首先,采集无人搬运车当前所经过地面的图像;然后,获取图像中所呈现的二维码所记录的坐标和图像中所呈现的二维码在图像中的位置和角度;最后,基于所获取的坐标、位置和角度,确定无人搬运车的当前位姿信息。其中,图像可以包含无人搬运车当前所经过二维码的图像,二维码可以用于记录二维码所在位置的坐标。
进一步参考图9,作为对上述各图所示方法的实现,本申请提供了一种无人搬运车的控制装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图9所示,本实施例的无人搬运车的控制装置900可以包括:接收单元901、设定单元902、获取单元903和控制单元904。其中,接收单元901,配置用于接收对无人搬运车的转向控制指令,其中,转向控制指令包括无人搬运车的目标位姿信息,位姿信息用于指示无人搬运车的位置和行驶方向;设定单元902,配置用于将预先获取的无人搬运车的位姿信息作为初始位姿信息;获取单元903,配置用于获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移;控制单元904,配置用于基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。
在本实施例中,无人搬运车的控制装置900中:接收单元901、设定单元902、获取单元903和控制单元904的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203和步骤204的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,无人搬运车可以包括至少两个驱动轮;以及控制单元904可以包括:选取子单元(图中未示出),配置用于基于位置偏移,从至少两个驱动轮中选取出驱动轮作为第一驱动轮,并从至少两个驱动轮中选取出驱动轮作为第二驱动轮,其中,第一驱动轮与第二驱动轮不是同一个驱动轮;第一控制子单元(图中未示出),配置用于控制第一驱动轮转动,以使第一驱动轮的位置与目标位姿信息所指示的位置之间的距离等于第一驱动轮与第二驱动轮的间距的一半;第二控制子单元(图中未示出),配置用于控制第一驱动轮停止转动,并控制第二驱动轮转动,以使无人搬运车行驶至目标位姿信息所指示的位置;第三控制子单元(图中未示出),配置用于控制第一驱动轮和第二驱动轮等速反向转动,以使无人搬运车原地转动直至达到目标位姿信息所指示的行驶方向。
在本实施例的一些可选的实现方式中,第一控制子单元(图中未示出)进一步配置用于:执行以下第一控制步骤:控制第一驱动轮转动,并在第一预设时间段后获取无人搬运车的当前位姿信息;基于当前位姿信息和第一驱动轮与第二驱动轮的间距,确定第一驱动轮的当前位置;基于当前位置和目标位姿信息,确定当前位置与目标位姿信息所指示的位置之间的距离;确定当前位置与目标位姿信息所指示的位置之间的距离是否等于第一驱动轮与第二驱动轮的间距的一半;响应于确定当前位置与目标位姿信息所指示的位置之间的距离不等于第一驱动轮与第二驱动轮的间距的一半,继续执行第一控制步骤。
在本实施例的一些可选的实现方式中,第二控制子单元(图中未示出)进一步配置用于:控制第一驱动轮停止转动;执行以下第二控制步骤:控制第二驱动轮转动,并在第二预设时间段后获取无人搬运车的当前位姿信息;确定当前位姿信息所指示的位置是否是目标位姿信息所指示的位置;响应于确定当前位姿信息所指示的位置不是目标位姿信息所指示的位置,继续执行第二控制步骤。
在本实施例的一些可选的实现方式中,第三控制子单元(图中未示出)进一步配置用于:执行以下第三控制步骤:控制第一驱动轮和第二驱动轮等速反向转动,并在第三预设时间段后获取无人搬运车的当前位姿信息;确定当前位姿信息所指示的行驶方向是否是目标位姿信息所指示的行驶方向;响应于确定当前位姿信息所指示的行驶方向不是目标位姿信息所指示的行驶方向,继续执行第三控制步骤。
在本实施例的一些可选的实现方式中,当前位姿信息是通过以下模块获取的:采集模块(图中未示出),配置用于采集无人搬运车当前所经过地面的图像,其中,图像包含无人搬运车当前所经过二维码的图像;分析模块(图中未示出),配置用于对图像和图像中所呈现的二维码进行分析,确定无人搬运车的当前位姿信息。
在本实施例的一些可选的实现方式中,分析模块(图中未示出)可以包括:获取子模块(图中未示出),配置用于获取图像中所呈现的二维码所记录的坐标和图像中所呈现的二维码在图像中的位置和角度,其中,二维码用于记录二维码所在位置的坐标;确定子模块(图中未示出),配置用于基于所获取的坐标、位置和角度,确定无人搬运车的当前位姿信息。
下面参考图10,其示出了适于用来实现本申请实施例的车载智能设备的计算机系统1000的结构示意图。图10示出的车载智能设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(cpu)1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理。在ram1003中,还存储有系统1000操作所需的各种程序和数据。cpu1001、rom1002以及ram1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
以下部件连接至i/o接口1005:包括键盘、鼠标、触摸屏等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(cpu)1001执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、设定单元、获取单元和控制单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收对无人搬运车的转向控制指令的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的车载智能设备中所包含的;也可以是单独存在,而未装配入该车载智能设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该车载智能设备执行时,使得该车载智能设备:接收对无人搬运车的转向控制指令,其中,转向控制指令包括无人搬运车的目标位姿信息,位姿信息用于指示无人搬运车的位置和行驶方向;将预先获取的无人搬运车的位姿信息作为初始位姿信息;获取目标位姿信息与初始位姿信息之间的位置偏移和角度偏移;基于位置偏移和角度偏移,控制无人搬运车的驱动轮转动,以使无人搬运车由初始位姿信息所指示的位置和行驶方向行驶直至达到目标位姿信息所指示的位置和行驶方向。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。