具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:在所述机器人行进过程中,若所述机器人行进方向上目标区域内检测到目标障碍物,则控制机器人执行第一越障操作;若所述机器人的驱动参数和/或运动参数满足预设条件,则控制机器人执行第二越障操作。
由于现有技术中,机器人的避障模式固化单一,未有考虑机器人的实际运行情况,导致其越障的成功率较低。
本发明提供上述的解决方案,旨在提高机器人越障的成功率。
本发明提出一种机器人。在本实施例中,机器人为清洁机器人,例如可以是扫地机器人,拖地机器人等用于环境清洁的自动化设备。此外,在其他实施例中,机器人也可为其他类型的机器人,例如服务机器人等。
在本发明实施例中,参照图1,机器人包括机身、清洁模块2和脚轮3。其中,清洁模块2可以是扫地模块、拖地模块等,具体设于机身的底部。脚轮3设于机身底部、且与清洁模块2间隔设置。
机身上可设有检测模块4,用于检测障碍物信息。具体的,检测模块4可包括双目传感器、红外传感器、激光雷达和/或碰撞传感器等。
此外,机身还包括控制器1,上述的清洁模块2、脚轮3、检测模块4可与控制器1连接。具体的,参照图1,控制器1包括:处理器1001(例如CPU),存储器1002,计时器1003等,各部件之间可通过通信总线连接。存储器1002可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1002可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种可读存储介质的存储器1002中可以包括越障程序。在图1所示的装置中,处理器1001可以用于调用存储器1002中存储的越障程序,并执行以下实施例中越障方法的相关步骤操作。
本发明还提供一种越障方法,应用于上述机器人。
参照图2,提出本发明越障方法的一实施例,所述越障方法包括:
步骤S10,在所述机器人行进过程中,若所述机器人行进方向上目标区域内检测到目标障碍物,则控制机器人执行第一越障操作;
这里的目标区域可为预先设置的指定区域、也可为所述机器人的移动方向上满足设定条件的位置集合,设定条件包括与所述机器人之间的距离小于或等于第一设定距离阈值。这里的第一设定距离阈值可以是系统预先设置的默认参数,也可以通过获取用户输入的指令确定的参数。
目标障碍物可以是机器人遇到的任意障碍物,也可以是预先设置的一种障碍物。目标障碍物可为系统中默认设置的障碍物,也可以是用户基于自身需求输入相应的控制参数选定的障碍物。在本实施例中,目标障碍物为高度小于预设高度的障碍物,例如门槛。这里的预设高度可为系统默认配置,也可由用户自行设置。
具体的,机器人的机身上用于检测障碍物信息的检测模块(如双目传感器、红外探测器或激光雷达)的检测范围可覆盖机器人四周的区域,机器人可读取检测模块的检测信息,从所获取的检测信息中提取目标区域所对应的信息为目标信息,根据目标信息来确定目标区域内是否存在目标障碍物。具体的是否存在目标障碍物可通过识别目标信息中是否存在目标障碍物所对应的特征信号,若存在则可认为目标区域存在目标障碍物;否则,可认为目标区域不存在目标障碍物。其中,目标区域存在目标障碍物,表明机器人继续沿当前行进方向行进时会到达目标障碍物的所在位置。
第一越障操作可包括维持当前速度前进、增大当前速度前进、以扭动状态朝向障碍物前进、后退向前冲等多种操作中的至少一种。
步骤S20,若所述机器人的驱动参数和/或运动参数满足预设条件,则控制机器人执行第二越障操作。
驱动参数具体为机器人中用于驱动机器人运行的驱动部件的运行参数。在本实施例中,驱动参数为机器人中清洁模块的驱动部件的运行参数(例如蜗杆功率、电机电流和/或电机转速等)。在其他实施例中,驱动参数也可为机器人中其他驱动部件的运行参数,例如脚轮的驱动电机的运行参数等。
运动参数具体为表征机器人的运动特征的参数。例如,运动参数可包括表征机器人是否打滑的状态参数(如机器人在设定时间内位置变化值、速度变化值)和/或角速度变化值等。
预设条件为机器人接触到障碍物时其驱动参数和/或运动参数所需达到的目标条件,可根据实际情况进行设置。在驱动参数和/或运动参数满足预设条件时,可认为机器人当前所处的位置存在障碍物导致机器人无法继续行进,此时则可通过第二越障操作进行越障。
第二越障操作可包括维持当前速度前进、增大当前速度前进、以扭动状态朝向障碍物前进、后退向前冲等多种操作中的至少一种。第二越障操作为不同于第一越障操作的操作。
具体的,在本实施例中,第一越障操作为主动越障操作,是机器人未到达障碍物所在位置时所执行的越障操作;第二越障操作为被动越障操作,是机器人已到达障碍物所在位置时所执行的越障操作。例如,第一越障操作可以是维持当前速度前进,或者可以是加速前进;第二越障操作可包括以下至少一种:后退之后以大于或等于目标速度阈值的移动速度前进;一边转向一边前进;后退之后,一边转向一边前进等等,本申请不做限制。
本发明提出的一种应用于机器人的越障方法,该方法在机器人行进的过程中,若机器人行进方向上的目标区域内检测到目标障碍物,则控制机器人执行第一越障操作,若机器人的驱动参数和/或运动参照满足预设条件,则控制机器人执行第二越障操作,这里机器人的越障操作方式不是单一固定的,而是可以适应于机器人的实际运行情况变化的,从而保证机器人可成功跨越目标障碍物,有效提高机器人越障的成功率。
进一步的,基于上述实施例,提出本申请越障方法的另一实施例,在本实施例中,参照图3,所述控制所述机器人执行第一越障操作的步骤包括:
步骤S11,获取所述机器人行进路径左右两侧的探测信息;
机器人的机身上用于检测障碍物信息的检测模块(如双目传感器、红外探测器或激光雷达)的检测范围可覆盖机器人四周的区域。基于此,若机器人的驱动参数和/或运动参数满足预设条件,表明机器人到达了目标障碍物的所在位置,可将检测范围缩小至第二探测范围,第二探测范围为位于所述目标路径上两侧的位置集合。基于此,可直接读取检测模块检测的参数得到机器人前方两侧的探测信息。此外,在上述检测模块的检测范围覆盖机器人四周时,也可读取检测模块的检测信息后,进一步提取第二探测范围对应的信息作为这里的探测信息。
需要说明的是,上述实施例涉及的机器人行进方向上目标区域内是否存在目标障碍物是基于检测模块的检测范围覆盖机器人四周区域时的检测数据确定。
步骤S12,若根据所述探测信息确定所述机器人行进路径左右两侧存在其他障碍物,确定左右两侧障碍物之间的障碍物距离;
步骤S13,若所述障碍物距离大于第一距离阈值,或者,若根据所述探测信息确定所述左右两侧的至少一侧不存在其他障碍物时,控制所述机器人以大于或等于当前速度的速度跨越所述目标障碍物。
其他障碍物具体指的是目标障碍物以外的位于机器人行进路径左侧和/或右侧的障碍物。
探测信息可具体包括行进路径左侧的第一探测信息和行进路径右侧的第二探测信息。基于此,当第一探测信息和第二探测信息均存在目标障碍物以外的障碍物的特征信号时,可认为机器人行进方向的左侧和右侧均存在其他障碍物;当第一探测信息和第二探测信息之一存在目标障碍物以外的障碍物的特征信号时,可认为机器人行进方向的左侧或右侧存在其他障碍物;当第一探测信息和第二探测信息均不存在目标障碍物以外的障碍物的特征信号时,可认为机器人行进方向的左侧和右侧均不存在其他障碍物。
当第一探测信息和第二探测信息均存在目标障碍物以外的障碍物的特征信号时,定义位于行进路径左侧的其他障碍物为第一障碍物,定义位于行进路径左侧的其他障碍物为第二障碍物,障碍物距离指的是第一障碍物与第二障碍物之间的距离。障碍物距离可基于第一探测信息和第二探测信息分析得到。例如,目标障碍物为门槛时,门槛所连接的两侧门框可以是这里的其他障碍物,两侧门框之间的距离则为障碍物距离。第一距离阈值具体可根据机器人的机身尺寸确定。第一距离阈值大于或等于机器人的机身尺寸。
行进两侧的障碍物距离大于第一距离阈值、行进路径的两侧均不存在其他障碍物或行进路径的其中一侧不存在其他障碍物时,表明机器人有足够的空间继续行进,此时机器人以大于或等于当前速度的速度跨越目标障碍物,目标障碍物以外的其他障碍物不会对机器人的行进造成阻碍,可保证机器人可顺利跨越其行进路径上的目标障碍物;行进两侧的障碍物距离小于或等于第一距离阈值,表明机器人不具有足够的空间继续行进,机器人继续行进时两侧的其他障碍物会阻碍机器人的行进,此时机器人以大于或等于当前速度的速度跨越目标障碍物容易造成机器人与两侧的其他障碍物碰撞而造成损坏,则可控制机器人减速运行。
具体的,在当前速度大于或等于设定速度阈值时,可控制机器人维持当前速度朝向目标障碍物移动;在当前速度小于设定速度阈值时,可控制机器人以大于或等于设定速度阈值的速度继续沿原来的移动方向朝向目标障碍物移动。这里的设定速度阈值具体为预先设置的机器人跨越目标障碍物所需的最小速度值。
在本实施例中,在机器人行进方向上存在目标障碍物时,机器人不减速,而是以大于或等于当前速度的移动速度朝向目标障碍物移动,从而保证机器人到达目标障碍物所在位置时可顺利通过目标障碍物,避免减速导致机器人卡在目标障碍物上而无法通过目标障碍物,实现有效提高机器人越障的成功率。并且,基于机器人行进方向两侧的探测信息获取机器人行进方向上两侧的其他障碍物的情况,从而确保机器人行进方向有足够空间时才向前冲越障,保证机器人跨越目标障碍物的过程中,不会与两侧的其他障碍物发生碰撞,避免损坏机器人。
进一步的,在本实施例中,在本实施例中,机器人具有不同的运动模式,在第一运动模式(如沿边模式)下,机器人进行沿边运动,在此模式下,机器人即使碰到障碍物也不会执行越障操作,而是沿着障碍物的边缘运动;在第二运动模式(如导航模式)下,机器人沿设定路径运行,在此模式下,机器人运动过程中遇到障碍物则需要执行越障操作。其中,第一运动模式对应的机器人的移动速度小于第二运动模式下机器人的移动速度。基于此,若机器人行进方向上目标区域内检测到目标障碍物,在控制机器人执行第一越障操作之前,可先获取机器人当前的运动模式,在所获取的运动模式时,可控制机器人执行第一越障操作。
这里以一个具体例子说明本实施例机器人控制方法涉及的机器人的主动越障的过程:检测是否有门槛类型的点云位于机器人前方一定区域内(即检测机器人的行进方向上目标区域内是否存在目标障碍物);若是,表明机器人即将到达门槛位置,更改障碍物检测区域,去除前方部分区域,即获取机器人行进路径左右两侧的探测信息;若通过探测信息确定机器人行进路径两侧均存在障碍物、并且两侧障碍物之间的距离足够大或者机器人行进路径上只有一侧存在障碍物,则可获取机器人当前的运动模式,若运动模式为沿边模式,可将机器人的速度设定为0.15;若运动模式为导航模式,可将速度设定为0.20,使机器人可以较大的速度跨越前方的障碍物。
进一步的,基于上述任一实施例,提出本申请越障方法的又一实施例,在本实施例中,若所述驱动参数和/或运动参数,满足以下至少一种,则确定满足预设条件:
根据所述运动参数确定所述机器人打滑;
驱动参数变化值大于预设驱动阈值;
运动参数变化值大于预设运动阈值。
具体的,在本实施例中,运动参数可包括机器人在行进过程中从第一时刻到第二时刻的移动位置的变化值,第一时刻与第二时刻的时间间隔可预先设置。变化值小于或等于设定阈值,可确定机器人发生打滑;变化值大于设定阈值,可确定机器人未发生打滑。在其他实施例中,运动参数也可为机器人的移动速度等其他参数,例如移动速度小于设定速度可认为机器人发生打滑;移动速度大于或等于设定速度可认为机器人未发生打滑。在通过运动参数确定机器人打滑时,可认为机器人所在位置有障碍物,无法继续行进,此时通过机器人执行第二越障操作来使机器人跨越障碍。
驱动参数变化值为表征所述驱动参数随时间变化特征的参数。具体的,可在机器人行进过程中的第三时刻检测机器人的第一驱动参数,间隔设定时长,在第四时刻检测机器人的第二驱动参数,根据第一驱动参数和第二驱动参数确定驱动参数变化值(如将第一驱动参数和第二驱动参数之间差值的绝对值作为驱动参数变化值等)。预设驱动阈值为预先设置的参数。在驱动参数变化值大于预设驱动阈值时可认为当前机器人所在位置存在目标障碍物(如门槛)无法继续行进,此时通过机器人执行第二越障操作来使机器人跨越障碍。例如,将拖地模块的蜗杆功率变化值作为这里的驱动参数变化值,在拖地模式下,拖地模块距离地面较低,此时连接拖地模块的蜗杆功率变化值大于设定功率变化值,表明机器人清洁模块受到障碍物的阻挡而导致驱动功率增大,此时可确定机器人所在位置存在使机器人无法继续行进的障碍物,可认为驱动参数满足预设条件,控制机器人执行第二越障操作。
运动参数变化值为表征所述运动参数随时间变化特征的参数。具体的,可在机器人行进过程中的第五时刻检测机器人的第一运动参数,间隔设定时长,在第六时刻检测机器人的第二运动参数,根据第一运动参数和第二运动参数确定运动参数变化值(如将第一运动参数和第二运动参数之间差值的绝对值作为运动参数变化值等)。预设运动阈值为预先设置的参数。在运动参数变化值大于预设运动阈值时可认为当前机器人所在位置存在目标障碍物(如门槛)无法继续行进,此时通过机器人执行第二越障操作来使机器人跨越障碍。例如,将机器人的角速度变化值作为这里的运动参数变化值,若角速度变化值大于角速度变化阈值,表明机器人受到障碍物的阻力影响无法行进而在原地自转,此时可确定机器人所在位置存在使机器人无法继续行进的障碍物,可认为运动参数满足预设条件,控制机器人执行第二越障操作。
在本实施例中,机器人打滑、机器人行进过程中驱动参数和/或运动参数的变化情况可准确表征机器人行进过程中是否出现由于障碍物阻挡而无法继续行进的情况,因此将上述条件作为第二避障操作执行的触发条件,可确保机器人行进过程中受到障碍物阻挡无法无需行进时,可及时执行被动越障操作,以保证机器人可顺利通过障碍物。
进一步的,基于上述任一实施例,提出本申请越障方法的再一实施例,在本实施例中,所述第二越障操作包括第一子操作和/或第二子操作,所述第一子操作为所述机器人后退之后以大于或等于目标速度阈值的移动速度前进,所述第二子操作为所述机器人一边转向一边前进跨越所述目标障碍物。
其中,第一子操作为所述机器人后退之后以大于或等于目标速度阈值的移动速度前进,可以理解为一种后退向前冲的操作;第二子操作为机器人一边转向一边前进跨越目标障碍物,可以理解为一种扭动跨越障碍物的操作。
目标速度阈值可以是机器人后退之前的前进速度,也可以是预先设置的设定速度阈值。设定速度阈值具体为预先设置的机器人跨越目标障碍物所需的最小速度值。
具体的,可根据实际需求(获取用户设置参数或基于预设规则)从第一子操作和第二子操作中选取其中一个或两个作为第二越障操作;也可预先默认配置第一子操作和第二子操作中一个或两个为第二越障操作。
其中,第二越障操作包括第一子操作和第二子操作时,具体可先执行第一子操作再执行第二子操作,也可先执行第二子操作再执行第一子操作。
在执行第二越障操作的过程中,机器人的前进速度可以大于或等于上述的设定速度阈值,以提高越障成功率。
在本实施例中,通过第一子操作和/或第二子操作,可实现在与运动状态信息匹配的第二越障模式下,机器人可以后退向前冲或扭动的方式来跨越目标障碍物,实现机器人越障成功率有效提高。
进一步的,在机器人所安装的清洁模块的离地距离可调节的情况下,在执行第一越障操作或第二越障操作之前,可控制机器人将清洁模块调节至离地距离最大的位置后再执行第一越障操作或第二越障操作,从而有利于机器人越障成功率的进一步提高。
进一步的,在本实施例中,其中,所述机器人包括机身、清洁模块和脚轮,所述脚轮设于所述机身的底部,所述清洁模块设于所述机身的底部。参照图4,所述控制所述机器人执行第二越障操作的步骤之前,还包括:步骤S201,获取所述机器人当前的清洁模式和所述机器人的移动通道的尺寸参数;
具体的,机器人可预先设置有不同的清洁模式,清洁模式可包括以下至少一种:扫地模式、拖地模式、扫地拖地模式,扫地拖地模式是指机器人同时进行扫地拖地的模式。不同清洁模式对应的机器人与目标障碍物接触的风险不同。清洁模式具体可通过获取用户设置的参数得到,也可通过识别机器人当前所安装的清洁模块的类型得到(其中,清洁模块可有多于一个且与机身可拆卸连接,不同的清洁模块可由用户根据实际需求安装在机身上),等等。
移动通道具体指的是机器人朝向目标障碍物移动的移动路径上允许机器人通过的空间范围。例如,移动路径两侧有阻挡物时,移动通道的尺寸参数包括两侧阻挡物之间的距离。又如,移动路径上方向有阻挡物时,移动通道的尺寸参数包括阻挡物与地面之间的间隔距离。
需要说明的是这里清洁模式和尺寸参数在机器人的驱动参数和/或运动参数满足预设条件时获取。
基于步骤S201,参照图4,所述控制机器人执行第二越障操作的步骤包括:步骤S202,根据所述清洁模式和尺寸参数执行所述第二越障操作。
可根据不同的清洁模式和不同的尺寸参数执行不同的第二越障操作。清洁模式、尺寸参数与第二越障操作之间的对应关系可为系统默认设置,也可通过获取用户输入的参数得到。
具体的,在本实施例中,当所述尺寸参数小于预设尺寸时,控制机器人执行所述第一子操作;当所述清洁模式为第一清洁模式时,控制机器人执行所述第二子操作;当所述清洁模式为第二清洁模式时,控制机器人执行所述第一子操作和所述第二子操作。其中,在尺寸参数大于或等于预设尺寸时,可基于清洁模式的类型执行所述第二越障操作,也可直接默认设置为第一子操作和/或第二子操作中的一个。在清洁模式为第一清洁模式和第二清洁模式以外的其他模式时,且尺寸参数大于或等于预设尺寸时,可执行第一子操作和第二子操作。
其中,所述第一清洁模式下所述清洁模块的离地距离小于第二设定距离阈值,所述第二清洁模式下所述清洁模块的离地距离大于第三设定距离阈值,所述第二设定距离阈值小于或等于所述第三设定距离阈值,所述预设尺寸根据所述机器人的尺寸确定,例如将比机器人的尺寸大预设值的尺寸值作为预设尺寸。
结合移动通道的尺寸和清洁模块具有不同离地距离的清洁模式来选取机器人的越障操作,从而有利于保证机器人所执行的越障操作可与其自身的运行情况和所处场景的情况精准匹配,实现机器人越障成功率的进一步提高。其中,机器人在窄道时使用第一子操作来越障,从而有效避免机器人跨越目标障碍物过程中碰到其他障碍物而无法到达目标障碍物所在地点或损坏,保证机器人跨越目标障碍物的成功率有效提高;在清洁模块离地较远的清洁模式下时,采用第二子操作来越障,从而使机器人到达目标障碍物所在位置时目标障碍物对机器人运动的阻力减小,保证机器人跨越目标障碍物的成功率有效提高;在清洁模块离地较近时的清洁模式下,结合第一子操作和第二子操作来越障,从而使机器人到达目标障碍物所在位置时有更大的动能克服目标障碍物与清洁模块碰触对机器人运动所产生的阻力,保证机器人跨越目标障碍物的成功率有效提高。
进一步的,在本实施例中,在所述第二越障操作包括所述第一子操作和所述第二子操作时,参照图5,所述控制机器人执行第二越障操作的步骤包括:
步骤S21,控制所述机器人执行第一子操作,并获取所述机器人相对于所述目标障碍物的位置状态信息;
位置状态信息具体包括机器人位于目标障碍物上或机器人位于所述目标障碍物以外的位置。其中,机器人位于目标障碍物上包括机器人部分位于目标障碍物上或机器人整体位于目标障碍物上。机器人位于所述目标障碍物以外的位置指的是机器人整体位于目标障碍物所在位置以外的位置。
位置状态信息可通过获取机器人自身携带的检测模块的检测参数分析得到,也可通过获取机器人所在环境中设置的检测模块(如摄像头)检测的参数分析得到。
步骤S22,若所述位置状态信息为所述机器人位于所述目标障碍物上,则控制所述机器人执行所述第二子操作;
步骤S23,若所述位置状态信息为所述机器人位于所述目标障碍物以外的位置,则返回步骤S21。
在本实施例中,通过上述步骤,机器人在越障的过程中,先后退向前冲,在冲上目标障碍物之后,再切换成扭动越障方式,从而进一步减小目标障碍物对机器人前进的阻力,实现跨越目标障碍物成功率的进一步提高。
具体的,在本实施例中,获取所述机器人相对于所述目标障碍物的位置状态信息的步骤包括:
步骤S211,获取第一时刻与第二时刻之间的间隔时长;和/或确定所述机器人从所述第一时刻到所述第二时刻所处位置之间的位置偏差,所述第一时刻为所述机器人执行所述第一子操作之前处于打滑状态的时刻,所述第二时刻为所述机器人执行所述第一子操作过程中处于打滑状态的时刻;
其中,第一时刻与第二时刻之间的间隔时长具体不超过预设时长(例如10s),从而保证后续位置状态信息的准确性。
步骤S212,若所述间隔时长大于第一设定时长,和/或所述位置偏差大于预设偏差阈值,则确定所述位置状态信息为所述机器人位于所述目标障碍物上;若所述间隔时长小于或等于第一设定时长,且所述位置偏差小于或等于预设偏差阈值,则确定所述位置状态信息为所述机器人位于所述目标障碍物上,确定所述位置状态信息为所述机器人位于所述目标障碍物以外的位置
在本实施例中,基于机器人在执行第一子操作后退向前冲前后发生打滑时时间或位置等运行参数来获取机器人相对于目标障碍物的位置状态信息,从而保证所获取的位置状态信息的准确性,以确保机器人越障过程中可及时从第一子操作切换成第二子操作,进一步提高机器人越障的成功率。
具体的,以一个机器人跨越门槛的具体应用来说明本实施例的机器人通过步骤S21至步骤S23及其细化步骤的越障过程:在拖地模式下(此时机器人的清洁模块距离地面的距离小于设定距离阈值,容易卡在门槛等障碍物上),基于上述的运动参数确定机器人发生打滑时(即第一时刻),可记录机器人的初始位置a(初始位置a检测的过程中机器人可静止一段时间使机器人处于一个稳定的姿态),然后控制机器人采用后退向前冲(即第一子操作)的方式跨越门槛。在采用后退向前冲的方式跨越门槛的过程中可监测机器人的运动参数,若基于监测到的运动参数确定机器人在一段时间t(如10s)内机器人再次发生打滑时(即第二时刻),可记录机器人当前的位置b。确定位置a与位置b之间的距离可作为上述的位置偏差,确定第一时刻与第二时刻之间的时间差作为上述的间隔时长,则在该距离大于或等于一定值和/或时间差大于或等于一定值时,说明机器人已经上了门槛,则直接开始做扭动跨门槛的动作(即第二子操作);否则,认为机器人尚未上门槛,则机器人可维持继续后退向前冲的操作以跨越门槛。
进一步的,在本实施例中,在第二越障操作包括第二子操作时,参照图6,所述控制所述机器人执行第二越障操作的步骤包括:
步骤S210,在所述机器人触发打滑后,控制所述机器人以第一速度后退,获取机器人后退过程中的翻滚角平均值;
第一速度可为预先设置的固定速度,也可为根据机器人实际运行情况(例如根据机器人出现打滑状态的持续时长)确定的速度。
具体的,可确定第一速度对应的驱动功率,按照所确定的驱动功率控制机器人后退。
在控制机器人后退的过程中,可实时或间隔设定时长检测机器人的翻滚角,可获得多个翻滚角。将检测到的多个翻滚角的均值作为翻滚角平均值。
其中,翻滚角表征机器人翻滚的程度,可通过机器人上设置的姿态检测模块(例如陀螺仪)检测。在机器人后退过程中翻滚角平均值,可表征机器人后退过程中姿态情况。
步骤S220,在机器人后退距离达到预设距离或者后退时长达到预设时长时,控制所述机器人执行第一转向操作,所述第一转向操作为朝第一转向方向转动并前进;
预设距离和预设时长为预先设置的参数,具体数值可根据实际情况进行设置。在机器人后退距离达到预设距离或者后退时长达到预设时长时表明机器人已经后退足够大的距离,此时可认为机器人整体位于目标障碍物以外的位置,则可控制机器人一边向第一转向方向转向一并向前进。
第一转向方向可以是预先设置的默认方向,也可根据机器人发生打滑时所处的转动方向确定的方向(如发生打滑时所处的转动方向的反方向)。
步骤S230,在所述机器人的翻滚角相对于所述翻滚角平均值增大第一数值时,控制所述机器人执行第二转向操作,所述第二转向操作为所述机器人朝第二转向方向转动并前进;其中,所述第一转向方向与所述第二转向方向为不同方向。
具体的,在本实施例中,第二转向方向与第一转向方向为相反方向,例如,第二转向方向可以为顺时针方向或逆时针方向,第二转向方向可以为逆时针方向或顺时针方向;又例如,第一转向方向可以为向左的方向或向右的方向,第二转向方向可以为向右的方向或向左的方向。其他实施例中,第一转向方向和第二转向方向也可根据实际需求设置为其他方向,例如将与第一转向方向呈预设夹角的方向作为第二转向方向。
机器人执行第一转向操作的过程中,可实时检测机器人的翻滚角,将所检测到的翻滚角与上述确定的翻滚角平均值的大小进行比较并确定两个数值之间的差值的绝对值,若检测到的翻滚角大于上述翻滚角平均值、且绝对值大于或等于第一数值时,可认为机器人的姿态在第一转向操作的作用下发生较大的变化,此时控制机器人变换转向后一边转向一边前进,有利于减少障碍物对机器人越障过程中产生的阻力,实现提高机器人越障的成功率。例如,在机器人的脚轮多于一个时,机器人以一个方向转动并前进的前后机器人从全部脚轮均与位于目标障碍物以外变化至部分脚轮位于目标障碍物上方,此时可控制机器人朝另一方向转动并前进。这里在机器人转向越障的过程中,检测到机器人部分上了障碍物时切换其转向,从而有利于减少障碍物对机器人未上障碍物的部分的阻力,实现提高机器人越障的成功率。
步骤S240,在所述机器人的翻滚角相对于所述翻滚角平均值减小第二数值之后,向前行进预设时长,直至跨过所述目标障碍物;
机器人执行第二转向操作的过程中,可实时检测机器人的翻滚角,将所检测到的翻滚角与上述确定的翻滚角平均值的大小进行比较并确定两个数值之间的差值的绝对值,若检测到的翻滚角小于上述翻滚角平均值、且绝对值小于或等于第二数值时,可认为机器人的姿态在第二转向操作的作用下发生较大的变化,此时控制机器人继续向前行进预设时长,这里的前进可以是沿当前转向方向前进也可以是直线前进,有利于进一步保证机器人顺利跨越障碍物,提高机器人越障的成功率。
具体的,在本实施例中,在机器人的脚轮多于一个时,机器人后退之后第一转向操作的作用下,使机器人全部脚轮位于障碍物以外的位置变化至部分脚轮位于障碍物上的状态,使机器人的翻滚角相对于后退过程中翻滚角平均值增大第一数值;进一步在第二转向操作的作用下,使机器人部分脚轮位于障碍物上变化至全部脚轮位于障碍物上,使机器人的翻滚角相对于后退过程中翻滚角平均值减小第二数值,在机器人全部脚轮均位于障碍物上时机器人继续前进预设时长,有利于避免机器人刚跨上障碍物的部分再次掉落,从而实现机器人越障效率的进一步提高。
具体的,以一个机器人跨越门槛的具体应用来说明本实施例的机器人通过步骤S210至步骤S240越障过程:机器人触发打滑后,以一定的速度向后退一段时间,并记录这段时间内的翻滚角平均值k,在机器人后退距离达到预设距离或者后退时长达到预设时长时,机器人向第一转向方向(例如顺时针方向)一边转向一边前进,当机器人的翻滚角roll相对k增大第一数值后,说明机器人的一个脚轮已经上了门槛,此时控制机器人向第二转向方向(例如逆时针方向)一边转向一边前进,当机器人的翻滚角roll减小至比较接近k时,说明另一个脚轮也上了门槛,此时控制机器人再向前走持续一小段时间,保证不会因为转向而导致脚轮掉落门槛,从而保证机器人成功跨越门槛。
又例如,第一转向方向可以是左转的方向,第二转向可以是右转的方向,以机器人先左转再右转为例,假设机器人打滑后退时处于平地,则翻滚角平均值k=0,机器人先向左一边转一边前进,使机器人的右轮上门槛,若检测机器人的翻滚角roll为负数并达到一定值x以上,即认为机器人的右轮上了门槛;然后机器人向右一边转一边前进,使机器人的左轮上门槛,若检测机器人的翻滚角roll从一定值x逐渐回到0附近,即认为机器人的左轮上了门槛,此时机器人可继续前进一段时间,保证两个脚轮不会从障碍物上掉落。
在本实施例中,通过机器人先后退再一边转向一边向前来实现机器人跨越障碍物,并且机器人在越障的过程中朝不同方向转向并前进,有利于进一步减少越障过程中的阻力,从而实现越障成功率的进一步提高。在越障的过程中通过机器人翻滚角的监测来表征机器人的越障过程中的姿态,从而准确越障操作过程中机器人的姿态变化,并且适应于机器人越障过程中姿态变化及时适应性的调整越障操作,从而进一步减少障碍物对机器人产生的阻力,提高机器人越障的成功率。
进一步的,基于上述任一实施例,提出本申请越障方法再另一实施例。在本实施例中,参照图7,所述控制所述机器人执行第二越障操作的步骤之前,所述方法还包括:
步骤S01,若所述机器人处于限位于所述目标障碍物的状态,则控制所述机器人执行挣脱操作,所述挣脱操作为挣脱所述目标障碍物的操作;
步骤S02,若所述机器人处于与所述目标障碍物解除限位的状态,则执行所述控制所述机器人执行第二越障操作的步骤。
当机器人限位于目标障碍物,可确定机器人被目标障碍物卡住,例如,若目标障碍物为门槛,则表明机器人被门槛卡住。在所述机器人行进过程中可先判断机器人的驱动参数和/或运动参数是否满足预设条件,在满足预设条件时再执行这里的步骤S01和步骤S02。
其中,定义第一状态为所述机器人限位于所述目标障碍物的状态,定义第二状态为所述机器人与所述目标障碍物解除限位的状态。这里的第一状态和第二状态可通过获取用户输入指令得到,也可通过获取机器人上设置的检测模块(例如碰撞传感器等)检测的参数得到,还可通过获取机器人运行情况(例如执行越障操作前后的位移情况)得到。
这里的挣脱操作可以是控制机器人转向的操作,也可以是其他任意使机器人从第一状态切换至第二状态的操作。
具体的,挣脱操作为转向操作时,可控制机器人朝一个转向方向或不同转向方向前进或后退,从而使机器人可相对于目标障碍物运动。
在本实施例中,通过上述步骤,可保证机器人被障碍物卡死时,障碍物上挣脱下来,在保证机器人可相对于障碍物运动时才进一步执行越障操作,从而有利于保证后续越障操作执行后可成功跨越目标障碍物,进一步提高机器人越障的成功率。
此外,本发明实施例还提出一种越障装置,该越障装置包括:
第一越障模块,所述第一越障模块用于在机器人行进过程中,若机器人行进方向上目标区域内检测到目标障碍物,则控制机器人执行第一越障操作;
第二越障模块,所述第二越障模块用于若所述机器人的驱动参数和/或运动参数满足预设条件,则控制机器人执行第二越障操作。
在本实施例中,越障装置各硬件模块所执行的步骤的细化方案及其技术效果具体可参见上述越障方法中对应步骤的细化方案及其技术效果,在此不作赘述。
此外,本发明实施例还提出一种越障程序,所述机器人控制程序被执行时如上越障方法任一实施例的相关步骤。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有越障程序,所述越障程序被处理器执行时实现如上越障方法任一实施例的相关步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。