本发明属于机器人领域,尤其涉及一种角度误差检测方法、装置和设备。
背景技术:
机器人是智能工作的机器装置,既可以人为控制其动作,也可以按照预先编排的程序执行动作,还可以按照人工智能技术制定的流程动作。目前,国际上对机器人的研究发展十分迅速;其中,机器人定位系统成为众多机器人技术中非常重要关键技术,其工作质量极大地影响机器人为人类服务的服务质量;例如,机器人按预定路线执行任务时,机器人的精确位置计算(如X轴方向的位置计算,Y轴方向的位置计算,或者旋转方向的位置计算)是关键因素;尤其是,机器人的旋转角度误差对机器人导航来说至关重要。
目前,计算机器人的角度误差的方法之一是使用全球定位系统(Global Positioning System,简称GPS)确定机器人的绝对地理位置,但GPS定位通常在室内的定位精度较低;另一种计算机器人的角度误差的方法是使用编码器,通过在机器人上安装编码器来获取旋转加速度和直接加速度,再通过积分获得旋转速度和直接速度,此方法机器人装配误差、车轮打滑等因素影响较大,计算难度大,计算结果不够精准。
技术实现要素:
鉴于此,本发明提供一种角度误差检测方法、装置和设备,以解决现有技术存在的计算难度大,计算结果不够精准的问题。
第一方面,本发明提供一种角度误差检测方法,应用于机器人,所述机器 人包括驱动装置和转体,由所述驱动装置带动转体转动,所述转体上固定有陀螺仪,所述角度误差检测方法包括:
控制所述机器人按照预设角速度转动,并控制所述驱动装置带动所述转体按照所述预设角速度与所述机器人同步转动,所述机器人的转动方向与所述转体的转动方向相反;
获取所述陀螺仪检测到的第一电压信号,根据所述第一电压信号确定所述机器人转动时是否存在角度误差。
第二方面,本发明提供一种角度误差检测装置,应用于机器人,所述机器人包括驱动装置,由所述驱动装置带动转体转动,所述转体上固定有陀螺仪,所述角度误差检测装置与所述驱动装置和所述陀螺仪连接,所述角度误差检测装置包括:
驱动单元,用于控制所述机器人按照预设角速度转动,并控制所述驱动装置带动所述转体按照所述预设角速度与所述机器人同步转动,所述机器人的转动方向与所述转体的转动方向相反;
角度误差确定单元,用于获取所述陀螺仪检测到的第一电压信号,根据所述第一电压信号确定所述机器人转动时是否存在角度误差。
第三方面,本发明提供一种角度误差检测设备,所述角度误差检测设备包括角度误差检测装置、驱动装置、转体和陀螺仪,所述驱动装置固定于机器人,由所述驱动装置带动转体转动,所述转体上固定有所述陀螺仪,所述角度误差检测装置与所述驱动装置、所述陀螺仪、所述机器人连接;
所述角度误差检测装置,用于控制所述机器人按照预设角速度转动,并控制所述驱动装置带动所述转体按照所述预设角速度与所述机器人同步转动,所述机器人的转动方向与所述转体的转动方向相反;
所述角度误差检测装置,用于获取所述陀螺仪检测到的第一电压信号,根据所述第一电压信号确定所述机器人转动时是否存在角度误差。
本发明与现有技术相比存在的有益效果:本发明在控制转体和机器人同步 反向转动时,可以根据从陀螺仪检测的第一电压信号确定机器人是否存在角度误差,也即根据第一电压信号确定机器人是否相对静止,从而可有效提高计算的精确度。而且本发明不需要复杂的算法计算,检测过程方便易执行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的角度误差检测方法的适用场景的示意图;
图2是本发明实施例提供的角度误差检测方法的一种示意性流程图;
图3是对图2提供的角度误差检测方法的一种可选实现流程图;
图4是本发明实施例提供的控制模块400的一种示意性结构图;
图5是图4提供的控制模块400的一种可选细化示意性结构图;
图6是图5中补偿确定单元403的一种可选细化示意性结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1提供了本发明实施例应用的场景示意图,但仅提供了与本发明相关的部分。
如图1所示,机器人4上面固定一驱动装置3,转体2固定在驱动装置3的转轴上;机器人4向驱动装置3输入驱动信号,驱动装置3会驱动其转轴转动,通过该转轴的转动带动整个转体2转动。
本发明实施例中,转体2是水平放置的,转体2转动时,陀螺仪1在一个水平面上运动。
值得说明的是,该转体2上固定陀螺仪1,通过该陀螺仪1检测角速度。图1中仅示意了陀螺仪1固定在转体2上,但对于将陀螺仪1固定在转体2上的哪个位置,不做限定。另外,对陀螺仪1为哪种类型的陀螺仪不做限定;例如,陀螺仪1包括三个单轴陀螺仪,每个单轴陀螺仪检测一个轴方向的角速度,具体地,第一个单轴陀螺仪检测X轴方向的角速度,第二个单轴陀螺仪检测Y轴方向的角速度,第三个单轴陀螺仪检测Z轴方向的角速度;例如,陀螺仪1包括三轴陀螺仪,三轴陀螺仪同时检测三个轴方向的角速度,包括:检测X轴方向的角速度、检测Y轴方向的角速度、检测Z轴方向的角速度。
另外,机器人4还具有电机,可通过向该电机输入驱动信号,以该驱动信号驱动电机带动机器人动作,该动作包括匀速转动、变速转动、直线运动、曲线运动等等。
值得说明的是,虽图1未示意出角度误差检测装置,但由该角度误差检测装置向机器人4中的电机输出驱动信号来控制电机转动;角度误差检测装置向驱动装置3输出驱动信号来控制驱动装置3的转轴转动,以由该转轴带动转体2转动。
对于该角度误差检测装置,可以是处理器,可以是采用电子器件设计出的具有数据处理能力的处理器芯片实现,例如可编程逻辑器件,可根据用户需求,对该角度误差检测装置进行编程以实现各种各样功能,例如对该角度误差检测装置编程以实现本发明实施例提供的角度误差检测方法。
可选地,该角度误差检测装置采用单片机、ARM处理器、可编程逻辑器件等具有数据处理功能的芯片或电子电路实现。
图2示出了本发明实施例提供的角度误差检测方法的基本流程,但图2仅示出了与本发明实施例相关的部分。
参见图1做相应场景设置,机器人上固定驱动装置,由所述驱动装置带动 转体转动,所述转体上固定有陀螺仪;再基于图1的应用场景,提供了角度误差检测方法,参见图2,所述角度误差检测方法包括:
步骤A201,控制所述机器人按照预设角速度转动,控制所述驱动装置带动所述转体按照所述预设角速度与所述机器人同步转动,所述机器人的转动方向与所述转体的转动方向相反。
具体地,将机器人放置在水平面上,角度误差检测装置向机器人的电机输出第一驱动信号,通过第一驱动信号控制电机驱动机器人按照预设角速度转动;角度误差检测装置向驱动装置输出第二驱动信号,通过第二驱动信号控制驱动装置按照预设角速度转动。
待机器人和转体同步按照预设角速度转动、且机器人的转动方向与转体的转动方向相反时,执行步骤A202。
本实施例中,预设角速度,是预先设定的,可人为设定和/或更改;具体实施时,预先将该预设角速度在角度误差检测装置中设置,需检测角度误差时,根据该预设角速度生成向机器人的电机输出的第一驱动信号,根据该预设角速度生成向驱动装置输出的第二驱动信号,以第一驱动信号驱动机器人按照预设角速度转动的方向与以第二驱动信号驱动转体按照预设角速度转动的方向相反。
步骤A202,获取所述陀螺仪检测到的第一电压信号,根据所述第一电压信号确定所述机器人转动时是否存在角度误差。
具体地,机器人和转体按照预设角速度同步转动、且机器人的转动方向与转体的转动方向相反时,通过陀螺仪检测角速度,尤其是水平面上的角速度,陀螺仪根据在检测角速度时生成第一电压信号;本实施例中,控制模块与陀螺仪连接(例如电性连接,再例如通信连接),角度误差检测装置向机器人的电机输出第一驱动信号、向驱动装置输出第二驱动信号后,角度误差检测装置接收陀螺仪输出的第一电压信号。
继而,控制模块对接收到的第一电压信号进行解析,解析出角速度。机器 人和转体按照预设角速度同步转动、且机器人的转动方向与转体的转动方向相反时,正常情况下,陀螺仪是相对静止的,控制模块从该第一电压信号中解析出的角速度为零,尤其是在水平面上的角速度为零;如果机器人存在角度误差,则陀螺仪是没有达到相对静止、且处于转动状态,控制模块从该第一电压信号中解析出的角速度不为零。这样,本实施例控制机器人和转体按照预设角速度同步朝相反方向转动时,根据陀螺仪输出的第一电压信号确定陀螺仪是否相对静止,如果相对静止,从该第一电压信号中解析出的角速度为零,如果未达到相对静止,从该第一电压信号中解析出的角速度不为零,实现对机器人是否存在角度误差进行检测。
可选地,对机器人存储转动的角度误差,对图2提供的角度误差检测方法做一可选改进,参见图3,所述角度误差检测方法还包括步骤A203。
步骤A203,如果根据所述第一电压信号确定所述机器人转动时存在角度误差,则调整所述机器人转动的角速度,控制所述驱动装置停止带动所述转体转动,获取所述陀螺仪检测到的第二电压信号,将在根据所述第二电压信号确定所述机器人转动的角度误差等于零时调整的角速度作所述机器人转动的补偿角速度。
具体地,步骤A202根据所述第一电压信号确定所述机器人转动时存在角度误差,步骤A203则停止向驱动装置输出驱动信号,驱动装置停止转轴转动,从而驱动装置停止通过转轴带动转体转动;驱动装置停止带动转体转动后,因陀螺仪固定在转体上,驱动装置固定在机器人上,陀螺仪相对于机器人是静止的;陀螺仪相对于机器人是静止后,角度误差检测装置不断调整向所述机器人的电机输出的驱动信号,与此同时,角度误差检测装置持续接收从陀螺仪输出的第二电压信号,根据第二电压信号解析出的角速度为零时,角度误差检测装置确定其向电机输出的驱动信号,并将用于生成该驱动信号的角速度作为补偿角速度;根据驱动信号反得到角速度的原理为:因角度误差检测装置在生成驱动信 号时,会根据期望控制电机转动的角速度生成对应的驱动信号。
可选地,对图3提供的角度误差检测方法做一可选细化,所述方法还包括:
解析所述第二电压信号在立体坐标系中三个坐标轴的电压值,三个坐标轴分别为相互垂直的X轴、Y轴、Z轴,由所述X轴和所述Y轴组成水平面坐标系;
基于解析出的电压值,根据预设算法确定所述角度误差是否等于零;
其中,所述预设算法为:
所述T为所述预设算法的计算结果,i为正整数,N为正整数,所述i小于或等于所述N,所述Xi为第所述i次测得在X轴的电压值,所述X0为所述陀螺仪在X轴的静态基准电压值,所述Yi为第所述i次测得在Y轴的电压值,所述Y0为所述陀螺仪在Y轴的静态基准电压值,所述Zi为第所述i次测得在Z轴的电压值,所述Z0为所述陀螺仪在Z轴的静态基准电压值。
具体地,本实施例建立三维坐标系(即立体坐标系),该立体坐标系中由相互垂直的三轴组成,包括X轴、Y轴、Z轴;其中,由X轴和Y轴构成水平面。
本实施例对于步骤A203从陀螺仪获取的第二电压信号,解析出角速度,包括:该角速度在X轴上的电压值、该角速度在Y轴上的电压值、该角速度在Z轴上的电压值;对于解析出的电压值(包括:该角速度在X轴上的电压值、该角速度在Y轴上的电压值、该角速度在Z轴上的电压值),采用上述的预设算法计算出的所述T为零,则表示根据预设算法确定所述角度误差等于零;采用上述的预设算法计算出的所述T不为零,则表示根据预设算法确定所述角度误差不等于零。
本发明一实施例,图4示出了本发明实施例提供的角度误差检测装置400 的一种优化组成结构,但仅示出了与本发明实施例相关的部分。
参见图4,机器人上固定驱动装置,由所述驱动装置带动转体转动,所述转体上固定有陀螺仪,所述角度误差检测装置400与所述驱动装置、所述陀螺仪、所述机器人连接;所述角度误差检测装置400包括:
驱动单元401,用于控制所述机器人按照预设角速度转动,控制所述驱动装置带动所述转体按照所述预设角速度与所述机器人同步转动,所述机器人的转动方向与所述转体的转动方向相反;
角度误差确定单元402,用于获取所述陀螺仪检测到的第一电压信号,根据所述第一电压信号确定所述机器人转动时是否存在角度误差。
可选地,对图4提供的角度误差检测装置400做一可选细化,参见图5,所述角度误差检测装置400还包括:
补偿确定单元403,用于如果根据所述第一电压信号确定所述机器人转动时存在角度误差,则调整所述机器人转动的角速度,控制所述驱动装置停止带动所述转体转动,获取所述陀螺仪检测到的第二电压信号,将在根据所述第二电压信号确定所述机器人转动的角度误差等于零时调整的角速度作所述机器人转动的补偿角速度。
可选地,对图5提供的角度误差检测装置400中补偿确定单元403做一可选细化,参见图6,所述补偿确定单元403,具体包括:
电压值确定单元4031,用于解析所述第二电压信号在立体坐标系中三个坐标轴的电压值,三个坐标轴分别为相互垂直的X轴、Y轴、Z轴,由所述X轴和所述Y轴组成水平面坐标系;
计算单元4032,用于基于解析出的电压值,根据预设算法确定所述角度误差是否等于零;
其中,所述预设算法为:
所述T为所述预设算法的计算结果,i,N均为正整数,所述i小于或等于所述N,所述Xi为第所述i次测得在X轴的电压值,所述X0为所述陀螺仪在X轴的静态基准电压值,所述Yi为第所述i次测得在Y轴的电压值,所述Y0为所述陀螺仪在Y轴的静态基准电压值,所述Zi为第所述i次测得在Z轴的电压值,所述Z0为所述陀螺仪在Z轴的静态基准电压值。
本发明一实施例,提供一种角度误差检测设备,以图1为例,所述角度误差检测设备包括角度误差检测装置400(未在图1中体现)、驱动装置3、转体1和陀螺仪2,所述驱动装置3固定于机器人4,由所述驱动装置3带动转体1转动,所述转体1上固定有所述陀螺仪2,所述角度误差检测装置400与所述驱动装置3、所述陀螺仪2、所述机器人4连接;其中,角度误差检测装置400可以为机器人4中的控制器、处理器等,也可以独立于机器人4外的其它具有数据处理功能的装置,如可编程逻辑器件;
所述角度误差检测装置400,用于控制所述机器人4按照预设角速度转动,控制所述驱动装置3带动所述转体1按照所述预设角速度与所述机器人4同步转动,所述机器人4的转动方向与所述转体1的转动方向相反;
所述角度误差检测装置400,用于获取所述陀螺仪2检测到的第一电压信号,根据所述第一电压信号确定所述机器人4转动时是否存在角度误差。
可选地,所述角度误差检测装置400,还用于如果根据所述第一电压信号确定所述机器人4转动时存在角度误差,则调整所述机器人4转动的角速度,控制所述驱动装置3停止带动所述转体1转动,获取所述陀螺仪2检测到的第二电压信号,将在根据所述第二电压信号确定所述机器人4转动的角度误差等于零时调整的角速度作所述机器人4转动的补偿角速度。
可选地,所述角度误差检测装置400,用于解析所述第二电压信号在立体坐标系中三个坐标轴的电压值,三个坐标轴分别为相互垂直的X轴、Y轴、Z轴,由所述X轴和所述Y轴组成水平面坐标系;
所述角度误差检测装置400,用于基于解析出的电压值,根据预设算法确定所述角度误差是否等于零;
其中,所述预设算法为:
所述T为所述预设算法的计算结果,i,N均为正整数,所述i小于或等于所述N,所述Xi为第所述i次测得在X轴的电压值,所述X0为所述陀螺仪2在X轴的静态基准电压值,所述Yi为第所述i次测得在Y轴的电压值,所述Y0为所述陀螺仪2在Y轴的静态基准电压值,所述Zi为第所述i次测得在Z轴的电压值,所述Z0为所述陀螺仪2在Z轴的静态基准电压值。
可选地,所述驱动装置3为舵机,所述转体1为水平转台,所述机器人4包括电机;
所述角度误差检测装置400,用于驱动所述电机以控制所述机器人4转动,驱动所述舵机以控制所述水平转台转动。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将所述装置、设备的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置、设备中单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来 实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置、设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、 磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。