我的原始代码是在arduino上的一个简单的伺服控制器,而Scala代码会发送伺服命令通过电线。我在Scala中完成了所有的逆运动学和步态逻辑,然后走路:3dof四足先步态。
我在Scala中的步态逻辑有些天真。它取决于腿部在开始时处在正确的位置(一侧向前和向后延伸,另一侧朝向彼此)。逻辑很简单,就是将所有四只脚沿y向后平移1mm,然后每当一个coxa角变得过分向后时,停止并执行一些常规程序,即将该脚沿z方向抬高10mm,然后沿y向前平移60mm,然后放回原处。天真但有效。
现在,我已经在arduino C中重写了IK代码,并且我正在尝试确定如何继续进行步态动力学。我很难找到关于步态的良好且易于理解的资源。我确实对动态稳定步态(例如蠕动步态)和动态不稳定步态之间的区别有所了解,在这种情况下,身体始终是稳定的三脚架,而动态不稳定步态(在步行,小跑时)则是两条腿离地基本上已经落入前进的腿中了。
我对状态机有一些想法,并试图计算出身体的中心点是否落在其余脚所成的三角形内,从而确定哪只脚可以安全地抬起,但我不确定这些想法是否值得探讨。
我知道这是一个过于笼统的问题,但我有兴趣了解其他人如何解决了这个问题,以及所有这些问题我已经找到了研究论文。
#1 楼
尽管脚没有足够的牵引力,但步态实际上还算不错,所以很难看出它的效果。我不确定您的用语动态稳定的步态。正如我一直以来所了解的那样,两个三脚架式步态被称为静态稳定步态,而像Petman这样的良好步行两足动物则使用动态稳定步态。从未听说过动态不稳定的步态。听起来更像是醉酒。
地面上的两条腿可能是此机器人设计的下限。通常,使用高类人型机器人进行这项工作比较容易,因为这种机器人需要很长时间才能跌倒。如果没有在地板上放很多机器人,那么宽而扁平的机器人需要迅速抬起并放下脚。
但是如何为您的机器人开发一个样板。首先,您应该决定要从步态中实现什么。您是要在平面上获得最大速度,还是在凹凸不平的表面上获得最大的稳定性?
如果您的目标是稳定,那么我肯定值得让机器人意识到其重心站起来为了帮助它知道这一点,甚至可能值得在脚上添加一些力传感器,以便它可以轻松地进行计算。
如果您的目标只是最大速度,那么我将专注于为最佳步态模式。这很难做到。有两种很好的方法来实现它:
建模。创建机器人的综合计算机模型,包括质量,刚度,扭矩等。使用此模型可以充分了解动态行为。
尝试和错误。您可以用困难的方式做到这一点,以随机步态进行编程,直觉地调整它们并评估其性能。尝试使其向前和向斜走。或者,您可以使用遗传算法来帮助您自动搜索更好的步态。使用GA的困难在于,您需要某种方式来自动测量步态的性能。
第三种方法,是使该机器人成为科学家,像康奈尔大学的海星机器人一样,对自己进行有意义的实验以验证关于自己的假设,并研究如何行走。
评论
您对机器人所做的工作给我留下了深刻的印象。我迫切需要您的帮助,以寻求一些有价值的解决方案。在过去的6个月中,我一直在寻求解决方案以解决六脚架的运动学问题,但没有取得任何积极的成果。.我设法找到了与车身平行于地面的所有伺服角度的方程式,但是对于身体向一侧倾斜。感谢您是否能够提供帮助:-)关于Gary欢迎使用R.Se @ user2350-请不要提出任何补充问题(无论它们如何相关)作为答案