蛇形机器人研究从1976年就已经开始。但是产品级作品没听说过。为什么?此类机器人的主要问题在于自由度数高,又是串行结构难以控制。同样长度的机械臂,为实现蛇形的灵活度需要的关节数很多。特斯拉这条机械臂,上面有大约二十节。这给机械结构和控制方法都提出了很高要求。
机械结构蛇形机器人说白了就是串行机械臂,有三类基本结构。最简单的就是像普通机械臂一样,每个电机控制一个关节,像这样:

图:CMU蛇形机器人
可以爬树侦查但是这种结构一般都是做上图那种自由机器人,而固定基座的机械臂则很难做到很多节,因为电机的承重随电机数目和到末端的距离是线性增长的,从根部数第二个电机既要承受相当大重量,又要保持体积,制作难度非常大。第二种是将驱动器全部置于基座内,利用机械传动实现各个关节的控制。这是当今此类机器人的主流,此次特斯拉的机器人看上去也是采用这种方式。

图:茨城大学ShugenMa提出的超冗余蜿蜒型机器人两种差动耦合传动机构
如何实现高效的机械传动?传动结构一直是蛇形机器人的研究重点和难点。它大多采用线传动的方式进行动力传送,传动线和机器人连杆之间的摩擦将会对机器人的可靠性产生很大的影响,对机器人使用的材料提出很高的耐磨要求。
第三种是连续型结构,特点是整个机器人的电机数目(通常小于10个)小于机械结构的自由度数(通常10个以上,对于软结构而言是无穷多)。代表作品是Festo著名的气动象鼻:特斯拉此款机器人也有可能是这种结构,不是说它是气动软结构,而是说它未必每个关节都配一个电机。就像人的手指一根筋可以拉动3个关节一样,这种控制方式称为欠驱动。控制方式控制方式分两类。对于硬连杆式的机器人,其控制方式与普通的机械臂并无本质差别,其运动学模型也可以用DH参数建模,而动力学模型由于机器人运动缓慢基本可以忽略重力和负载以外的因素,唯一的问题是由于自由度数太大,即使是运动学模型也往往过于复杂。
普通工业机器人最常见的是6自由度,因为这样刚好足够让末端手臂到达任何位置、姿态。即使是6维,把其末端位置表示成六个关节角的函数也得写满满3页纸(好像是Motoman干过这件事),而当自由度涨到10时,这个表达式写成txt文本文档的大小是按MB计的(我干过这事)。所以与其用精确模型得到精确求解,更快、更实用的方式是用低阶近似模型迭代优化求解。具体说来,原本机器人模型复杂度随自由度数目增加是指数增长,这个式子可以一步求解,但是太复杂。于是现在用一个局部线性化之类的方法,把得到一个随自由度数线性增长的近似模型,其复杂度一下子变得可以忽略,计算机瞬间可以得到解;但是精度只在当前机器人姿态附近比较高。没关系,那我们就只用这一小段嘛,这个几毫秒内算出来的模型,我们只用它50毫秒,就更新重新计算个模型,这样在这50ms内,模型还是比较精确的。
另一大类思路用到概率论,大名鼎鼎的Rapidly-ExploringRandomTree(RRT)就是此类方法中的经典。简单说来,就是我虽然不知道怎么动我的二十个关节来让末端往目标方向移动,但我可以跑仿真尝试嘛。每一次尝试就是一次采样,而RRT就是提供了一种如何用最少采样次数得知正确解的方法。我没尝试过使用采样法,只知道有个面相凶狠的国外教授称对于高自由度机器人而言,在指数增长的庞大关节空间里进行随机搜索是“hopeless”的。连杆式机器人说完了。对于连续型机器人,情况麻烦了许多,由于关节间不存在线形关系,所以运动学计算非常难以得到精确解。流行的解决方法是将机器人的形状用一定的曲线(比如万能的贝塞尔)来近似,用少量几个参数来进行编码,从而获得可以处理的模型。
特斯拉的这款机器人,其实控制算法难度并不大,大约20个自由度,运动速度比较缓慢,基本可以忽略动力学特性。难点在硬件。看动作精度可以判断不是气动,此类机器人一般不用液压,那么最有可能还是用电机那么大的机械臂,动作如此稳定,一点超调抖动都看不出来,这就是实力了。
(来源:响评互联网)机器人365