


1. webots建模
详细的建模过程,我感觉貌似不用再一步步带着大家走了,那么就直接上模型的结构吧~


2.动力学建模
终于到了正题,我们先来温习一下拉格朗日法的动力学求解。 首先第一步,定义拉格朗日函数:


不太熟悉的朋友记得翻翻《机器人学导论》,或者古月居论坛上一些大佬们的文章~下面开始对单连杆进行动力学建模:








这里要注意,公式里的惯性张量要跟webots中对应起来,因为webots中的坐标系大多数情况下跟我们理论建模的时候是不一致的!
3.柔顺控制器
现在到正主儿了,它的发展说来话长,篇幅有限就不多啰嗦了。 我们怎么实现它的柔顺性呢? 在此之前,我们需要先回顾一下质量-弹簧-阻尼模型,这个模型可太经典了!当年恩师讲这个的情景还历历在目~(怀念我的母校,明德笃学、弘毅拓新,致敬母校,祝母校70周岁生日快乐~)
声明:上图摘自《Modern Robotics Mechanics Planning and Control》,版权归原作者所有。为什么要讲它呢,因为这就是我们体现系统柔顺性的一个关键! 那什么是柔顺性?在外力作用下,系统能表现出自然顺从,这就叫柔顺性。 为什么又说质量-弹簧-阻尼模型是我们实现柔顺性的一个关键呢?这让我想起了邵总在知乎上的那篇文章,他举了一个简单形象的例子,机器人开门的问题,理想情况下机器人是可以实现开门过程,然而现实世界存在着误差,这就导致外力与门的关节限制发生冲突,从而导致门被破坏或者机器人被扯断,那我们怎么解决这个问题呢,在门与机器人之间加一个弹簧,这个弹簧可以填充理论与现实的误差,所以它能完美的解决这个冲突问题。 只有一个弹簧,又会存在什么问题?当然是振动!而为了避免振动的发生,我们应该引入一个阻尼,去消除这个振动。那么这就是我们柔顺控制的一个思想! 回过头来看模型,它的动力学方程可以写成:



声明:上图摘自《Modern Robotics Mechanics Planning and Control》,版权归原作者所有。问题又来啦,我们怎么应用这个模型去实现柔顺控制? 类比这个模型,我们得到二阶误差动力学模型。实际上,柔顺控制就是一个二阶误差动力学应用的结果,我们假想一下,在关节处有一个扭簧和阻尼器(这里我们以关节柔顺控制为例,笛卡尔柔顺控制同理,至于为啥没考虑质量呢,低速情况下我们可以忽略加速度,再者质量m在奇异点以外一般不会太大,当然我们这里的单连杆模型不存在这个问题,所以我们可以直接忽略质量问题),在不受外力(包括重力)的情况下,给它一个外力干扰,由于扭簧的存在,它会呈现出顺从性,而外力消失,在扭簧的作用下它又会慢慢回到平衡点。 那么,接下来我们就要写这个控制律了。 首先是外力问题,我们需要先给机械臂创造一个出外界作用力外的无外力环境,这时候我们就需要去做零力控制,通俗的说就是去补偿重力和摩擦力(当然还有一些其他因素的影响,我们要抓主要矛盾)。 为了简化,这里我们就不考虑关节摩擦力问题了,所以就只对它进行重力补偿。 联想到第2节建的动力学模型,由于处于低速情况下,因此我们可以忽略单连杆动力学模型中与角加速度有关的项,那么也就只剩下重力了,重力引起的力矩为:






注意:在仿真环境下随便设置参数无所谓,但在实际机器人控制中务必要注意不要随便去设置参数,而应该慢慢去尝试一下,否则可能会导致由于参数设置不当导致的控制器失稳,以免发生危险~okay,现在呢我们完成了单连杆柔顺控制的仿真,对于多自由度系统的关节柔顺控制,也很容易由单自由度去扩展得到。具体的柔顺参数的调整,大家还需要去回顾一下二阶系统的特性。 今天就先讲到这儿,读万卷书也要行万里路,我是罗伯特祥,下次见!
最后小声BB一句:今年秋招可真是一言难尽,在下太菜,有没有大佬要把我带去做同事?

评论(7)
您还未登录,请登录后发表或查看评论