该机器人包括一个主体,主体下部设有一对可旋转的轮子,主体上部设有一个货箱。机器人还包括一个惯性测量传感器,用于测量主体的倾斜角度;一对轮子编码器,用于测量每个轮子的旋转角度;一个货箱编码器,用于测量货箱的倾斜角度;一对轮子电机,用于向每个轮子传递扭矩;一个货箱电机,用于向货箱传递扭矩;以及一个控制器。控制器被配置为控制这对轮子电机和货箱电机,使机器人能够在每个轮子和货箱的轴上执行双轴倒立摆运动。翻译而来供参考,亦可加入知识星球阅读英文原版、中文译本(见文末)。
图1展示了机器人的外部结构,图2是示意性展示机器人的侧剖视图。
参照图1和图2,机器人1包括主体10,主体10的下部设有一对可旋转的轮子20,主体10的上部设有货箱30。
如图1和图2所示,主体10包括位于主体下部的第一旋转轴11,轮子20附着在该旋转轴上;以及位于主体上部的第二旋转轴12,货箱30附着在该旋转轴上。
在主体10的第一旋转轴11的一侧,设置了一对轮子电机,向每个轮子20传递扭矩,并设置了一对轮子编码器,用于测量每个轮子20的旋转角度。
在第二旋转轴12的一侧,设置了一个货箱电机,向货箱30传递扭矩,以及一个货箱编码器,用于测量货箱30的倾斜角度。
此外,在主体10的一侧,设置了惯性测量单元(IMU)110,用于测量主体10的倾斜角度。在这种情况下,主体10的倾斜角度是指主体10与垂直于地面的垂直轴之间的角度。
在此情况下,机器人1可根据惯性测量单元110、轮子编码器和货箱编码器的输出,控制一对轮子电机和货箱电机,使机器人能够围绕每个轮子20和货箱30的轴进行双轴倒立摆运动。这样,机器人1可通过双轴倒立摆运动来实现平衡。
每个轮子20可采用柔性轮胎,能够从轮胎的周边向中心方向变形,即使在大步或坡道上,机器人1也能在保持平衡的同时行驶。
货箱30可用于装载机器人1运输的物品,配有货箱电机,用于向货箱30传递扭矩,货箱编码器用于测量货箱30的倾斜角度等设备。
图3是展示机器人1的控制框图。 参照图3,机器人1包括惯性测量单元110、一对轮子编码器120、货箱编码器130、控制器140、一对轮子电机150、货箱电机160和存储器170。这里,惯性测量单元110用于测量主体10的倾斜角度,一对轮子编码器120用于测量每个轮子20的旋转角度,货箱编码器130用于测量货箱30的倾斜角度,控制器140用于控制双轴倒立摆运动,一对轮子电机150用于向每个轮子20传递扭矩,货箱电机160用于向货箱30传递扭矩,存储器170用于存储控制所需的各种信息。
在某些实现方式中,惯性测量单元110设置在主体10的一侧,用于测量主体10相对于垂直于地面的垂直轴的倾斜角度。
在某些实现方式中,轮子编码器120可以与轮子电机150集成在一起,通过测量轮子电机150的旋转角度来测量轮子20的旋转角度。这对轮子编码器120可以采用已知类型的编码器。
在某些实现方式中,货箱编码器130可以与货箱电机160集成在一起,通过测量货箱电机160的旋转角度来测量货箱30的倾斜角度。货箱编码器130可以采用已知类型的编码器。
在某些实现方式中,控制器140可以包括执行反馈控制的基本控制器141和估算机器人1当前位置坡度(干扰)的观察器143。
当确定了主体10的目标倾斜角度和货箱30的目标倾斜角度时,基本控制器141可以控制轮子电机150和货箱电机160,使主体10和货箱30的倾斜角度分别达到预定的目标倾斜角度。通过上述方式,基本控制器141可以使机器人1在保持平衡的同时行驶。
观察器143可以基于主体10的倾斜角度、施加于轮子20的一对扭矩以及施加于货箱30的扭矩来确定当前位置的坡度。观察器143的操作将在后续进行详细描述。
在某些实现方式中,控制器140可以根据惯性测量单元110、一对轮子编码器120和货箱编码器130的输出,控制一对轮子电机150和货箱电机160,使机器人在每个轮子20和货箱30的轴上进行双轴倒立摆运动。
在此情况下,控制器140可以控制基本控制器141,使机器人通过将惯性测量单元110、一对轮子编码器120和货箱编码器130的输出作为状态变量,施加于货箱30和轮子20的扭矩作为控制输入,来进行双轴倒立摆运动。
基本控制器141可以使用状态变量和控制输入之间的相关性,使机器人1实现双轴倒立摆运动。
在某些实现方式中,当通过双轴倒立摆运动实现平衡时,控制器140可以根据主体10的倾斜角度、施加于一对轮子20的扭矩以及施加于货箱30的扭矩来确定当前位置的坡度。
控制器140可以通过使用惯性测量单元110、一对轮子编码器120和货箱编码器130的输出作为状态变量,并使用施加于货箱30和轮子20的扭矩作为控制输入,控制观察器143来估算坡度。
在这种情况下,观察器143可以根据状态变量和控制输入之间的相关性、主体10的质量和尺寸、一对轮子20和货箱30的质量和尺寸以及重力加速度来估算坡度。
在某些实现方式中,控制器140可以根据坡度来确定主体10的倾斜角度和货箱30的倾斜角度之间的比例,从而使机器人在保持平衡的同时行驶。
在此情况下,控制器140可以通过假设主体10的倾斜角度、货箱30的倾斜角度以及一对轮子20的角速度是恒定的,来控制观察器143确定坡度中的主体10与货箱30的倾斜角度比例。
控制器140可以根据主体10与货箱30的倾斜角度比例,确定主体10的目标倾斜角度和货箱30的目标倾斜角度。此处,主体10和货箱30的目标倾斜角度用于使机器人在坡度上保持平衡的同时行驶。
例如,通过根据实时确定的坡度来确定主体10与货箱30的倾斜角度比例,控制器140可以使货箱30的目标倾斜角度自适应变化。
此外,控制器140可以确定货箱30的目标倾斜角度,使货箱30保持水平,并根据货箱30的目标倾斜角度、主体10的倾斜角度和货箱30的倾斜角度之间的比例确定主体10的目标倾斜角度。在这种情况下,货箱30的目标倾斜角度可以对应于基于垂直于地面的垂直轴的“0”度。
在某些实现方式中,控制器140可以基于一对轮子20的角速度、主体10的目标倾斜角度和货箱30的目标倾斜角度,控制基本控制器141对一对轮子电机150和货箱电机160进行反馈控制,以执行移动命令。
在某些实现方式中,控制器140可以确定每个轮子20的坡度,并将每个轮子20的坡度取平均值作为当前位置的坡度。
在某些实现方式中,控制器140可以基于每个轮子20的坡度来补偿每个轮子电机150的输出,从而使机器人1能够在不发生偏航震动的情况下行驶。
控制器140可以包括至少一个存储器,用于存储执行上述操作和下面描述的操作的程序,以及至少一个处理器,用于实现存储的程序。如果提供了多个存储器和处理器,多个存储器和处理器可以集成在一个芯片中,也可以分布在物理上不同的位置。
在某些实现方式中,轮子电机150可以向轮子20传递扭矩,并可以采用已知类型的电机。在这种情况下,轮子电机150可以包括一个向左轮传递扭矩的左轮电机和一个向右轮传递扭矩的右轮电机。
在某些实现方式中,货箱电机160可以向货箱30传递扭矩,并可以采用已知类型的电机。
在某些实现方式中,存储器170可以存储信息,如状态变量与控制输入之间的相关性、主体10、一对轮子20和货箱30的质量和尺寸、重力加速度等。为此,存储器170可以采用已知类型的记录介质。
图4是展示机器人1爬坡的示意图。图5是展示机器人1确定坡度的示意图示例。图6是展示机器人1的观察器143确定坡度的示意图示例。
参照图4,当爬坡时,机器人1可以估算当前位置的坡度,并根据估算的坡度调整主体10和货箱30的倾斜角度。
在此情况下,如图4所示,当爬大台阶时,机器人1可以通过将台阶替换为坡道来估算坡度。
在某些实现方式中,即使在爬坡时,机器人1也可以根据惯性测量单元110、一对轮子编码器120和货箱编码器130的输出,控制一对轮子电机150和货箱电机160,使机器人在每个轮子20和货箱30的轴上进行双轴倒立摆运动。
在此情况下,控制器140可以控制基本控制器141,使机器人通过将惯性测量单元110、一对轮子编码器120和货箱编码器130的输出作为状态变量,并将施加于货箱30和轮子20的扭矩作为控制输入,进行双轴倒立摆运动。
基本控制器141可以利用状态变量和控制输入之间的相关性,使机器人1进行双轴倒立摆运动。
在某些实现方式中,当通过双轴倒立摆运动实现平衡时,机器人1可以根据主体10的倾斜角度、施加于轮子20的一对扭矩以及施加于货箱30的扭矩来确定当前位置的坡度。
在此情况下,如图5所示,机器人1可以确定每个轮子20的坡度(θslopeL、θslopeR),并将每个轮子20的坡度(θslopeL、θslopeR)的平均值作为当前位置的坡度(θslope)。
具体来说,机器人1的左右两侧分别有一个施加于每个轮子20的扭矩(T-L、T-R)和主体10的倾斜角度(θ1L、θ1R),以在各自的坡度(θslopeL、θslopeR)上实现平衡。
在此情况下,施加于整个机器人1的扭矩T可以是施加于左轮20L和右轮20R的扭矩(T-L和T-R)的总和。(T=T-L+T-R)
在此情况下,施加于整个机器人1的扭矩T可以表示为下述公式1。
此处,M 代表机器人1的质量,r 代表轮子的半径,g 代表重力加速度。
因此,施加于左轮20L和右轮20R的扭矩(TL 和 TR)可以分别表示为下述公式2和公式3。也就是说,当计算一侧的坡度时,机器人的总质量的一半将被考虑进去。
考虑到T = TL + TR,如<公式4>所示,机器人1当前位置的坡度(θslope)可以对应于每个轮子20的坡度(θslopeL, θslopeR)的平均值。
在这种情况下,如<公式5>所示,主体10的倾斜角度可以对应于左侧和右侧主体10的倾斜角度的平均值,因为坡度与主体10的倾斜角度相对应。
接下来,尽管通过<公式1>至<公式5>描述了坡度(θslope)是基于主体10的倾斜角度θ1确定的,但可以理解为,每个轮子20的坡度(θslopeL、θslopeR)是由左侧主体10的倾斜角度θ1L和右侧主体10的倾斜角度θ1R确定的,其平均值被确定为整体坡度(θslope)。
机器人1可以通过控制观察器143,利用惯性测量单元110、一对轮子编码器120和货箱编码器130的输出作为状态变量,并利用施加于货箱30和轮子20的扭矩作为控制输入,来估算坡度。
在这种情况下,观察器143可以根据状态变量和控制输入之间的相关性,主体10、轮子20和货箱30的质量和尺寸,以及重力加速度来估算坡度。
换句话说,观察器143可以根据<公式6>确定对应于扰动的坡度(θslope)。
在此情况下,如图6所示,θ1 和 θ2 分别对应于主体10的倾斜角度和货箱30的倾斜角度。此外,θ 对应于轮子20的旋转角度。主体10的倾斜角度θ1 由惯性测量单元110测量,货箱30的倾斜角度θ2 由货箱编码器130测量,轮子20的旋转角度由轮子编码器120测量。
同时,Tₓ是施加于货箱30的扭矩,Tᵧ是施加于轮子20的扭矩。
矩阵C表示状态变量(θ1, θ2, θ)与控制输入(Tₓ, Tᵧ)之间的相关性。矩阵M与主体10、轮子20和货箱30的质量和尺寸相关。矩阵G与重力加速度相关。矩阵D表示观察器143估计的扰动。
例如,矩阵C可以表示为<公式7>,矩阵M可以表示为下述<公式8>。
其中,m₁、m₂ 和 m₃ 分别对应于主体10、货箱30 和轮子20的质量。l₁、l₂ 和 l₃ 分别对应于主体10的长度、货箱30的长度以及从轮子20的质心到主体10的质心的距离。r₁ 对应于轮子20的半径。
同样,矩阵G可以表示为<公式9>,而矩阵D可以表示为下述<公式10>。
然而,<公式7> 至 <公式10> 只是每个矩阵的示例,它们可以通过多种方式来表示和提供。
图7展示了一个假设机器人1在平衡状态下行驶的正常状态的示例。
参照图7,机器人1可以基于坡度(θslope)来确定主体10的倾斜角度θ1和货箱30的倾斜角度θ2之间的比例,以在行驶时保持平衡。
在这种情况下,机器人1可以控制观察器143,在假设主体10的倾斜角度θ1、货箱30的倾斜角度θ2以及一对轮子20的角速度是恒定的前提下,确定坡度中主体10和货箱30的倾斜角度之间的比例。
如图7所示,机器人1假设通过对主体10的倾斜角度θ1进行一次微分和两次微分得到的值为0,货箱30的倾斜角度θ2的一次微分和两次微分值也为0。同时,假设轮子20的旋转角度θ的一次微分值是常数,而两次微分值为0。
在这种情况下,机器人1可以将图7中的值代入<公式6>,从而确定主体10的倾斜角度θ1和货箱30的倾斜角度θ2之间的比例。
即,通过将图7中的值反映在<公式6>中,可以导出<公式11>,机器人1可以基于<公式11>确定主体10的倾斜角度θ1和货箱30的倾斜角度θ2之间的比例。
机器人1可以基于主体10和货箱30的倾斜角度之间的比例,确定主体10的目标倾斜角度和货箱30的目标倾斜角度,从而在坡度上保持平衡并行驶。
例如,通过根据实时确定的坡度来确定主体10和货箱30的倾斜角度比例,机器人1可以自适应地改变货箱30的目标倾斜角度。
此外,机器人1可以确定货箱30的目标倾斜角度以使货箱保持水平,并基于货箱30的目标倾斜角度、主体10的倾斜角度和货箱30的倾斜角度之间的比例,确定主体10的目标倾斜角度。在这种情况下,货箱30的目标倾斜角度可以对应于基于垂直于地面的垂直轴的“0”度。
在某些实现方式中,机器人1可以基于一对轮子20的角速度、主体10的目标倾斜角度和货箱30的目标倾斜角度,控制基本控制器141对一对轮子电机150和货箱电机160进行反馈控制,以执行移动命令。
图8展示了机器人1在基于每个轮子20的坡度补偿每个轮子电机150的输出时产生的偏航误差。
参照图8,机器人1可以基于每个轮子20的坡度补偿每个轮子电机150的输出,从而使机器人1在行驶时不会在偏航方向上发生抖动。
例如,当左侧坡度大于右侧坡度时,机器人1可以控制一对轮子电机150,使施加于左轮20L的扭矩大于施加于右轮20R的扭矩。
通过上述操作,如图8所示,机器人1的偏航误差可以收敛到一个稳定的水平。
接下来,描述了根据本公开内容的一个方面的机器人控制方法的实现方式。上述描述的机器人1可用于该机器人的控制方法。因此,参照图1至图8的描述同样适用于该机器人的控制方法。
图9是一个流程图,展示了在机器人1的控制方法中估算坡度并确定主体10和货箱30的倾斜角度的操作。
参照图9,机器人1可以通过控制一对轮子电机150和货箱电机160,使其在每个轮子20和货箱30的轴上进行双轴倒立摆运动,基于惯性测量单元110和编码器120及130的输出(910)。
在此情况下,机器人1可以控制基本控制器141,通过将惯性测量单元110、一对轮子编码器120和货箱编码器130的输出作为状态变量,利用施加于货箱30和轮子20的扭矩作为控制输入,使机器人进行双轴倒立摆运动。
基本控制器141可以利用状态变量和控制输入之间的相关性,使机器人1进行双轴倒立摆运动。
在某些实现方式中,当通过双轴倒立摆运动实现平衡时,机器人1可以根据主体10的倾斜角度、轮子的扭矩以及施加于货箱30的扭矩来确定当前位置的坡度(920)。
在这种情况下,机器人1可以确定每个轮子20的坡度(θslopeL、θslopeR),并将它们的平均值作为当前位置的坡度(θslope)。
机器人1可以通过控制观察器143,利用惯性测量单元110、一对轮子编码器120和货箱编码器130的输出作为状态变量,利用施加于货箱30和轮子20的扭矩作为控制输入,来估算坡度。
在这种情况下,观察器143可以根据状态变量和控制输入之间的相关性、主体10、一对轮子20和货箱30的质量和尺寸,以及重力加速度来估算坡度。
在某些实现方式中,机器人1可以根据坡度确定主体10和货箱30的倾斜角度比例,以在行驶时保持平衡(930)。
在此情况下,机器人1可以控制观察器143,通过假设主体10的倾斜角度θ1、货箱30的倾斜角度,以及一对轮子20的角速度为常数,来确定坡度中的主体10和货箱30的倾斜角度比例。
即,机器人1假设通过对主体10的倾斜角度θ1进行一次和两次微分的值为0,货箱30的倾斜角度θ2的一次和两次微分值也为0。同时,假设轮子20的旋转角度的一次微分值是常数,两次微分值为0。
机器人1可以根据主体10和货箱30的倾斜角度比例,确定主体10的目标倾斜角度和货箱30的目标倾斜角度,以在坡度上行驶时保持平衡。
例如,通过根据实时确定的坡度确定主体10和货箱30的倾斜角度比例,机器人1可以自适应地调整货箱30的目标倾斜角度。
此外,机器人1可以确定货箱30的目标倾斜角度,使其保持水平,并基于货箱30的目标倾斜角度、主体10的倾斜角度和货箱30的倾斜角度之间的比例,确定主体10的目标倾斜角度。在这种情况下,货箱30的目标倾斜角度可以对应于相对于地面垂直轴的“0”度。
在某些实现方式中,机器人1可以基于轮子20的角速度、主体10的目标倾斜角度和货箱30的目标倾斜角度,控制基本控制器141对轮子电机150和货箱电机160进行反馈控制,以执行移动命令。
图10是一个流程图,展示了在机器人1的控制方法中,基于每个轮子20的坡度补偿每个轮子电机150输出的操作。
参照图10,机器人1可以确定每个轮子20的坡度(1010)。
随后,机器人1可以基于每个轮子20的坡度,补偿每个轮子电机150的输出(1020)。
例如,当左侧坡度大于右侧坡度时,机器人1可以控制一对轮子电机150,使施加于左轮20L的扭矩大于施加于右轮20R的扭矩。
通过上述操作,机器人1的偏航误差可以收敛到一个稳定的水平。
从以上内容可以明显看出,在某些实现方式中,机器人及其控制方法可以通过估算当前位置的坡度来确定主体的倾斜角度以及设置在主体上部的货箱的倾斜角度,从而使机器人在保持平衡的同时行驶。
篇幅所限,以上仅摘录部分内容,
如需获取英文原版、中文译文,请加入知识星球,
并搜索编号“A223”获取详细资料。
另在知识星球新增了一篇非公开资料,
《空间在轨服务遥操作技术的最新进展与未来展望S129)》