机器人应用开发

    这三周(2018年11月)一直在做机器人手臂方面的调研工作。我负责三维显示与交互、机器人逆向动力学、碰撞检测等功能的demo搭建,另一位同事负责自动路径规划,硬件驱动交互等调研。调研过程中,我发现了机器人手臂这一个小的系统涉及到内容也是很有难度的,更不用说像Boston Dynamics 的机械狗那样复杂度的整体系统。真的非常佩服这个团队。我们主要调研一个商业的算法lib。也有开源的机器人算法lib,并没有纳入参考调研范围。对于我来讲,则是需要参考一下开源项目的,我们有机器人相关的经验和知识,必需以此机会学习一下。我选择了一个不错的lib:roboticslibrary/rl。

机器人手臂最重要的概念便是自由度。我们人体手臂的自由度为7(整个手掌算作一个刚体),但是大多数机器人手臂的自由度为6。所以,我们一般也常说6轴机器人。四轴、五轴的机器人也较为常见。“轴”与“自由度”的概念是不同的。机器人手臂关节(joint),一般有几种类型:转动、移动、圆柱、平面、螺旋、球面。为了简单起见,多数机械手臂一个joint只给出一个自由度。为什么是数字6,而不是7呢?那是因为,”最近的在运动学方面的一个主要的研究成果:所有办好转动关节和移动关节的串联型6自由度结构均是可解的。但是这种解一般是数值解,对于6自由度机器人来说,只有在特殊情况下才有解析解。“(ref 1, P74)7自由度的机器人只存在数值解了,甚至,以现在的算法和硬件计算能力,还不一定能够给出准确的数值解。我们的人体手臂,还有三节灵活的手指,大脑能够随心所欲的操纵这个负责的结构做操作,大脑真是非常神奇。

    商业lib最多能够支持12个自由度,我很怀疑这个数字,是不是不是指代关节的个数。rl lib并没有文档给出DOF的上限,但是,我查看接口,认为它们最多支持6 DOF。商业lib提供了一个多机器人版本,可以把固定底座变为轨道移动底座,机器人整体变为7自由度。开源lib则完全没有简单类似的文档说明,基本上默认所有的机器人都是6 DOF。我认为这部分不是难点,更复杂的计算在“路径规划”上。即使商业lib,对于这个功能的支持也是有相当大的限制的。我们假想的机器人能够像人一样灵活的运用关节,其实是很难办到的事情,很难很难,这是由当前的数学研究水平决定的,你丝毫没有办法。这里要带一笔,一些商业lib虽然资料少,但是,就功能的先进性、可靠性上来讲,比开源的还是好一些的。商业公司花大价钱请来的的数学家、物理学家、科学家等,这钱能是白花的?

    另外一方面,我们完成了数学计算,理论上证明了机器人手臂可以完成哪些动作。但是,物理上的的限制可能让我们的目标无法达成。操纵机械臂分为两种方式:简单的线性控制,复杂的非线性控制。常见的机器人关节一般是转动型的,只有一个自由度,围绕一个轴体旋转,而且还有角度限制。控制全部关节在指定时间内以直线段或者曲线运动,并到达指定位置,这是非常复杂的事情,要求的精度非常高,涉及到一些精密机械组件。还有操作臂的力控制。这些都涉及到静力学、动力学,难度非同一般。从报道上来看,国内机器人产业的发展,也是从近几年才开始的,简而言之,就是我们的基础不足。16年美的收购四大机器人厂商之一kuka引起巨大轰动,我们对于机器人技术越来越重视。“中国制造2025”,离不开高度自动化的机器人技术。希望我们国家也能做出现竞品。

    目前,我对于机器人偏底层的开发并没有多少兴趣,涉及到机械、力学、嵌入式硬件,我感兴趣的是上层的应用,能够驱动机器人到达指定位置,躲避障碍,完成指定动作即可。围绕机器人技术,有机器视觉,有CAD软件,有机器学习,这些都是能够加速工业流水线作业的技术,都有很不错的应用前景。应用层有关机器人的知识,参看《机器人学导论》这本书就能覆盖大部分了。开源lib方面,已经和商业lib没有什么差距了,功能都相近。

    P.S. 机器人真的很贵啊,流水线上常见的kukua、abb等机械臂,一台价格二三十万。研究及教育使用的小型kuka机器人 youBot 竟然要 19990 欧元,真是令人惊叹。越小的机器人,其实可能越贵。
  笔记放了一年了。差点拖到回收站了。

 

  1. 《机器人学导论》

  2. https://www.zhihu.com/question/36475827?sort=created 人的手臂有几个自由度?

 

 

你可能感兴趣的:(软件工程)