运动学

冗余度求解

冗余度求解,讲的是当机器人拥有的关节比任务严格所需的还多时,它如何在「能把同一件事做成」的众多方式里做出选择。你自己的手臂就是绝佳例子:把手平摁在桌面上不动,你仍能抬高或放低手肘,让它在空中划动,而手却纹丝不动。手的任务已经被完全规定死了,手臂却还剩下一份可以摆弄的自由。一个拥有这同一份多余自由的机器人,每时每刻都面临一个选择——而冗余度求解,就是它用来明智地做出这个选择的规则。

这份多余的自由是恩赐,而非累赘,因为它让机器人能在牢牢完成主任务的同时,「顺手」去追求第二个目标。在手被钉在正确位置上的同时,手臂可以悄悄重塑手肘的姿态去避开障碍物、躲开运动学奇异点(那种被卡住的姿态)、让关节远离各自的极限位置,或者干脆挑最省力的方式去动。冗余度求解,就是从无穷多种都成立的手臂形状里,挑出那个同时也最能服务于你最在意的次要目标的那一种的配方。

从机械上说,这些多余的动作活在所谓的零空间里——也就是那一类只在原地折腾手臂、却完全不挪动手的关节运动。冗余度求解的做法是:先让主任务把手的运动完全定下来,再用剩下的那点零空间自由去满足次要目标。一条优雅、近乎人手的机器臂,正是这样伸进堆满杂物的架子的:手死死锁定目标,手肘则礼貌地在所有挡路的东西之间穿来绕去。

一条七关节手臂必须端着一杯满满的咖啡、保持水平,越过一张堆得满满的台面把它送过去。让杯子保持直立又平稳,已经把手臂大部分姿态都定死了,但还剩一份多余的自由。冗余度求解就把这份自由花在把手肘甩到一边,让它绝不碰倒糖罐——而这一切的同时,杯子始终保持纹丝不动的水平。

多出来的关节让手臂能去追第二个目标——这里是躲开糖罐——而不打扰主任务。

当一条手臂的关节数比任务所需的还多时,就称它对该任务是冗余的——例如一条七关节手臂去做一件只需完全规定六个手部运动方向的活儿。

又称
kinematic redundancy resolutionredundancy resolution冗余解算冗餘解算