这个问题可大可小,既然是做研究,可以往稍微大一点的地方说吧。
首先,拖动示教,我理解的是Programming by Demonstration, 或者Learning from Demonstration, 这个可以参考“Handbook of Robotics”,第59章,见下图。

这上面的四个作者,基本在这个领域都做得相当的好,他们的相关实验室,都可以google到,在此不展开。另外这章后面的参考文献肯定是要好好看一下的。Dillmann应该是退隐了,其他三个还比较活跃的,实验室也维持着稳定的产出。
拖动,顾名思义,在这个场景下就是手拖着机器人去运动,通常的实现方法比较多,其他几位的答案也都提及了一些,下面再去介绍下:
1. 直接拖动的机器人,通常在机器人比较小比较轻或者减速比很小的时候可以这么做,绳驱动(cable-driven)的机器人一般可以这么做。


2. 通过电流环节实现动力学补偿的,从而实现拖动的;据说UR机器人是这么做的,很多国产机器人品牌基本都是这么个方法,优点是便宜(不需要加额外的传感器),响应速度快。缺点是要做好,需要很好的机器人完整动力学模型,包括估计关节的摩擦力。而温度的变化对摩擦力的影响也许是这个控制器最大的噩梦!
3. 通过关节力矩实现动力学补偿的,从而实现拖动的;这个在KUKA LWR, iiwa上应该用得比较成熟了,优点是感觉好,缺点是贵,难复制和大规模化。我自己的视频没有找到,放个我同事的吧。
4. 通过末端力传感器,直接把力的信息映射成关节的运动,这个本质上没有考虑机器人的动力学,还是会有一定的迟滞感。但是好处就是可以用工业机器人的位置环实现拖动。同样放个同事做的视频。
关于示教,这里面的内容就更多了,上面的提到的拖动,只是解决示教中的How的问题的一种方法。这里面还有大量的值得研究的内容,包括How to imitate, What to imitate, When to imitate,Who to imitate。通常探讨的比较多的可能是How和What的问题,但是When和Who其实是一个没有被多少研究的问题。如果是要搞牛逼一点的研究,可以试试。如果只是想毕业,研究How和What就够了,毕竟强化学习,深度学习的坑一时也填不完。
如果是对工业上的机器人应用感兴趣的同学,欢迎给我发微信,投简历,18年大家一起做点不一样的事。
本文转载自知乎,作者:李淼,如若转载请联系原作者。