一种机器人防倾倒方法、装置及防倾倒机器人
技术领域
本发明涉及机器人防摔控制技术领域,特别涉及一种机器人防倾倒方法、装置及防倾倒机器人。
背景技术
机器人是自动执行工作的机器装置,其任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。为了适应不同的工作环境,从移动方式方面来看,机器人种类繁多,包括仿生机器人、双轮机器人、独轮机器人等,其中大多数机器人因特殊的结构形态,无法长期保持平衡,在遇到摔倒、失去平衡等情况时会导致无法正常工作甚至损伤设备。现有技术中,对于机器人摔倒的解决方案主要为降低机器人重心,具体可包括机器人扁平化和在机器人底端增加重量两种方案。
机器人扁平化通常为在机器人底部设置三个或三个以上的水平行走足,,并减少机器人的高度,使机器人处于水平移动状态,例如扫地机器人,但该解决方案的缺陷在于并非所有的工作场合都适合扁平化的机器人。
在机器人底端增加重量的主要手段为增加配重,通常情况下配重为电池,虽然增加电池虽然可以提高机器人的运行时间,减少机器人摔倒的情况,但由于机器人增加了重量,在同样的驱动力下,达到相同移动速度的时间会增加,同时在某些工作场合,不符合轻量化的工作要求。
综上所述,如何防止机器人摔倒是本领域技术人员目前需要解决的一项技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种机器人防倾倒方法、装置及防倾倒机器人,可以有效防止机器人摔倒。其具体方案如下:
一种机器人防倾倒装置,包括倾斜角度获取模块、处理器、编码器、驱动电机和支撑臂,其中,
所述倾斜角度获取模块,用于获取机器人的倾斜角度;
所述处理器,用于判断所述倾斜角度是否大于预设值,若是,则向所述驱动电机输出电机控制信号,若否,则重新获取倾斜角度;
所述编码器,用于获取所述驱动电机的旋转角度和速度,并发送至所述处理器;
所述驱动电机,用于根据所述电机控制信号调整所述支撑臂的位置;
所述支撑臂,用于对所述机器人进行支撑。
优选的,所述倾斜角度获取模块包括:
第一陀螺仪,用于获取所述机器人的倾斜角速度;
第一积分单元,用于对所述倾斜角速度进行积分,得到所述倾斜角度。
优选的,所述倾斜角度获取模块包括:
第二陀螺仪,用于获取所述机器人的倾斜角速度;
第二积分单元,用于对所述机器人的倾斜角速度进行积分,得到初始倾斜角度;
加速度传感器,用于获取所述机器人的倾斜加速度;
第三积分单元,用于对所述机器人的倾斜加速度进行积分,得到换算角度;
误差角度获取单元,用于将所述初始倾斜角度和所述换算角度进行比较,得到误差角度;
误差角度放大单元,用于按照预设比例对所述误差角度进行放大,得到修正角度;
角度叠加单元,用于将所述修正角度与所述初始倾斜角度进行叠加计算,得到所述倾斜角度。
优选的,所述支撑臂包括转动轴和伸缩臂中的至少一种,其中所述转动轴用于调整所述支撑臂与所述机器人之间的角度,所述伸缩臂用于调整所述支撑臂的长度。
优选的,所述机器人防倾倒装置还包括行走足和用于根据所述倾斜角度调整所述行走足的移动状态的自平衡驱动模块,其中,所述移动状态包括行走足移动方向和行走足加速度,所述倾斜角度在所述行走足的移动平面上分量与所述行走足移动方向呈反相关,所述机器人在所述行走足的移动平面上加速度分量与所述行走足加速度呈反相关。
本发明还提供了一种防倾倒机器人,包括上述任一项所述的机器人防倾倒装置。
本发明还提供了一种机器人防倾倒方法,包括:
获取机器人的倾斜角度;
判断所述倾斜角度是否大于预设值,若是,则调整支撑臂的位置,以对所述机器人进行支撑,若否,则重新获取倾斜角度。
优选的,获取所述机器人的倾斜角度包括:
获取所述机器人的倾斜角速度;
对所述倾斜角速度进行积分,得到所述倾斜角度。
优选的,获取所述机器人的倾斜角度包括:
对获取的所述机器人的倾斜角速度进行积分,得到初始倾斜角度;
对获取的所述机器人的倾斜加速度进行积分,得到换算角度;
将所述初始倾斜角度和所述换算角度进行比较,得到误差角度;
按照预设比例对所述误差角度进行放大,得到修正角度;
将所述修正角度与所述初始倾斜角度进行叠加计算,得到所述倾斜角度。
优选的,所述支撑臂的长度或所述支撑臂与所述机器人之间的角度可调整。
本发明提供了一种机器人防倾倒装置,包括倾斜角度获取模块、处理器、编码器、驱动电机和支撑臂,其中,所述倾斜角度获取模块,用于获取机器人倾斜角度;所述处理器,用于判断所述倾斜角度是否大于预设值,若是,则向所述驱动电机输出电机控制信号,若否,则重新获取倾斜角度;所述编码器,用于获取所述驱动电机的旋转角度和速度,并发送至所述处理器;所述驱动电机,用于根据所述电机控制信号调整所述支撑臂的位置;所述支撑臂,用于对所述机器人进行支撑。可见,本发明对获取的机器人倾斜角度进行判断,若该倾斜角度未超过预设值,即机器人不存在摔倒的风险,则待机继续获取机器人倾斜角度,若该倾斜角度大于预设值,即机器人即将摔倒,则控制驱动电机调整支撑臂的位置以对机器人进行支撑,同时,编码器向处理器发送驱动电机的旋转角度和速度,形成反馈系统,提高了调整支撑臂的准确性,从而在不需要改变机器人的高度或在机器人底端设置配重的情况下,有效地避免了机器人摔倒。
本发明还提供了一种防倾倒机器人,具有与上述机器人防倾倒装置相同的技术效果,再次不再赘述。
本发明还提供了一种机器人防倾倒方法,具有与上述机器人防倾倒装置相同的技术效果,再次不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种机器人防倾倒装置的结构示意图;
图2为本发明实施例提供的一种具体的机器人防倾倒装置中倾斜角度获取模块的结构示意图;
图3为本发明实施例提供的一种具体的机器人防倾倒装置中倾斜角度获取模块的工作流程示意图;
图4为本发明实施例提供的一种具体的单轮防倾倒机器人在倾倒状态下受力分析示意图;
图5为本发明实施例提供的一种机器人防倾倒方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种机器人防倾倒装置,参见图1所示,包括倾斜角度获取模块11、处理器12、编码器13、驱动电机14和支撑臂15,其中,
所述倾斜角度获取模块11,用于获取机器人倾斜角度。
机器人在实际应用中出现倾倒状态,通常情况表现为机器人上端位移比下端位移大,即重心相对于支撑点在水平方向和竖直方向均出现位移,即重心相对于支撑点旋转从而产生倾斜角度,机器人重心发生位移是判断机器人发生倾倒的必要条件,因此可以通过获取倾斜角度来判断机器人是否发生倾倒。
需要特别说明的是,在实际操作中,角度获取模块并不单纯指对机器人倾倒角度进行监测的器件,因为某些对机器人倾倒角度进行监测的器件无法直接获取的机器人倾倒角度,需要处理器对相应数据进行计算处理才得到机器人倾倒角度。本发明的目的是提供一种机器人防倾倒的思路,具体实现过程中,因器件功能差异所导致的器件之间的配合不在本发明讨论的范围内,因此,这种需要通过处理器计算得到机器人倾倒角度的情况也应落在本发明保护的范围内。
通常情况下,重心由于受到重力的原因在竖直方向发生的位移方向朝下,但不排除在特殊的场合下重心在竖直方向发生的位移方向朝上,例如,机器人利用电磁铁的磁力吸附在物体外表面,此时,重心在竖直方向发生的位移方向可能朝上。
当然,机器人重心发生位移并不是机器人发生倾倒的必要条件,重心在水平方向和竖直方向均出现位移也可能是机器人正常移动所导致的,机器人倾倒最直观的表现为机器人上部位移大于机器人下部位移。
需要说明的是,在上述对机器人倾倒的描述中,机器人和机器人支撑面两者均被视为了刚体,即机器人在倾倒时,机器人的支撑点和机器人支撑面均未发生形变。
需要进一步说明的是,在实际中,机器人和机器人支撑面均为非刚体,机器人倾倒时,由于部分机器人的外壳材料硬度可能小于机器人支撑面的硬度,例如,机器人的外壳材料为塑料或铝,机器人支撑面为混凝土,机器人在倾倒时外壳接触支撑面,在机器人重量的作用下,外壳发生形变,此时,机器人倾倒不能仅仅被视作重心相对机器人外壳未发生形变的支撑点发生旋转。
可以理解的是,此处的外壳形变包括弹性形变和非弹性形变。非弹性形变意味着机器人发生损坏,由于在实际应用中很少出现中机器人倾倒即发生损坏的设计,因此,此处的外壳形变主要为弹性形变,而当外壳形变为非弹性形变时,本发明则可避免机器人进一步损坏。
同理,在实际中存在机器人的外壳材料硬度大于机器人支撑面的硬度的情况,例如机器人外壳材料为钢铁,机器人支撑面为沙地,机器人在倾倒时外壳接触支撑面,在机器人重量的作用下,支撑面即沙地发生形变,支撑点发生位移,此时,机器人倾倒也不能仅仅被视作重心相对支撑面未发生形变的支撑点发生旋转。
在将机器人和机器人的支撑面两者视作非刚体时,机器人和机器人支撑面均存在应力,因此机器人和机器人支撑面均会发生形变。
机器人发生倾倒时,支撑点可以为机器人的行走足,该行走足同样可被视为刚体或非刚体,分析原理与上述外壳相同,在此不再赘述。
在现有技术中,获取倾斜角度获取可通过陀螺仪来实现,本发明对倾斜角度获取模块提供两种具体的实施方案。
实施方案一:
倾斜角度获取模块通过陀螺仪和积分单元实现对倾斜角度的计算,其中具体包括:第一陀螺仪,用于获取所述机器人的倾斜角速度;第一积分单元,用于对所述倾斜角速度进行积分,得到所述倾斜角度。本实施方案中,将机器人和机器人的支撑面两者均视为了刚体,通过对第一陀螺仪获取的倾斜角速度进行积分计算,得到的倾斜角度,适用于一些低成本且无需高精度的玩具机器人。
在实际应用中,机器人和机器人的支撑面并非刚体,且第一陀螺仪本身存在误差,为了避免误差被累积放大,无法形成正确的角度信号,本发明对倾斜角度获取模块还提供下述实施方案。
实施方案二:
倾斜角度获取模块通过陀螺仪和积分单元实现对倾斜角度的计算,同时利用加速度传感器和积分单元对倾斜角度进行数据修正,从而得到机器人的倾斜角度,参见图2所示,具体包括:
第二陀螺仪111,用于获取所述机器人的倾斜角速度;第二积分单元112,用于对获取的所述机器人的倾斜角速度进行积分,得到初始倾斜角度;加速度传感器113,用于获取所述机器人的倾斜加速度;第三积分单元114,用于对获取的所述机器人的倾斜加速度进行积分,得到换算角度;误差角度获取单元115,用于将所述初始倾斜角度和所述换算角度进行比较,得到误差角度;误差角度放大单元116,用于按照预设比例对所述误差角度进行放大,得到修正角度;角度叠加单元117,用于将所述修正角度与所述初始倾斜角度进行叠加计算,得到所述倾斜角度。
陀螺仪获取的具体参数为转动角速度,由于在本发明提供的所有实施方案中,存在将机器人或机器人支撑面视为非刚体的情况,由于支撑点可能发生变化,对于机器人整体来看,陀螺仪所获取的转动角速度并非严格意义的机器人的转动角速度,因此,在本发明中将陀螺仪获取的具体参数定义为倾斜角速度。
本实施方案中,倾斜角度获取模块具体的工作流程如图3所示,对通过第二陀螺仪获取的倾斜角速度进行积分,得到初始倾斜角度,将初始倾斜角度和换算角度进行比较求差值,得到的误差角度,按照预设的比例系数进行放大,与倾斜角速度进行叠加积分,形成反馈系统,从而输出修正后的倾斜角度。
需要进一步说明的是,本发明中的第一积分单元、第二积分单元和第三积分单元中的任一个的功能,在实际操作中均可以由处理器来实现,本发明仅仅是为了对功能进行区分而命名的,并不代表该功能的实现具有先后顺序或该功能必须依靠独立器件实现。
所述处理器12,用于判断所述倾斜角度是否大于预设值,若是,则向所述驱动电机输出电机控制信号,若否,则重新获取倾斜角度。
可以理解的是,存在一个最大自平衡倾角,当倾斜角度小于或等于最大自平衡倾角时,物体只会来回摆动,最终因为摩擦阻力,减少摆动幅度,即减少倾倒角度,直至重新处于稳定状态;当倾斜角度大于最大自平衡倾角时,物体则会倾倒。因此,处理器对倾斜角度进行判断,若小于或等于预设值,则本发明提供的防倾倒装置待机,重新获取倾斜角度,若大于预设值,则表明机器人即将摔倒,需要支撑臂对机器人进行支撑,则向驱动电机输出电机控制信号。
需要说明的是,所述预设值与所述最大自平衡倾角可以相同,也可以不同。
由于驱动电机调整支撑臂位置本身需要时间,因此将预设值设置成小于最大自平衡倾角,可以避免出现机器人倾倒速度大于支撑臂调整速度的情况,当然,在实际应用中,通常情况下,机器人的倾倒速度不会超过支撑臂的调整速度。
在实际应用中,通常情况下,支撑臂的调整速度远远大于机器人的倾倒速度,因此也可以将预设值设置成大于最大自平衡倾角。
需要进一步说明的是,机器人的倾倒速度超过支撑臂的调整速度的情况下,大多数为机器人受了外力,且在该外力下机器人所产生的加速度远远大于驱动电机的加速度,该情况不在本发明所讨论的范围内。
所述编码器13,用于获取所述驱动电机的旋转角度和速度,并发送至所述处理器。
在实际应用中,不同的倾斜角度需要支撑臂处于不同位置,编码器获取驱动电机的旋转角度和速度,并将该旋转角度和速度发送至处理器,形成反馈系统,从而令处理器可以更准确地调整支撑臂的位置。。
需要说明的是,编码器获取驱动电机的旋转角度和速度,包括实时获取和间隔获取。
实时获取为编码器对驱动电机进行实时监测,同时将监测得到的旋转角度和速度发送至处理器。
间隔获取为编码器对驱动电机按照预设的间隔时长进行相关参数的获取,即编码器每经过预设的间隔时长获取一次驱动电机的旋转角度和速度,并发送至处理器。此种场景一般应用在低电量、节约能耗模式或处理器的性能无法承受编码器实时获取驱动电机的旋转角度和速度的情形。
所述驱动电机14,用于根据所述电机控制信号调整所述支撑臂的位置。
根据编码器输出的电机控制信号,驱动电机在实际应用中包括步进电机、直流电机、伺服电机等,本发明对驱动电机的类型不做限定。
所述支撑臂15,用于对所述机器人进行支撑。
支撑臂包括转动轴和伸缩臂中的至少一种,其中所述转动轴用于调整所述支撑臂与所述机器人之间的角度,所述伸缩臂用于调整所述支撑臂的长度。
当然,在实际应用中,可以具体包括以下三种形式的支撑臂:
(1)长度不可变化的转动轴支撑臂,驱动电机驱动支撑臂围绕转动轴旋转,将支撑臂调整至与倾斜角度相应的支撑位置。
采用长度不可变化的转动轴支撑臂,编码器根据编码器工作信号输出预设的电机控制信号,此时,机器人存在最大倾斜角度,即支撑臂垂直于地面时的倾斜角度,当机器人的实际倾斜角度小于最大倾斜角度时,驱动电机控制支撑臂向机器人方向旋转,从而使机器人达到直立状态。
(2)长度可变化不可转动的固定支撑臂,即支撑臂具有伸缩臂,驱动电机根据倾斜角度调整伸缩臂的伸缩量,即调整支撑臂的长短,从而对机器人进行支撑。
采用长度可变化不可转动的固定支撑臂时,机器人存在最大倾斜角度,即伸缩臂的伸缩量达到最大时,且垂直于地面时的倾斜角度,当机器人的实际倾斜角度小于最大倾斜角度时,即伸缩臂长度未达到最大时,驱动电机控制伸缩臂伸长,沿着伸缩臂方向产生加速度,从而使机器人达到直立状态。
(3)长度可变化的转动轴支撑臂,驱动电机根据倾斜角度控制支撑臂围绕转动轴旋转,且控制伸缩臂的伸缩量,调整支撑臂的长短,以对机器人进行支撑。
需要说明的是,当支撑臂包括伸缩臂时,本发明提供的机器人防倾倒装置还可包括红外测距装置,可以根据倾倒距离调整伸缩臂的伸缩量。
进一步地,还可以对上述任一实施方案进行优化,为了使发生倾倒的机器人恢复正常状态,所述机器人防倾倒装置还包括行走足和用于根据所述倾斜角度调整所述行走足的移动状态的自平衡驱动模块,其中,所述移动状态包括行走足移动方向和行走足加速度,所述倾斜角度在所述行走足的移动平面上分量与所述行走足移动方向呈反相关,所述机器人在所述行走足的移动平面上加速度分量与所述行走足加速度呈反相关。
可以理解的是,机器人的行走足包括轮子、履带和驱动腿。
下面以轮子为例进行说明,参见图4所示,类似平衡车的单轮机器人,且该机器人的支撑臂为长度不可变化转动轴支撑臂,依靠地面摩擦力提供动力,机器人为了保持平衡轮子与身体的倾斜做相对运动,在水平方向产生加速度a,若等效质心位置,这个加速度在垂直方向的加速度分量acosα等于重心的倾角的gsinα,即:
其中k为驱动电机减速比,Tmax为驱动电机的最大扭矩,r为轮子半径,m为机器人质量,α为机器人倾斜角度,g为重力加速度。
由于驱动电机减速比,驱动电机的最大扭矩,轮子半径,机器人质量固定,因此可以计算出理论的最大自平衡倾角。实际因打滑或者地面摩擦力无法完全反作用于轮子的动力,因此实际的最大自平衡倾角会比计算得到的最大自平衡倾角偏小。
当机器人倾角大于最大自平衡倾角,控制支撑臂电机,将支撑臂调整到防摔姿势,由支撑臂接触到地面,然后支撑臂支撑身体调整角度到自平衡倾角范围之内,调整到自平衡,同时,自平衡驱动模块驱动轮子反相转动,帮助机器人直立。当然,也可以不采用自平衡驱动模块驱动轮子。
当机器人处于卧倒状态,轮子抱死,通过支撑臂将身体支撑到机器人倾角小于最大自平衡倾角,驱动电机加速,使机器人处于直立状态同时,自平衡驱动模块驱动轮子反相转动,帮助机器人直立。当然,也可以不采用自平衡驱动模块驱动轮子。
机器人存在最大倾斜角度,即支撑臂垂直于地面时的倾斜角度α等于最大自平衡倾角,支撑臂长度l为机器人底端至旋转轴的高度L的余弦值,即l=Lcosα。
本发明还提供了一种防倾倒机器人,包括上述的机器人防倾倒装置。
本发明还提供了一种机器人防倾倒方法,参见图5所示,包括步骤S11至S12,其中:
步骤S11:获取机器人的倾斜角度;
机器人在实际应用中出现倾倒状态,通常情况表现为机器人上端位移比下端位移大,即重心相对于支撑点在水平方向和竖直方向均出现位移,即重心相对于支撑点旋转从而产生倾斜角度,机器人重心发生位移是判断机器人发生倾倒的必要条件,因此可以通过获取倾斜角度来判断机器人是否发生倾倒。
通常情况下,重心由于受到重力的原因在竖直方向发生的位移方向朝下,但不排除在特殊的场合下重心在竖直方向发生的位移方向朝上,例如,机器人利用电磁铁的磁力吸附在物体外表面,此时,重心在竖直方向发生的位移方向可能朝上。
当然,机器人重心发生位移并不是机器人发生倾倒的必要条件,重心在水平方向和竖直方向均出现位移也可能是机器人正常移动所导致的,机器人倾倒最直观的表现为机器人上部位移大于机器人下部位移。
需要说明的是,在上述对机器人倾倒的描述中,机器人和机器人支撑面两者均被视为了刚体,即机器人在倾倒时,机器人的支撑点和机器人支撑面均未发生形变。
需要进一步说明的是,在实际中,机器人和机器人支撑面均为非刚体,机器人倾倒时,由于部分机器人的外壳材料硬度可能小于机器人支撑面的硬度,例如,机器人的外壳材料为塑料或铝,机器人支撑面为混凝土,机器人在倾倒时外壳接触支撑面,在机器人重量的作用下,外壳发生形变,此时,机器人倾倒不能仅仅被视作重心相对机器人外壳未发生形变的支撑点发生旋转。
可以理解的是,此处的外壳形变包括弹性形变和非弹性形变。非弹性形变意味着机器人发生损坏,由于在实际应用中很少出现中机器人倾倒即发生损坏的设计,因此,此处的外壳形变主要为弹性形变,而当外壳形变为非弹性形变时,本发明则可避免机器人进一步损坏。
同理,在实际中存在机器人的外壳材料硬度大于机器人支撑面的硬度的情况,例如机器人外壳材料为钢铁,机器人支撑面为沙地,机器人在倾倒时外壳接触支撑面,在机器人重量的作用下,支撑面即沙地发生形变,支撑点发生位移,此时,机器人倾倒也不能仅仅被视作重心相对支撑面未发生形变的支撑点发生旋转。
在将机器人和机器人的支撑面两者视作非刚体时,机器人和机器人支撑面均存在应力,因此机器人和机器人支撑面均会发生形变。
机器人发生倾倒时,支撑点可以为机器人的行走足,该行走足同样可被视为刚体或非刚体,分析原理与上述外壳相同,在此不再赘述。
在现有技术中,获取倾斜角度获取可通过陀螺仪来实现,本发明提供两种具体的实施方案。
实施方案一:
通过获取所述机器人的倾斜角速度,并对所述倾斜角速度进行积分,得到所述倾斜角度。
本实施方案中,将机器人和机器人的支撑面两者均视为了刚体,对倾斜角速度进行积分计算,从而得到的倾斜角度,适用于一些低成本且无需高精度的玩具机器人。
在实际应用中,机器人和机器人的支撑面并非刚体,且陀螺仪本身存在误差,本实施方案会导致误差被累积放大,无法形成正确的角度信号,因此本发明对倾斜角度获取模块还提供下述实施方案。
实施方案二:
通过对获取的倾斜角速度进行积分,再利用对换算角度进行积分得到换算角度进行修正,从而得到机器人的倾斜角度,具体包括:
对获取的所述机器人的倾斜角速度进行积分,得到初始倾斜角度;对获取的所述机器人的倾斜加速度进行积分,得到换算角度;将所述初始倾斜角度和所述换算角度进行比较,得到误差角度;按照预设比例对所述误差角度进行放大,得到修正角度;将所述修正角度与所述初始倾斜角度进行叠加计算,得到所述倾斜角度。
步骤S12:判断所述倾斜角度是否大于预设值,若是,则调整支撑臂的位置,以对所述机器人进行支撑,若否,则重新获取倾斜角度。
可以理解的是,存在一个最大自平衡倾角,当倾斜角度小于或等于最大自平衡倾角时,物体只会来回摆动,最终因为摩擦阻力,减少摆动幅度,即减少倾倒角度,直至重新处于稳定状态;当倾斜角度大于最大自平衡倾角时,物体则会倾倒。因此,处理器对倾斜角度进行判断,若小于或等于预设值,则重新获取倾斜角度,若大于预设值,则表明机器人即将摔倒,需要支撑臂对机器人进行支撑,则调整支撑臂的位置。
需要说明的是,预设值与最大自平衡倾角可以相同,也可以不同。
由于调整支撑臂位置本身需要时间,因此将预设值设置成小于最大自平衡倾角,可以避免出现机器人倾倒速度大于支撑臂调整速度的情况,当然,在实际应用中,通常情况下,机器人的倾倒速度不会超过支撑臂的调整速度。
在实际应用中,通常情况下,支撑臂的调整速度远远大于机器人的倾倒速度,因此也可以将预设值设置成大于最大自平衡倾角。
需要进一步说明的是,机器人的倾倒速度超过支撑臂的调整速度的情况下,大多数为机器人受了外力,且在该外力下机器人所产生的加速度远远大于驱动电机的加速度,该情况不在本发明所讨论的范围内。
本发明中提供的支撑臂的长度或所述支撑臂与所述机器人之间的角度可调整。
支撑臂包括转动轴和伸缩臂中的至少一种,其中所述转动轴用于调整所述支撑臂与所述机器人之间的角度,所述伸缩臂用于调整所述支撑臂的长度。
当然,在实际应用中,可以具体包括以下三种形式的支撑臂:
(1)长度不可变化的转动轴支撑臂,驱动电机驱动支撑臂围绕转动轴旋转,将支撑臂调整至与倾斜角度相应的支撑位置。
采用长度不可变化的转动轴支撑臂,编码器根据编码器工作信号输出预设的电机控制信号,此时,机器人存在最大倾斜角度,即支撑臂垂直于地面时的倾斜角度,当机器人的实际倾斜角度小于最大倾斜角度时,驱动电机控制支撑臂向机器人方向旋转,从而使机器人达到直立状态。
(2)长度可变化不可转动的固定支撑臂,即支撑臂具有伸缩臂,驱动电机根据倾斜角度调整伸缩臂的伸缩量,即调整支撑臂的长短,从而对机器人进行支撑。
采用长度可变化不可转动的固定支撑臂时,机器人存在最大倾斜角度,即伸缩臂的伸缩量达到最大时,且垂直于地面时的倾斜角度,当机器人的实际倾斜角度小于最大倾斜角度时,即伸缩臂长度未达到最大时,驱动电机控制伸缩臂伸长,沿着伸缩臂方向产生加速度,从而使机器人达到直立状态。
(3)长度可变化的转动轴支撑臂,驱动电机根据倾斜角度控制支撑臂围绕转动轴旋转,且控制伸缩臂的伸缩量,调整支撑臂的长短,以对机器人进行支撑。
需要说明的是,当支撑臂包括伸缩臂时,还可获取倾倒距离,从而根据倾倒距离调整伸缩臂的伸缩量。
参见图4所示,下面以类似平衡车的单轮机器人来进行说明,且该机器人的支撑臂为长度不可变化转动轴支撑臂,依靠地面摩擦力提供动力,机器人为了保持平衡轮子与身体的倾斜做相对运动,在水平方向产生加速度a,若等效质心位置,这个加速度在垂直方向的加速度分量acosα等于重心的倾角的gsinα,即:
其中k为驱动电机减速比,Tmax为驱动电机的最大扭矩,r为轮子半径,m为机器人质量,α为机器人倾斜角度,g为重力加速度。
由于驱动电机减速比,驱动电机的最大扭矩,轮子半径,机器人质量固定,因此可以计算出理论的最大自平衡倾角。实际因打滑或者地面摩擦力无法完全反作用于轮子的动力,因此实际的最大自平衡倾角会比计算得到的最大自平衡倾角偏小。
当机器人倾角大于最大自平衡倾角,控制支撑臂电机,将支撑臂调整到防摔姿势,由支撑臂接触到地面,然后支撑臂支撑身体调整角度到自平衡倾角范围之内,调整到自平衡,同时,自平衡驱动模块驱动轮子反相转动,帮助机器人直立。当然,也可以不采用自平衡驱动模块驱动轮子。
当机器人处于卧倒状态,轮子抱死,通过支撑臂将身体支撑到机器人倾角小于最大自平衡倾角,驱动电机加速,使机器人处于直立状态同时,自平衡驱动模块驱动轮子反相转动,帮助机器人直立。当然,也可以不采用自平衡驱动模块驱动轮子。
机器人存在最大倾斜角度,即支撑臂垂直于地面时的倾斜角度α等于最大自平衡倾角,支撑臂长度l为机器人底端至旋转轴的高度L的余弦值,即l=Lcosα。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种机器人防倾倒方法、装置及防倾倒机器人进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。