暑期学校见闻

端午小长假的第一天,去听了一天中科院和宾大合办的暑期模式识别培训班,上午下午各四个讲座。开场第一个是prof. Dan Lee,他的简历简直酷炫,讲的是智能机器。主要分了三个部分,感知、轨迹规划和运动控制,基本是关于学习算法在机器人上的应用。第一个例子印象比较深,是做声音定位,现场还请了个同学做示范,非常明晰地把背后的道理讲出来了。感觉他做得这些研究至少看上去并不是遥不可及艰深无比,但是都很有趣。还有一个很重要的是他们都用的是成熟的平台,从声音定位的aibo狗,到降维轨迹规划的RP2,再到push recovery的hubo,全都是著名的机器人平台。我想通过有效利用现有成熟平台,他们就可以把更多的精力和时间用在原理和机制的探究上,从而让自己的研究看上去更立体,更有层次感。 第二个讲的是北航的文力老师,做的是类鲨鱼皮仿生材料,合作单位有哈佛和一个别的什么美国大学。研究很厉害,上了nature hightlight,回来一查,老师本人也很厉害,10年博士毕业,得了个什么会的最佳学生论文,短短五年已经副教授加nature论文加身。工作本身很有意义,而且他们长期做下来就有越挖越深,越做越广的效应,最终形成了这种标志性的研究。所以研究这种东西,还是得钻进去,进去了才能发现里面的广阔天地。 下午第一场本以为是以助老机器人为主题,结果上来是将低成本机器人。Mark Yim老师头发长长的,白发很多,很有日本学者的感觉。他的研究路线我觉得很有趣,第一个案例是电机,他们发现好(贵)电机与差电机的差别主要在smooth这项指标上,于是加入一些传感器和控制,在差电机上达到了好电机的效果。然后降到飞行机器人,说旋翼的成本中IMU占很大比重,于是想能不能不要测量环节,实现被动稳定,结果用很机械的方法成功了。后来有讲通过控制桨叶转动达到削减直升机电机数的案例。期间还有一些比如自制laser传感器,自制手爪,自制万向移动平台之类的东西。都是用一些看似简单的方法,实现低成本的机器人,而且结论还有借鉴意义。虽然这些东西看上去并不高大上,老师也说了,低成本的追求在很多人看来不应该来自科学家,更偏向于工程应用,但他得到的结果我觉得是富有启发性的。老师在台上伸出手像孩子模拟开飞机一样讲解被动平衡的样子特别触动我,他真的是沉醉在自己的研究中,这种状态应该是很多人梦寐以求的吧。

June 20, 2015 · 1 min · Yuanhao

动力学一:约束,虚位移和虚功

与运动学研究轨迹、速度不同,动力学是研究力和运动关系的学问,主要的对象是力和加速度。在高中我们都学过的牛顿第二定律就是典型的动力学定律,但是当运动复杂之后,这种方法就比较麻烦且容易出错了。所以,在机器人这种典型的多刚体运动领域,常用分析力学的方法,核心自然就是拉格朗日方程了。 这篇文章算是一个分析力学入门读物吧,讲一讲里面的约束,虚位移和虚功。 约束的字面意思大家都懂的,在分析力学里是指对质点位置、速度的限制,用数学的话说就是 [ f_s(r_1,r_2,…,v_1,v_2,…,t)=0 ] 其中r表示质点的位置,v表示质点的速度。这里用等于号表示双面约束,其实只考虑这种情况就够了。 更特别的,如果这个函数里不含v了,那就是说只限制了位置,这种情况称为几何约束。对于几何约束和积分后可以写成几何约束的其他约束(微分约束),称他们为完整约束。 再来说虚位移,虚位移就是在某一瞬时,在不破坏约束的情况下质点的任意可能位移。比如一个平面上放着一个木块,假设他们始终接触(这就是约束),那么在特定时刻木块是可以沿着板做任何运动的,然而真实的运动肯定只能是众多虚位移中的一个。质点$P_s$的虚位移通常用$\delta r_s$表示。 力在虚位移上做的功就叫做虚功。如果作用在质点$P_s$上的约束反力$N_s$在任意虚位移上做的虚功之和为0,即 [ \sum_{s=1}^{n}N_s\cdot \delta r_s=0 ] 则称次约束为理想约束。我们其实基本上只考虑理想双面完整约束。 最后讲两个重要的原理。第一个是虚位移原理,讲的是手主动力$F_s$作用的质点的可能平衡位置是真实平衡位置的判据,其充要条件是 [ \sum_{s=1}^{n}F_s\cdot \delta r_s=0 ] 即主动力在任一组虚位移上所做虚功为0。 另一个是达朗贝尔原理,说的是质点系的每一个质点所受主动力、约束反力、惯性力构成平衡力系。即 [ F_s+N_s-m_s\ddot{r_s}=0 ]

June 4, 2015 · 1 min · Yuanhao

坐标变换与空间旋转

这一部分是机器人运动学的基础,在其他领域也有广泛的应用,比如飞行器控制、三维运动捕捉等等。 1 问题提出 首先介绍一下问题的来由。 不论是机器人还是飞行器还是人体,通常自身的结构都是相对固定的,在这个固定的结构上描述一些位置是非常方便的。例如,我说我在右手手腕关节上戴着一块手表,那么无论我在什么地方无论我的右手摆出了什么姿势,手表相对我的右手小臂的位置都不会改变。如果我精确一点,在右手小臂上建立一个坐标系,那么手表在这个坐标系中的坐标就是不变的。右手小臂坐标系就是我们通常说的固连坐标系,或刚体坐标系。 固连坐标系虽然简单,但却是不方便的,因为坐标系的形态老是在变化。例如虽然手表一直在我手腕上的固定位置,但是它在地球上的位置却随着手臂的变化而变化。所以常常会有一个参考坐标系或者叫世界坐标系。这个坐标系是不动的,所以里面的对象可以很方便地描述相对位置。 那么问题来了,例如我知道了手表在手臂坐标系的位置和手臂的位置和姿态,如何求它在世界坐标的位置呢?抽象一点就是如何表示两个坐标系的关系,并求出一个坐标中的位置在另一个坐标系中的表示。 ...

May 15, 2015 · 1 min · Yuanhao

DH方法

DH(Denavit–Hartenberg)方法是用来描述串联机器人构型的有力工具,但是由于涉及到的参数比较多,要搞清楚需要下一定功夫。我也算是先后在3门课里学过DH方法了,但直到最近一次德国外教的课上才算对这套体系有了比较直观的理解。 首先,机器人都可以抽象成是由许多的关节和连杆构成的,连杆奇形怪状可长可短,关节也有平动转动。DH方法就是用一套参数化的描述方式来对机器人进行建模,得到基座到末端执行机构的齐次变换矩阵。有了这个矩阵就可以做很多事了,比如: 末端是一个相机,知道一个物体在相机坐标系中的位置,通过变换矩阵我就能直到该物体与基座的相对位置; 知道各个关节的运动状态(转角、位移等)就能知道末端执行器在空间的位置。 对于一个串联机构,我们可以想象每一级关节连杆是从上一级上长出来的。DH用四个基本的变换(两个平动,两个转动)来描述当前级和上级的关系。最终再把所有的变换合成起来,便得到了从末端到基座的变换。 ...

May 7, 2015 · 1 min · Yuanhao