开云优惠体育网页版入口

开云优惠体育网页版入口:自平衡设备的平衡控制方法、装置、设备及存储介质

更新时间:2026-09-01
自平衡设备的平衡控制方法、装置、设备及存储介质 专利申请类型:实用新型专利;
地区:广东-深圳;
源自:深圳高价值专利检索信息库;

专利名称:自平衡设备的平衡控制方法、装置、设备及存储介质

专利类型:实用新型专利

专利申请号:CN202011596072.9

专利申请(专利权)人:腾讯开云优惠体育网页版入口(深圳)有限公司
权利人地址:广东省深圳市南山区高新区开云优惠体育网页版入口中一路腾讯大厦35层

专利发明(设计)人:王帅,张冲,周伊凡,林江浩

专利摘要:本公开提供一种自平衡设备的平衡控制方法、装置、设备及存储介质,涉及机器人控制技术领域。该方法包括:获取所述自平衡设备偏离平衡状态的当前位姿变化参数;根据所述当前位姿变化参数获得所述自平衡设备的当前线性控制率;根据所述当前位姿变化参数和所述当前线性控制率获得主控制输入;根据所述当前位姿变化参数获得当前状态向量;基于所述当前状态向量获得副控制输入;根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。该方法基于机器学习技术,在线性控制的基础上叠加了强化学习反馈控制,实现了提高平衡控制的控制效果。

主权利要求:
1.一种自平衡设备的平衡控制方法,其特征在于,所述自平衡设备包括驱动体和滚动体,所述方法包括:获取所述自平衡设备偏离平衡状态的当前位姿变化参数,所述当前位姿变化参数包括高度变化参数;
根据所述当前位姿变化参数获得所述自平衡设备的当前线性控制率;
根据所述当前位姿变化参数和所述当前线性控制率获得主控制输入;
根据所述当前位姿变化参数获得当前状态向量;
基于所述当前状态向量获得副控制输入;
根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡;
所述基于所述当前状态向量获得副控制输入包括:获取当前在线策略网络;
将所述当前状态向量输入所述当前在线策略网络,获得所述副控制输入;
获取当前在线行为值网络、当前目标行为值网络和当前目标策略网络;
获取当前奖励;
获得下一时间步的状态向量;
基于所述当前状态向量、所述当前调整行为、所述当前奖励和所述下一时间步的状态向量和所述当前目标策略网络,通过所述当前目标行为值网络更新所述当前在线行为值网络;
基于所述当前状态向量、所述当前调整行为和所述下一时间步的状态向量,根据更新的在线行为值网络更新所述当前在线策略网络;
获取软更新参数;
根据所述软更新参数和更新的当前在线行为值网络对所述当前目标行为值网络进行软更新;
根据所述软更新参数和更新的当前在线策略网络对所述当前目标策略网络进行软更新;
所述获取当前奖励包括:
获取奖励函数,所述奖励函数中的唯一变量为所述驱动体的倾斜角度,所述奖励函数包括使奖励恒为正值的常数;
将所述驱动体的当前倾斜角度代入所述奖励函数,获得所述当前奖励。
2.根据权利要求1所述的方法,其特征在于:
所述当前位姿变化参数包括所述驱动体的当前倾斜角度和当前倾斜角速度,以及所述滚动体的当前转动角度和当前转动角速度;
所述根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡包括:根据所述主控制输入和所述副控制输入获得当前致动数据,以使所述驱动体根据所述当前致动数据对所述滚动体施加致动力矩驱动所述滚动体滚动,以使所述驱动体恢复平衡。
3.根据权利要求2所述的方法,其特征在于:
所述根据所述当前位姿变化参数获得当前状态向量包括:根据所述驱动体的当前倾斜角度和当前倾斜角速度、所述滚动体的当前转动角度和当前转动角速度、以及所述驱动体的高度变化参数获得所述当前状态向量。
4.根据权利要求1所述的方法,其特征在于,所述基于所述当前状态向量、所述当前调整行为、所述当前奖励和所述下一时间步的状态向量和所述当前目标策略网络,通过所述当前目标行为值网络更新所述当前在线行为值网络包括:基于所述当前奖励、所述下一时间步的状态向量和所述当前目标策略网络,通过所述当前目标行为值网络获得预测行为值;
基于所述当前状态向量、所述当前调整行为和所述预测行为值,通过所述当前在线行为值网络获得在线行为值网络损失函数;
通过最小化所述在线行为值网络损失函数,更新所述当前在线行为值网络。
5.根据权利要求1所述的方法,其特征在于,所述基于所述当前状态向量、所述当前调整行为和所述下一时间步的状态向量,根据更新的在线行为值网络更新所述当前在线策略网络包括:基于所述当前状态向量、所述当前调整行为和所述下一时间步的状态向量,获得所述更新的在线行为值网络梯度和所述当前在线策略网络梯度;
根据所述更新的在线行为值网络梯度和所述当前在线策略网络梯度,采用链式规则更新所述当前在线策略网络。
6.根据权利要求1所述的方法,其特征在于,还包括:获取偏离角度阈值;
所述根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡包括:在根据所述当前位姿变化参数判定所述自平衡设备偏离平衡状态的角度超过所述偏离角度阈值时,根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。
7.根据权利要求6所述的方法,其特征在于,所述根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡,还包括:在根据所述当前位姿变化参数判定所述自平衡设备偏离平衡状态的角度不超过所述偏离角度阈值时,根据所述主控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。
8.根据权利要求1所述的方法,其特征在于,所述根据所述当前位姿变化参数获得所述自平衡设备的当前线性控制率包括:获取所述自平衡设备的物理参数;
基于所述当前位姿变化参数和所述物理参数,根据运动方程建立所述自平衡设备的线性状态空间模型;
根据所述线性状态空间模型获得所述当前线性控制率。
9.根据权利要求8所述的方法,其特征在于:
所述根据所述线性状态空间模型获得所述当前线性控制率包括:获得控制能量函数;
根据所述线性状态空间模型利用所述当前位姿变化参数和所述当前线性控制率表示所述控制能量函数,以通过最小化所述控制能量函数获得所述当前线性控制率。
10.一种自平衡设备的平衡控制装置,其特征在于,所述自平衡设备包括驱动体和滚动体,所述装置包括:偏离参数获取模块,用于获取所述自平衡设备偏离平衡状态的当前位姿变化参数,所述当前位姿变化参数包括高度变化参数;
线性控制率获得模块,用于根据所述当前位姿变化参数获得所述自平衡设备的当前线性控制率;
主控制输入获得模块,用于根据所述当前位姿变化参数和所述当前线性控制率获得主控制输入;
状态向量获得模块,用于根据所述当前位姿变化参数获得当前状态向量;
所述状态向量获得模块还用于获得下一时间步的状态向量;
副控制输入获得模块,用于基于所述当前状态向量获得副控制输入;
所述副控制输入获得模块,还用于获取当前在线策略网络,并将所述当前状态向量输入所述当前在线策略网络,获得所述副控制输入;
深度网络获取模块,用于获取当前在线行为值网络、当前目标行为值网络和当前目标策略网络;
奖励获取模块,用于获取当前奖励;
所述奖励获取模块还用于:获取奖励函数,所述奖励函数中的唯一变量为驱动体的倾斜角度,所述奖励函数包括使奖励恒为正值的常数;将所述驱动体的当前倾斜角度代入所述奖励函数,获得所述当前奖励;
在线行为值网络更新模块,用于基于所述当前状态向量、所述当前调整行为、所述当前奖励和所述下一时间步的状态向量和所述当前目标策略网络,通过所述当前目标行为值网络更新所述当前在线行为值网络;
在线策略网络更新模块,用于基于所述当前状态向量、所述当前调整行为和所述下一时间步的状态向量,根据更新的在线行为值网络更新所述当前在线策略网络;
软更新参数获取模块,用于获取软更新参数;
目标行为值网络更新模块,用于根据所述软更新参数和更新的当前在线行为值网络对所述当前目标行为值网络进行软更新;
目标策略网络更新模块,用于根据所述软更新参数和更新的当前在线策略网络对所述当前目标策略网络进行软更新;
致动数据获得模块,用于根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。
11.一种电子设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,其特征在于,所述处理器执行所述可执行指令时实现如权利要求1?9任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1?9任一项所述的方法。 说明书 : 自平衡设备的平衡控制方法、装置、设备及存储介质技术领域[0001] 本公开涉及机器人控制技术领域,具体而言,涉及一种自平衡设备的平衡控制方法、装置、电子设备及计算机可读存储介质。背景技术[0002] 对于机器人来说,平衡性和动态运动能力尤为重要。自平衡设备是测试平衡控制器有效性的良好平台,例如平衡球机器人(ballbot)。Ballbot是在单个球形轮上保持平衡的动态稳定的移动机器人。与其他在地面上的移动方式相比,这种独特的移动方式使机器人可以全向移动,非常的灵活且便于操纵。同样,连续的位置调整可使机器人的高度足以应付人机交互,并在具有较大的加速度时不会倾翻。而且,在球上保持平衡还可以使该机器人更适用于人类环境。但是,Ballbot系统的基本动力学是高度非线性和不稳定的,因此需要完整的系统动力学计划和控制。尤其是当自平衡设备倾斜大角度时,模型处于非线性区间,应用不准确的模型进行控制会导致平衡控制失败,控制效果较差。[0003] 如上所述,如何提高平衡控制方法的控制效果成为亟待解决的问题。发明内容[0004] 本公开的目的在于提供一种自平衡设备的平衡控制方法、装置、设备及可读存储介质,至少一定程度上提高平衡控制的控制效果。[0005] 本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。[0006] 本公开实施例提供一种自平衡设备的平衡控制方法,包括:获取所述自平衡设备偏离平衡状态的当前位姿变化参数;根据所述当前位姿变化参数获得所述自平衡设备的当前线性控制率;根据所述当前位姿变化参数和所述当前线性控制率获得主控制输入;根据所述当前位姿变化参数获得当前状态向量;基于所述当前状态向量获得副控制输入;根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。[0007] 本公开实施例提供一种自平衡设备的平衡控制装置,包括:偏离参数获取模块,用于获取所述自平衡设备偏离平衡状态的当前位姿变化参数;线性控制率获得模块,用于根据所述当前位姿变化参数获得所述自平衡设备的当前线性控制率;主控制输入获得模块,用于根据所述当前位姿变化参数和所述当前线性控制率获得主控制输入;状态向量获得模块,用于根据所述当前位姿变化参数获得当前状态向量;副控制输入获得模块,用于基于所述当前状态向量获得副控制输入;致动数据获得模块,用于根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。[0008] 根据本公开的一实施例,所述自平衡设备包括驱动体和滚动体;所述当前位姿变化参数包括所述驱动体的当前倾斜角度和当前倾斜角速度,以及所述滚动体的当前转动角度和当前转动角速度;所述致动数据获得模块还用于:根据所述主控制输入和所述副控制输入获得当前致动数据,以使所述驱动体根据所述当前致动数据对所述滚动体施加致动力矩驱动所述滚动体滚动,以使所述驱动体恢复平衡。[0009] 根据本公开的一实施例,所述当前位姿变化参数还包括高度变化参数;所述状态向量获得模块包括:高度参数获得模块,用于获得所述驱动体的高度变化参数;状态向量计算模块,用于根据所述驱动体的当前倾斜角度和当前倾斜角速度、所述滚动体的当前转动角度和当前转动角速度、以及所述驱动体的高度变化参数获得所述当前状态向量。[0010] 根据本公开的一实施例,所述副控制输入获得模块包括:当前在线策略网络获取模块,用于获取当前在线策略网络;当前在线策略网络计算模块,用于将所述当前状态向量输入所述当前在线策略网络,获得所述副控制输入。[0011] 根据本公开的一实施例,所述装置还包括:深度网络获取模块,用于获取当前在线行为值网络、当前目标行为值网络和当前目标策略网络;奖励获取模块,用于获取当前奖励;所述状态向量获得模块还用于获得下一时间步的状态向量;所述装置还包括:在线行为值网络更新模块,用于基于所述当前状态向量、所述当前调整行为、所述当前奖励和所述下一时间步的状态向量和所述当前目标策略网络,通过所述当前目标行为值网络更新所述当前在线行为值网络;在线策略网络更新模块,用于基于所述当前状态向量、所述当前调整行为和所述下一时间步的状态向量,根据更新的在线行为值网络更新所述当前在线策略网络;软更新参数获取模块,用于获取软更新参数;目标行为值网络更新模块,用于根据所述软更新参数和更新的当前在线行为值网络对所述当前目标行为值网络进行软更新;目标策略网络更新模块,用于根据所述软更新参数和更新的当前在线策略网络对所述当前目标策略网络进行软更新。[0012] 根据本公开的一实施例,所述奖励获取模块还用于:获取奖励函数,所述奖励函数中的变量为驱动体的倾斜角度;将所述驱动体的当前倾斜角度代入所述奖励函数,获得所述当前奖励。[0013] 根据本公开的一实施例,所述在线行为值网络更新模块还用于:基于所述当前奖励、所述下一时间步的状态向量和所述当前目标策略网络,通过所述当前目标行为值网络获得预测行为值;基于所述当前状态向量、所述当前调整行为和所述预测行为值,通过所述当前在线行为值网络获得在线行为值网络损失函数;通过最小化所述在线行为值网络损失函数,更新所述当前在线行为值网络。[0014] 根据本公开的一实施例,所述在线策略网络更新模块还用于:基于所述当前状态向量、所述当前调整行为和所述下一时间步的状态向量,获得所述更新的在线行为值网络梯度和所述当前在线策略网络梯度;根据所述更新的在线行为值网络梯度和所述当前在线策略网络梯度,采用链式规则更新所述当前在线策略网络。[0015] 根据本公开的一实施例,所述装置还包括:偏离阈值获取模块,用于获取偏离角度阈值;所述致动数据获得模块还用于:在根据所述当前位姿变化参数判定所述自平衡设备偏离平衡状态的角度超过所述偏离角度阈值时,根据所述主控制输入和所述副控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。[0016] 根据本公开的一实施例,所述致动数据获得模块还用于:在根据所述当前位姿变化参数判定所述自平衡设备偏离平衡状态的角度不超过所述偏离角度阈值时,根据所述主控制输入获得当前致动数据,以驱使所述自平衡设备恢复平衡。[0017] 根据本公开的一实施例,所述线性控制率获得模块包括:物理参数获取模块,用于获取所述自平衡设备的物理参数;线性空间建模模块,用于基于所述当前位姿变化参数和所述物理参数,根据运动方程建立所述自平衡设备的线性状态空间模型;线性控制率计算模块,用于根据所述线性状态空间模型获得所述当前线性控制率。[0018] 根据本公开的一实施例,所述线性控制率计算模块还用于:获得控制能量函数;根据所述线性状态空间模型利用所述当前位姿变化参数和所述当前线性控制率表示所述控制能量函数,以通过最小化所述控制能量函数获得所述当前线性控制率。[0019] 本公开实施例提供一种设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任一种方法。[0020] 本公开实施例提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任一种方法。[0021] 本公开实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。[0022] 本公开的实施例提供的自平衡设备的平衡控制方法,通过根据获取的自平衡设备偏离平衡状态的当前位姿变化参数获得自平衡设备的当前线性控制率,然后根据当前位姿变化参数和当前线性控制率获得主控制输入,再根据当前位姿变化参数获得当前状态向量以基于当前状态向量获得副控制输入,根据主控制输入和副控制输入获得当前致动数据,以驱使自平衡设备恢复平衡,从而可实现提高自平衡设备的平衡控制效果。[0023] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。附图说明[0024] 通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。[0025] 图1示出本公开实施例中一种系统架构的示意图。[0026] 图2示出本公开实施例中一种ballbot机器人系统的结构示意图。[0027] 图3A是根据图2示出的一种ballbot机器人系统模型的俯视示意图。[0028] 图3B是根据图2示出的另一种ballbot机器人系统模型的俯视示意图。[0029] 图4是根据一示例性实施例示出的一种自平衡设备的平衡控制方法的流程图。[0030] 图5是根据一示例性实施例示出的一种线性控制率获得方法的流程图。[0031] 图6是根据一示例性实施例示出的一种策略网络获得方法的流程图。[0032] 图7是根据图2至图6示出的一种复合控制器的平衡控制架构示意图。[0033] 图8根据一示例性实施例示出了一ballbot平衡控制实验中的模型结构图。[0034] 图9根据一示例性实施例示出了一ballbot平衡控制实验中的建模效果图。[0035] 图10根据一示例性实施例示出了一ballbot平衡控制实验中传统控制器的恢复区域图。[0036] 图11根据一示例性实施例示出了一ballbot平衡控制实验中传统控制器下的电机转速与偏离角度随时间变化图。[0037] 图12根据一示例性实施例示出了一ballbot平衡控制实验中复合控制器的恢复区域图。[0038] 图13根据一示例性实施例示出了一ballbot平衡控制实验中复合控制器下的电机转速与偏离角度随时间变化图。[0039] 图14是根据一示例性实施例示出的一种自平衡设备的平衡控制装置的框图。[0040] 图15是根据一示例性实施例示出的另一种自平衡设备的平衡控制装置的框图。[0041] 图16示出本公开实施例中一种电子设备的结构示意图。具体实施方式[0042] 现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。[0043] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,本公开提供了许多具体细节从而使本领域技术人员可以对实施例充分理解。然而,本公开的技术方案可以省略所述特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等,而不影响其实施。在其它情况下,本申请并不详细示出或描述公知结构、方法、装置、实现或者操作,以避免喧宾夺主而使得本公开的各方面变得:。[0044] 此外,在本公开的描述中,除非另有明确的规定和限定,“连接”等术语应做广义理解,例如,可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连。“多个”的含义是至少两个,例如两个,三个等,除非另有明确解释。本领域的普通技术人员可以根据具体情况理解上述术语在本公开中的具体含义。[0045] 人工智能(ArtificialIntelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。[0046] 人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。[0047] 机器学习(MachineLearning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。强化学习(ReinforcementLearning,RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。[0048] 自动驾驶技术通常包括高精地图、环境感知、行为决策、路径规划、运动控制等技术,自定驾驶技术有着广泛的应用前景,[0049] 随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。[0050] 图1示出了可以应用本公开的自平衡设备的平衡控制方法、装置的示例性系统架构10。[0051] 如图1所示,系统架构10可以包括终端设备102、网络104、服务器106和数据库108。终端设备102可以是具有显示屏并且支持输入、输出的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居、机器人等等。网络104用以在终端设备102和服务器106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器106可以是提供各种服务的服务器或服务器集群等。数据库108可以为置于服务器上的大型数据库软件,也可以为安装在计算机上的小型数据库软件,用于存储数据。[0052] 终端设备102可以通过网络104与服务器106和数据库108交互,以接收或发送数据等。例如终端设备102可以将传感器等设备对自身状态的测量参数通过网络104上传到服务器106。又终端设备102通过网络104从服务器106中接收反馈控制参数。再例如终端设备102可以将传感器等设备对自身状态的测量参数通过网络104发送到数据库108进行存储。[0053] 服务器106也可通过网络104从数据库108接收数据或向数据库108发送数据等。例如服务器106可为后台处理服务器,用于从通过网络104从数据库108获取的训练数据进行采样后,训练深度学习网络以进行反馈控制。[0054] 应该理解,图1中的终端设备、网络、服务器和数据库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、服务器和数据库,甚至完全不包括上述中的某些设备。[0055] 本公开实施例提供的技术方案涉及机器人、强化学习等方面,先通过具体的实施例进行举例说明。[0056] 如图2所示,图2示出了一种ballbot机器人系统的结构示意图。Ballbot机器人系统主要由三个对象组成:球202,致动轮204和主体206。主体206中设有动力装置使致动轮204转动,致动轮204与球202接触,使球202传递并承受动力装置产生的力。致动轮204有多种实施方式。例如,致动轮204可以是三个以120°间隔安装的多功能轮。在一些实施例中,致动轮204也可以是以90度间隔安装的多功能轮。[0057] 相关技术中,在进行机器人控制的建模时,通常会做出以下等假设:[0058] 摩擦假设:将球202与地面之间以及致动轮204与主体206之间的摩擦近似为纯粘性阻尼,忽略由静摩擦和非线性动摩擦引起的力。[0059] 无滑动假设:假定球202与地面之间以及球202与致动轮204之间无任何滑动。[0060] 这些假设在一定情况下是可以接受的。图3A和图3B表现了在ballbot系统的简化模型的俯视图中系统重心与支持三角形的空间关系。图3A为重心与支持三角形的第一种空间关系。当ballbot仅倾斜一个小角度时,其重心302对于地面的投影位于支撑三角形内,在这种情况下所有致动轮204都与球202接触。图3B为重心与支持三角形的第二种空间关系。当某些原因使得球平衡机器人的倾斜角度大大增加时,重心302对于地面的投影会位于支撑三角形以外的区域。在这种情况下,由于重力转矩的作用,各部件间的接触条件和摩擦情况会相对第一种情况有很大变化,不再满足上述相关技术中对机器人建模所做的假设。[0061] 具体来说,大的倾斜角度可能会导致有一个甚至两个致动轮与球无接触,或导致碰撞和附加力等等,这在传统反馈控制方法中是无法建模的,因此,一旦引入了不可建模的元素,通:苣咽迪挚悸钦庑┎豢稍げ庖蛩(例如接触和摩擦等),因此无法准确确定模型,进而导致在这些情况下无法控制机器人恢复平衡。换言之,相关技术对倾斜角的大小有实际的限制。[0062] RL算法可以应用于学习非结构化环境的策略中,因为RL算法允许智能体与环境进行连续地交互,并根据交互结果自发地迭代策略。因此,RL对于难以建模的系统来说是一项强大的技术。除此之外,RL可以处理传统控制器难以解决的控制问题,因为它可以将控制目标间接得表示为RL算法中奖励函数中的一项,而无需明确地表示出来。虽然有着这些优点,标准的RL方法不能单独地在Ballbot中使用。它需要机器人通过与环境交互来进行学习,如果单独使用,机器人学习复杂技能所需的交互量巨大、耗时较长。[0063] 本公开提供了一种自平衡设备的平衡控制方法,通过将线性反馈控制器与强化学习方法相结合,提出了一种复合控制器。这个复合控制器以基于线性状态空间模型的反馈控制器为基。诮蟹蠢】刂剖钡加了基于深度确定性策略梯度的强化学习方法训练的网络,可在更大的初始倾斜角度下帮助自平衡装置恢复平衡,从而可提高平衡控制的效果。结合了传统线性反馈控制和RL的方法进行自平衡设备的平衡控制,可在设备初始倾斜角较大的情况中具有良好的控制效果,并能够解决需考虑接触和摩擦不可建模的平衡控制问题。[0064] 图4是根据一实施例示出的一种自平衡设备的平衡控制方法的流程图。如图4所示的方法可以应用于上述系统的服务器,也可以应用于上述系统的终端设备。[0065] 参考图4,一个实施例提供的方法40可以包括以下步骤。[0066] 步骤S402:获取自平衡设备偏离平衡状态的当前位姿变化参数。[0067] 在一些实施例中,当前位姿变化参数可包括当前角度变化参数、当前高度变化参数等等。当前角度变化参数可以通过设备内部或外部设置的传感器获得。传感器可以检测设备的姿态,即检测设备偏离平衡状态的角度、高度等参数的变化。常见的传感器包括陀螺仪等惯性测量单元、加速度传感器或设备状态观测器等等。[0068] 在一些实施例中,自平衡设备可以包括驱动体和滚动体。当前角度变化参数包括驱动体的当前倾斜角度和当前倾斜角速度,以及滚动体的当前转动角度和当前转动角速度。以图2所示为例,驱动体可以包括圆柱形的主体206、致动轮204,滚动体可以包含球形轮202。当前角度变化参数可包含主体206的底面中心轴与z轴的相对倾斜角度,倾斜角速度,滚动体202与初始位置的相对滚动角度和滚动角速度。致动轮204的轮轴可以固定设置在主体206上。致动轮204可由驱动电机驱动,可向前后两个方向转动,其转速可由反馈控制模块控制驱动电机进行调节。[0069] 步骤S404:根据当前位姿变化参数获得自平衡设备的当前线性控制率。[0070] 在一些实施例中,可基于自平衡设备的物理参数和运动方程建立自平衡设备的线性状态空间模型,再根据自平衡设备的线性状态空间模型和当前角度变化参数求解当前线性控制率。具体实施方式可参照图5与下文给出的示例性实施例。[0071] 在一些实施例中,当前线性控制率也可以通过系统调试获得。例如,可在调试过程中记录在一定角度变化参数时,根据不同线性控制率输入力矩进行控制后,自平衡设备的平衡恢复情况。并根据记录下来的调试数据,获得该角度变化参数对应的合理的线性控制率。[0072] 步骤S406:根据当前位姿变化参数和当前线性控制率获得主控制输入。[0073] 自平衡设备的初步平衡恢复控制可基于线性系统控制理论。因此可根据当前角度变化参数和当前线性控制率获得线性反馈的主控制输入。[0074] 在一些实施例中,可将当前线性控制率与当前角度变化参数相乘获得主控制输入,所述主控制输入可以为力矩形式。具体示例实施方式可参照图5并将在下文给出。本公开不对根据当前角度变化参数和当前线性控制率获得主控制输入的具体方法进行限定。[0075] 步骤S408:根据当前位姿变化参数获得当前状态向量。[0076] 当在偏离角度较大等情况中,基于线性控制的主控制输入力矩不能使自平衡设备恢复平衡,此时采用通过强化学习方法得到的策略网络恢复机器人的平衡,因此需要获得表征当前时刻系统状态的当前状态向量。[0077] 在一些实施例中,可先获得驱动体的高度变化参数;根据驱动体的当前倾斜角度和当前倾斜角速度、滚动体的当前转动角度和当前转动角速度、以及驱动体的高度变化参数获得当前状态向量。在一些情况下驱动体给予滚动体的致动力矩导致致动轮脱离球体时,出现机器人“踢”球的现象,驱动体可能会落到地面上以保持自己平衡。为将驱动体在保持平衡的过程中限制在滚动体上,可以将驱动体的高度作为状态参数在强化学习中进行学习。[0078] 步骤S410:基于当前状态向量获得副控制输入。[0079] 在一些实施例中,将当前状态向量输入策略网络,获得副控制输入。其中,策略网络可以是基于深度确定性策略梯度的强化学习方法获得。在一些实施例中,策略网络可以是离线获得的或是在线的,也可以是静态的或者动态更新的。在线策略网络的动态更新方法的具体实施方式可参照图6与下文中的具体表述。[0080] 在一些实施例中,也可采用深度Q值网络模型获得副控制输入。Q值网络根据当前状态向量获得多个表示状态向量与行为之间关系的Q值函数,利用贪婪策略获得副控制输入。[0081] 步骤S412:根据主控制输入和副控制输入获得致动数据,并根据致动数据驱动自平衡设备恢复平衡。[0082] 在一些实施例中,可以通过叠加主控制输入和副控制输入获得致动数据。在另一些实施例中,也可以根据当前的偏离角度选择获得当前致动力矩的方式。例如,在偏离角度较小时将主控制输入直接作为致动力矩,在偏离角度较大时由主控制输入与副控制输入叠加获得致动力矩。例如,获取偏离角度阈值,在根据当前位姿变化参数判定自平衡设备偏离平衡状态的角度超过偏离角度阈值时,根据主控制输入和副控制输入获得当前致动数据,在根据当前位姿变化参数判定自平衡设备偏离平衡状态的角度不超过偏离角度阈值时,根据主控制输入获得当前致动数据。本公开不对根据主控制输入和副控制输入获得致动数据的具体方式进行限制。[0083] 在一些实施例中,驱动体可以根据致动数据向滚动体施加力矩,驱动滚动体进行滚动,使得驱动体恢复平衡。例如,驱动体可以根据致动数据调整致动轮的转速来驱动滚动体。根据致动数据驱动自平衡设备恢复平衡的具体实施方式取决于自平衡体的设计,本公开不进行限制。[0084] 在一些实施例中,驱动体根据当前致动力矩驱动滚动体进行滚动后,自平衡设备可能不会直接恢复平衡。此时自平衡设备仍存在偏离平衡状态的角度。可将仍存在的偏离平衡状态的角度作为当前角度变化参数,重复上述步骤S402至S412,直至驱动体恢复平衡。[0085] 根据本公开实施例提供的方法,通过根据获取的自平衡设备偏离平衡状态的当前位姿变化参数获得自平衡设备的当前线性控制率,然后根据当前位姿变化参数和当前线性控制率获得主控制输入。再根据当前位姿变化参数获得当前状态向量,基于当前状态向量获得副控制输入。最后根据主控制输入和副控制输入获得致动数据,驱动自平衡设备恢复平衡。这样可在更大的初始倾斜角度下恢复平衡,从而提高自平衡设备的平衡控制效果。[0086] 图5是根据一示例性实施例示出的一种线性控制率获得方法的流程图。如图5所示的方法可以应用于上述步骤S404至步骤S406。[0087] 参考图5,本公开实施例提供的方法50可以包括以下步骤。[0088] 步骤S502:获取自平衡设备的物理参数。[0089] 在一些实施例中,自平衡设备可以是ballbot类型的机器人,其物理参数可包括球202的半径rb、主体206的质量mB、球202的质量mb、从球202的重心到主体重心302的距离l等等。[0090] 步骤S504:基于当前位姿变化参数和物理参数,根据运动方程建立自平衡设备的线性状态空间模型。[0091] 在一些实施例中,可建立机器人系统动力学的非线性三维模型,并基于此模型进行推导,以获得通过致动轮204的转动施加给球202的合力矩中作为线性反馈控制的部分。在此模型中,忽略了致动轮动力学,将三维系统空间近似解耦为三个平面:如图2中所示,与在平坦地面上向前或向后移动相对应的正中矢状面(xz平面)和正中冠状面(yz平面)。xy平面描述了主体固定参考系中主体围绕z轴的旋转。xz平面和yz平面是实质相同的,可以共享相同的运动方程。平衡控制中对xy平面较少关注。将致动轮204简化为一个可安装在平面上的致动轮。在这种情况下,两个单独且实质相同系统的独立控制器就可以满足三维系统控制器的设计要求。[0092] 本公开选择以xz平面为例来推导模型。如图2所示,体角θ表示从传感器读取的球202沿x轴(滚动)的位置变化情况。角度φ表示主体206在世界坐标系中的倾斜角度,即主体206的轴线偏离重力反方向的角度,旨在描述球上方机器人的位置变化,可由惯性测量单元(InertialMeasurementUnit,IMU)等传感器测量得到。参数rb是球202的半径,主体206和球202的质量分别由mB和mb给出,从球202的重心到主体重心302的距离为l。可利用拉格朗日(Lagrange)公式导出简化模型的非线性运动方程。根据欧拉?拉格朗日(Euler?Lagrange)方程,系统的能量服从:[0093][0094] 其中 是动能与势能之差,q是广义坐标,是广义坐标q的导数,Q是外力,其中包括了球202和致动轮204之间的摩擦和扭矩。[0095] 球202的动能Kb由转动动能和平动动能计算得出:[0096][0097] 其中Ib,mb和rb分别是球202的惯性矩、质量和半径。球202的势能Vb=0。机器人的动能KB和势能VB为[0098][0099] VB=mBglcos(φ+θ),[0100] 其中IB是物体相对于球202中心的惯性矩,mB是主体的质量,g是重力加速度。总动T能为EK=Kb+KB,总势能为EV=Vb+VB。定义系统配置向量q=[θ φ] ,拉格朗日 是q和 的函数:[0101][0102] 令τ为在球202和机器人主体206之间施加的扭矩在垂直于xz平面的方向上的分量。定义如下向量为粘性摩擦项建模:[0103][0104] 其中,μθ和μφ分别为球202与地面之间、球202与机器人主体206之间摩擦的粘性阻尼系数。使用此表示法,简化的Ballbot模型的Euler?Lagrange运动方程为[0105][0106] 在计算了Euler?Lagrange方程的导数并重新排列各项后,运动方程可以表示为[0107][0108] 其中,质量矩阵M(q)为[0109][0110] 其中,[0111][0112] Γ2=IB+mBl2. (10)[0113] 转动参考系中的物体会受到两种惯性力的作用,一种是离心力,另一种就是科里奥利力,科里奥利力和离心力的向量为[0114][0115] 引力的向量为[0116][0117] 将(8)的两边乘以矩阵M的逆:[0118][0119] 重写式(13):[0120][0121] 式中:[0122][0123] 为了将这些方程式转换为标准的线性状态空间形式,将状态向量定义为并定义输入u=τ。然后,线性化状态空间模型可以描述为:[0124][0125] 其中内部状态为[0126][0127] 初始状态时,系统输入为[0128] u=τ (18)[0129] 系统输出为y=Cx+Du,以及[0130][0131][0132] 其中,F=Γ2+mBrbl,G=Γ+2mBrbl, 对于本公开实施例中图2的情况,C和D分别是具有适当尺寸的单位矩阵和零矩阵,因此输出输出的角度θ及其导数 可由传感器采集,角度φ及其导数可由惯性测量单元(如陀螺仪)采集。[0133] 步骤S506:根据线性状态空间模型获得当前线性控制率。[0134] 在一些实施例中,可以根据系统输出 获得平衡控制中线性控制的反馈分量u:[0135] u=?Kx (21)[0136] 其中,K为线性反馈控制的控制率。对应于 可选择K的结构为[0137] K=[k1 k2 k3 k4]. (22)[0138] 可根据线性二次型调节器(Linear Quadratic Regulator,LQR)获得线性反馈控制的控制律K:获得控制能量函数,根据线性状态空间模型利用当前位姿变化参数x和当前线性控制率K表示控制能量函数,以通过最小化控制能量函数获得当前线性控制率K。[0139] 在一些实施例中,也可通过调试方法获得K,可参照步骤S404,此处不再赘述。[0140] 对于本公开实施例中系统的平衡状态,可分为两种情况,一种情况是球在滚动,球上方的主体的轴沿重力反方向,此时的平衡条件可为 φ=0;另一种情况是球不在滚动,球与球上方的主体相对静止,且球上方的主体的轴沿重力反方向,此时的平衡条件可为θ=φ=0, 其中,θ+φ的绝对值小于14°时,可近似认为sin(θ+φ)=θ+φ成立,为模型进行线性化提供方便。[0141] 根据本公开实施例提供的方法,通过建立自平衡设备的线性状态空间模型,可获得主控制输入的线性控制律以确保设备的稳定性。[0142] 下面以实施例的形式介绍获得策略网络的具体方式。[0143] 图6是根据实施例示出的一种策略网络获得方法的流程图。如图6所示的方法可以应用于上述步骤S410。[0144] 参考图6,本公开实施例提供的方法60可以包括以下步骤。[0145] 步骤S602:获取当前在线行为值网络、当前目标行为值网络和当前目标策略网络。[0146] 智能体可为安装在ballbot的主体上的控制软件,因此智能体的状态可认为是主体所处的状态。采用RL方法时可考虑智能体在离散时间步长上与环境E交互,可以将离散时间步长建模为马尔可夫决策过程。智能体与环境E交互的行为由策略π定义,该策略将状态映射到行为 上的概率分布 其中, 为有限状态集合,表示某个特定状态, 为有限行为集合, 表示某个特定行为。在当前时间步t,智能体处于状态st,进行一个行为at,环境E为智能体提供一个标量奖励rt和状态st+1。策略学习可以细分为两类:1)随机策略2)确定性策略。对于第一类随机策略学习方法,假设策略处于状态s,采取行为a的条件概率为:π(a|s)=P[At=a|St=s]。对于第二类确定性策略学习方法,以状态的函数a=π(s)的形式来学习行为,这意味着智能体将在每个状态s中给出确定性行为。行为的幅度大约等于电动机将达到的目标速度,以提高传统线性控制器的性能。[0147] 在一些实施例中,采用基于行为者?评论(Actor?Critic,AC)框架的无模型、偏离策略的深度函数逼近器的方法,来训练根据输入状态输出行为的神经网络。其中,策略π采μ用上述第二类的确定性策略,可以将其描述为函数μ: 使用参数为θ的深度神经网μ Q络(即策略网络)来表示确定性策略a=μ(s|θ),对应AC框架中的行为者;采用参数为θ 的深Q度神经网络(即行为值网络),用来逼近状态动作对的值函数Q(s,a|θ),并提供梯度信息,对应AC框架中的评论者。策略网络和行为值网络都是包括全连接层、归一化层的多层神经Q Q′体系结构感知器。令Q(s,a|θ)为当前在线行为值网络,Q′(s,a|θ )为当前目标行为值网μ络,μ(s|θ)为当前在线策略网络,μ′为当前目标策略网络。[0148] 步骤S604:获取当前奖励。[0149] 可用 表示奖励,其中T是智能体优化的时间范围,i为从t到T范围内的时间步,γ∈[0,1]是未来奖励的折扣因子,令往后的状态所反馈回来的奖励乘上一定的折扣因子,以避免将直接的奖励相加导致的在无限时间序列中无偏向、产生状态的无限循环等情况。在RL方法中,智能体旨在学习策略at=π(st)以使期望收益Rt最大化。[0150] 在一些实施例中,获取当前奖励包括:获取奖励函数,奖励函数中的变量为驱动体的倾斜角度,将驱动体的当前倾斜角度代入奖励函数,获得当前奖励。Ballbot平衡恢复的主要目的是提供一组使其保持平衡的动力或动力矩输入。奖励函数中包含的唯一变量可为β,如图8所示,即机器人主体固定参考系中z轴与垂直方向(重力反方向)之间的夹角(与φ角的含义相同),可获得的奖励函数形式如下[0151] rt=?||β||+c, (23)[0152] 式中c为常数,以保证奖励恒为正值。[0153] 步骤S606:获得下一时间步的状态向量。[0154] 下一时间步的状态向量可由观察获得,即可同当前状态向量一样,由自平衡设备上设置的IMU、传感器等采集得到 其中,z为主体质心302的高度。[0155] 步骤S608:基于当前状态向量、当前调整行为、当前奖励和下一时间步的状态向量和当前目标策略网络,通过当前目标行为值网络更新当前在线行为值网络。[0156] 在一些实施例中,基于当前奖励、下一时间步的状态向量和当前目标策略网络,通过当前目标行为值网络获得预测行为值;基于当前状态向量、当前调整行为和预测行为值,通过当前在线行为值网络获得在线行为值网络损失函数;通过最小化在线行为值网络损失函数,更新当前在线行为值网络。可由下式描述在状态st中执行动作at之后的期望收益Rt的行为值函数:[0157][0158] 式中,Rt、T、i、δ等参数含义与如上所述,符号 的含义为期望。式(24)的递归形式称为Bellman方程,如下所示:[0159][0160] 式中,rt=r(st,at),δ为超参数,通常取接近1的值,如0.99、0.98或0.97等。对于当前的行为值函数,可使用贪婪算法找到最优策略μ(s)=argmaxaQ(s,a)。忽略式(25)中内在期望:[0161][0162] 考虑由θQ参数化的行为值网络,可通过最小化损耗来对θQ进行优化更新:[0163][0164] 其中,[0165] yt=rt+δQμ(st+1,μ(st+1)|θQ). (28)[0166] 为处理连续动作空间中的探索问题,通过将从噪声过程 采样的噪声添加到在线策略网络μ来构造目标策略网络μ′:[0167][0168] 步骤S610:基于当前状态向量、当前调整行为和下一时间步的状态向量,根据更新的在线行为值网络更新当前在线策略网络。[0169] 在一些实施例中,基于当前状态向量、当前调整行为和下一时间步的状态向量,获得更新的在线行为值网络梯度和当前在线策略网络梯度;根据更新的在线行为值网络梯度和当前在线策略网络梯度,采用链式规则更新当前在线策略网络。通过将链式规则应用于策略网络,在起始分布J的预期收益中应用链式规则来更新策略网络参数:[0170][0171] 为了保证样本的独立性和相同的分布,采用重播缓冲区R,同时有利于有效地充分地利用了硬件进行优化。根据探索策略从环境中采样过渡量,并将元组(st,at,rt,st+1)存储在重播缓冲区中。当此缓冲区已满时,将丢弃最早的样本。通过从重播缓冲区R统一采样小批量,可以更新策略网络和行为值网络。具体更新流程可参考下述算法1。[0172] 步骤S612:获取软更新参数。[0173] 步骤S614:根据软更新参数和更新的当前在线行为值网络对当前目标行为值网络进行软更新。[0174] 步骤S616:根据软更新参数和更新的当前在线策略网络对当前目标策略网络进行软更新。[0175] 在一些实施例中,在更新目标值时,可使用“软”目标更新,而不是直接复制权重:θ′←σθ+(1?σ)θ′,其中,σ<<1,以确保训练过程会趋于收敛而不会发散,具体训练过程可参考下述算法1。[0176] 算法1.[0177] 以权重θQ和θμ分别随机初始化在线行为值网络Q(s,a|θQ)和在线策略网络μ(s|μθ);[0178] 以权重θQ′←θQ初始化目标行为值网络Q′,以权重θμ′←θμ初始化目标策略网μ′;[0179] 初始化重播缓冲区R;[0180] for状态序列周期=1→Mdo[0181] 初始化随机过程 以进行行为探索[0182] 接收初始化观察状态s1[0183] fort=1→Tdo[0184] 选择并执行行为[0185] 观察奖励rt和新状态st+1[0186] 在R中存储过渡量(st,at,rt,st+1)[0187] 从R中采样小批量过渡量(si,ai,ri,si+1)[0188] 令yi=ri+γQ′(si+1,μ(si+1|Qμ′)|θQ′)[0189] 通过最小化损失函数更新在线行为值网络:[0190][0191] 用采样的策略梯度更新在线策略网络:[0192][0193] 更新两个目标网络:[0194] θQ′←σθQ+(1?σ)θQ′[0195] θμ′←σθμ+(1?σ)θμ′[0196] endfor[0197] endfor[0198] 根据本公开实施例提供的策略网络控制方法,输入的状态矢量除了与传统线性控制器一致的正中矢状面和正中冠状面中的体角φ和角速度 之外,还引入了机器人质心的高度z。在大的倾斜角度时可能引起致动轮给球的驱动力矩较大导致滚动体与驱动体脱离的情况下,仍可以识别出球平衡机器人的完整状态。[0199] 图7是根据图2至图6示出的一种复合控制器的平衡控制架构示意图。如图7所示,球平衡机器人704由驱动控制模块702提供驱动合力矩,球平衡机器人704对外输出传感器等设备采集的偏离角度、角速度、高度等状态参数。这些状态参数一方面输入传统的基于模型的线性反馈控制器706,该控制器能够使球平衡机器人在平衡点周围保持平衡。在无法建模的状态下,它的性能可能会降低。另一方面将状态参数输入RL模块708后输出调整力矩,与传统控制器的反馈控制力矩进行叠加,并最大化了的奖励函数。通过这种方式,可以保证平衡控制的性能,并且可以减少迭代时间。[0200] 下面通过仿真实验数据验证了此公开中一些实施例的技术效果,实验中采用的仿真模型和算法仅仅是本公开中实施例,因此本公开不应被解读为限制为这些实施例。[0201] 可通过选择一个平衡恢复任务进行试验,任务的目的是从一定的倾斜角初始状态下(角速度为零)恢复并保持一段时间的静态平衡,以验证叠加了强化学习模块的控制器的功能。图8示出了一ballbot平衡控制实验中的模型结构图。如图8所示的参数描述了球平衡机器人的初始状态。对于所有三个全向致动轮都与球接触的站立式球平衡机器人,可以认为其主体围绕球的中心旋转,具有2个自由度,可以将其状态描述为倾斜角度β和机器人倾斜的方向α:α为绕球的z轴旋转的角度;β为绕球的y轴旋转的角度(与φ角的含义相同)。[0202] 图9示出了一ballbot平衡控制实验中的建模效果图。如图9所示,采用一种用于考虑身体接触的基于模型的优化的全功能模拟器CoppeliaSim4.1.0进行仿真,来评估平衡控制性能,仿真模型为一个带三个全向致动轮的球平衡机器人,没有裙边或避雷器之类的设备。全向致动轮由速度增量控制器控制的电动机驱动。而且,假设机器人主体上具有虚拟传感器,可以获得完整的机器人状态信息。为了加快训练过程,可使用RL库稳定?基线(Stable?Baselines),这是一个用于强化学习的开源库,它提供了一个简单的界面来训练与评估智能体并针对各种应用进行超参数调整。[0203] 策略网络和行为值网络的神经体系结构都是两个全连接的多层感知器,具有层归一化功能。下表列出了使用的其他超参数。[0204] DDPG采用的超参数[0205][0206] 在采用图9的模型的仿真测试运行中,分别用传统控制器和实施例复合控制器控制球平衡机器人从多个的初始状态进行恢复任务。其中,传统控制器仅包括线性反馈控制,其作为对照组;复合控制器为本公开实施例提供的强化学习与线性反馈控制器进行叠加控制的模块,其作为实验组。图10示出了一ballbot平衡控制实验中传统控制器的恢复区域图。图12示出了一ballbot平衡控制实验中复合控制器的恢复区域图。如图10、图12所示,径向坐标表示角度β,而角度坐标表示角度α。所有角度均以度表示,圆心附近的区域表示球平衡机器人可以其中的初始点状态下恢复,而线条区域表示球平衡机器人不可以恢复的初始点区域。以120°角间距的三条线表示致动轮方向。在图10、图12中,两个区域之间的边界大致为三角形。将图10、图12进行对比可以看出,与传统控制器相比,复合控制器具有更大的可恢复面积。[0207] 当α=210°,β=7.5°时,采用传统控制器的机器人会倒下,但采用实施例复合控制器的机器人会恢复平衡。图11示出了一ballbot平衡控制实验中传统控制器下的电机转速与偏离角度随时间变化图。图13示出了一ballbot平衡控制实验中实施例复合控制器下的电机转速与偏离角度随时间变化图。如图11和图13所示,体角φx,φy为体角φ在x轴和y轴的分量,调整期间存在振荡时(约0.8秒处),三个致动轮子会迅速改变其旋转方向,而发球机器人会“踢”球以保持平衡,在传统控制器下则无法恢复平衡,三个电机转速越来越快,φx,φy越来越大,而实施例复合控制器下三个电机转速越来越快,趋向稳定,φx,φy越来越。饔谄胶。实验结果表明系统中存在碰撞,弹跳和打滑,这是无法预测和无法建模的,因此复合控制器比传统控制器具有更好的控制效果。[0208] 图14是根据一实施例示出的一种自平衡设备的平衡控制装置的框图。如图14所示的装置例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。[0209] 参考图14,本公开实施例提供的自平衡设备的平衡控制装置140可以包括偏离参数获取模块1402、线性控制率获得模块1404、主控制输入获得模块1406、状态向量获得模块1408、副控制输入获得模块1410和致动数据获得模块1412。[0210] 偏离参数获取模块1402可用于获取自平衡设备偏离平衡状态的当前位姿变化参数。[0211] 线性控制率获得模块1404可用于根据当前位姿变化参数获得自平衡设备的当前线性控制率。[0212] 主控制输入获得模块1406可用于根据当前位姿变化参数和当前线性控制率获得主控制输入。[0213] 状态向量获得模块1408可用于根据当前位姿变化参数获得当前状态向量。[0214] 副控制输入获得模块1410可用于基于当前状态向量获得副控制输入。[0215] 致动数据获得模块1412可用于根据当前主控制输入和副控制输入获得当前致动数据,以驱使自平衡设备恢复平衡。[0216] 图15是根据一示例性实施例示出的另一种自平衡设备的平衡控制装置的框图。如图15所示的装置例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。[0217] 参考图15,本公开实施例提供的自平衡设备的平衡控制装置150可以包括偏离参数获取模块1502、线性控制率获得模块1504、主控制输入获得模块1506、状态向量获得模块1508、副控制输入获得模块1510、偏离阈值获取模块1511、致动数据获得模块1512、深度网络获取模块1514、奖励获取模块1516、在线行为值网络更新模块1518、在线策略网络更新模块1520、软更新参数获取模块1522、目标行为值网络更新模块1524和目标策略网络更新模块1526,其中,线性控制率获得模块1504可以包括:物理参数获取模块15042、线性空间建模模块15044和线性控制率计算模块15046,状态向量获得模块1508可以包括:高度参数获得模块15082和状态向量计算模块15084,副控制输入获得模块1510可以包括:当前在线策略网络获取模块15102、当前在线策略网络计算模块15104。[0218] 偏离参数获取模块1502可用于获取自平衡设备偏离平衡状态的当前位姿变化参数。自平衡设备可包括驱动体和滚动体;当前位姿变化参数可包括驱动体的当前倾斜角度和当前倾斜角速度、以及滚动体的当前转动角度和当前转动角速度、以及驱动体的高度变化参数。[0219] 线性控制率获得模块1504可用于根据当前位姿变化参数获得自平衡设备的当前线性控制率。[0220] 物理参数获取模块15042可用于获取自平衡设备的物理参数。[0221] 线性空间建模模块15044可用于基于当前位姿变化参数和物理参数,根据运动方程建立自平衡设备的线性状态空间模型。[0222] 线性控制率计算模块15046可用于根据线性状态空间模型获得当前线性控制率。[0223] 线性控制率计算模块15046还可用于获得控制能量函数;根据线性状态空间模型利用当前位姿变化参数和当前线性控制率表示控制能量函数,以通过最小化控制能量函数获得当前线性控制率。[0224] 主控制输入获得模块1506可用于根据当前位姿变化参数和当前线性控制率获得主控制输入。[0225] 状态向量获得模块1508可用于根据当前位姿变化参数获得当前状态向量。[0226] 状态向量获得模块1508还可用于获得下一时间步的状态向量。[0227] 高度参数获得模块15082可用于获得驱动体的高度变化参数。[0228] 状态向量计算模块15084可用于根据驱动体的当前倾斜角度和当前倾斜角速度、滚动体的当前转动角度和当前转动角速度、以及驱动体的高度变化参数获得当前状态向量。[0229] 副控制输入获得模块1510可用于基于当前状态向量获得副控制输入。[0230] 当前在线策略网络获取模块15102可用于获取当前在线策略网络。[0231] 当前在线策略网络计算模块15104可用于将当前状态向量输入当前在线策略网络,获得副控制输入。[0232] 偏离阈值获取模块1511可用于获取偏离角度阈值。[0233] 致动数据获得模块1512可用于根据主控制输入和副控制输入获得致动数据,以使自平衡设备恢复平衡。[0234] 致动数据获得模块1512还可用于根据主控制输入和副控制输入获得当前致动数据,以使驱动体根据当前致动数据对滚动体施加致动力矩驱动滚动体滚动,以使驱动体恢复平衡。[0235] 致动数据获得模块1512还可用于在根据当前位姿变化参数判定自平衡设备偏离平衡状态的角度超过偏离角度阈值时,根据主控制输入和副控制输入获得当前致动数据,以驱使自平衡设备恢复平衡;在根据当前位姿变化参数判定自平衡设备偏离平衡状态的角度不超过偏离角度阈值时,根据主控制输入获得当前致动数据,以驱使自平衡设备恢复平衡。[0236] 深度网络获取模块1514可用于获取当前在线行为值网络、当前目标行为值网络和当前目标策略网络。[0237] 奖励获取模块1516可用于获取当前奖励。[0238] 奖励获取模块1516还可用于获取奖励函数,奖励函数中的变量为驱动体的倾斜角度;将驱动体的当前倾斜角度代入奖励函数,获得当前奖励。[0239] 在线行为值网络更新模块1518可用于基于当前状态向量、副控制输入、当前奖励和下一时间步的状态向量和当前目标策略网络,通过当前目标行为值网络更新当前在线行为值网络。[0240] 在线行为值网络更新模块1518还可用于基于当前奖励、下一时间步的状态向量和当前目标策略网络,通过当前目标行为值网络获得预测行为值;基于当前状态向量、当前调整行为和预测行为值,通过当前在线行为值网络获得在线行为值网络损失函数;通过最小化在线行为值网络损失函数,更新当前在线行为值网络。[0241] 在线策略网络更新模块1520可用于基于当前状态向量、副控制输入和下一时间步的状态向量,根据更新的在线行为值网络更新当前在线策略网络。[0242] 在线策略网络更新模块1520还可用于基于当前状态向量、当前调整行为和下一时间步的状态向量,获得更新的在线行为值网络梯度和当前在线策略网络梯度;根据更新的在线行为值网络梯度和当前在线策略网络梯度,采用链式规则更新当前在线策略网络。[0243] 软更新参数获取模块1522可用于获取软更新参数。[0244] 目标行为值网络更新模块1524可用于根据软更新参数和更新的当前在线行为值网络对当前目标行为值网络进行软更新。[0245] 目标策略网络更新模块1526可用于根据软更新参数和更新的当前在线策略网络对当前目标策略网络进行软更新。[0246] 本公开实施例提供的装置中的各个模块的具体实现可以参照上述方法中的内容,此处不再赘述。[0247] 图16示出本公开实施例中一种电子设备的结构示意图。需要说明的是,图16示出的设备仅以计算机系统为示例,不应对本公开实施例的功能和使用范围带来任何限制。[0248] 如图16所示,设备1600包括中央处理单元(CPU)1601,其可以根据存储在只读存储器(ROM)1602中的程序或者从存储部分1608加载到随机访问存储器(RAM)1603中的程序而执行各种适当的动作和处理。在RAM1603中,还存储有设备1600操作所需的各种程序和数据。CPU1601、ROM1602以及RAM1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。[0249] 以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1607;包括硬盘等的存储部分1608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入存储部分1608。[0250] 特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本公开的系统中限定的上述功能。[0251] 需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD?ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。[0252] 附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0253] 描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括偏离参数获取模块、线性控制率获得模块、主控制输入获得模块、状态向量获得模块、副控制输入获得模块和致动数据获得模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,偏离参数获取模块还可以被描述为“获取自平衡设备偏离平衡状态的参数的模块”。[0254] 本公开实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取自平衡设备偏离平衡状态的当前位姿变化参数;根据当前位姿变化参数获得自平衡设备的当前线性控制率;根据当前位姿变化参数和当前线性控制率获得主控制输入;根据当前位姿变化参数获得当前状态向量;基于当前状态向量获得副控制输入;根据主控制输入和副控制输入获得当前致动数据,以驱使自平衡设备恢复平衡。[0255] 本公开实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。[0256] 以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

专利地区:广东

专利申请日期:2020-12-29

专利公开日期:2024-11-29

专利公告号:CN114690626B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
开云优惠体育(中国)官网 — 开云优惠体育app下载