• 技术文章

    如何练好手眼协调能力

    2019-06-03 10:55:22  来源:杭州蓝芯科技有限公司

    婴幼儿在几个月到1周岁之间,会通过玩一些简单的玩具,逐渐锻炼出手眼协调能力。在机器人领域,则需要我们赋予其手眼协调能力,这个过程,一般称为“手眼标定”。机器人只有拥有手眼协调能力,才能完成复杂的工作,真正称之为“智能”。
     

    当婴幼儿看到物体时,首先通过眼睛获取信息,传输到大脑进行理解,*终通过手来操作完成玩具的抓取、放置。手、眼、脑协同是人类和少数动物的一项特殊技能,通过经常玩一些简单的益智玩具,可以逐渐锻炼增强孩子的手眼协调能力,同时可以作用到大脑,促进孩子的智力发育。

    商家们也看到了这块领域,设计出很多益智玩具和游戏,如图1中所示。孩子需要把玩具抓起并放入车里。孩子的空间思维能力、协调能力在游戏中得到了锻炼。
     


    图1
     

    在智能机器人领域,机器人需要完成高效、复杂的工作,否则无法称之为“智能”。然而,机器人要想获得同人类一样的协调能力并不容易。如何才能实现像人一样的手眼协同能力呢?
     

    再回到这个游戏。孩子在玩玩具时,大脑中有一个坐标系,可看做是基础坐标系;灵活的手在运动中形成一个轨迹,称之为手的坐标系;玩具要放置的点又有一个目标坐标系。三个坐标系协同,游戏才能顺利地玩下去。如果为此游戏场景加入坐标,会是这个样子,如图2所示。
     


    图2

     

    智能机器人领域,四轴、六轴、并联等机械臂可认为是机器人的手臂(虽然自由度较高、速度快,但相比人手的灵活性还远远不如)。机器人的眼睛,一般指摄像机(包括2D和3D)。目前智能机器人的主流是使用3D视觉相机。机器人的大脑一般指进行核心控制和计算的工控机或嵌入式芯片。

    一般而言,机器人的“手眼协调”需要一个“手眼标定”(Hand-eye calibration)的过程。手眼标定是机器人领域的一个经典的问题,其核心是计算出相机坐标系在机器人坐标系下的转移矩阵。转移矩阵是4×4的矩阵,一般用齐次坐标表示。其中*重要的两个分量是旋转矩阵R和平移矢量t,分别表示旋转分量和平移分量。得到转移矩阵后,可将相机下的坐标转换到机械臂坐标系下,从而完成工作。如图3所示。
     


    图3

     

    两个坐标系,如何建立关系?这是手眼标定要解决的核心问题。

    手眼标定和核心是解决一个AX=XB的矩阵。解此矩阵的算法就是手眼标定算法。

    小蓝( 杭州蓝芯科技有限公司简称)公司依赖Eigen库实现了经典Tsai的方法并且开源。

     

    如何进行手眼标定

     

    注意:以下涉及公式推导,不想推数学公式的可跳过。

    理解手眼标定的核心是如何将机器人的手眼关系代入AX=XB的公式中。

    首先要理解A,B,X分别代表什么含义。

    X,表示未知量,即手眼标定的转移矩阵。

    A和B呢?

    先看机器人手眼分离的示意图。

     


    图4

     

    图4中,机器人底座一般认为是世界坐标系的原点。摄像机(眼睛)识别的位置通过转移矩阵,可以转换到机器人坐标系(同时也是世界坐标系)下。在手眼标定的过程中,需要连续移动机械臂终端,采集一组末端执行器的位姿;与此同时,相机采集挂在末端执行器的标记(例如,棋盘格)的位姿,组成另一组数据。

    预警:下面是一些真正的数学推导。

    假设采集的数据有N对,根据图中的几何关系,未知量有两个,分别是标记在末端执行器下的位姿和相机在世界坐标系下的坐标。

    其中是我们手眼标定的目标,是多少我们并不关心。

    根据标记是空间中的位姿,我们可以得到(两边都是标记的位姿)


    观察上面公式,
    未知,是目标矩阵,不变量;
    已知,是可以通过相机读到的数据,变量;
    已知,是机械臂末端读数,变量;
    未知,我们很不喜欢它,不变量。

    故此方程有两个已知量,两个未知量,一组数据不可解!
    一组数据不行,那就多来几组吧!
    假设我们有两组数据,分别是第i组合第j组,两组坐标在公式里的括号内表示。
    回想初中代数,我们可以通过类似方程组的解法,消去我们不喜欢的。
    有如下两组方程,

     

    联立方程,消去,*终我们得到,

    至此,回想矩阵乘法的结合律,我们惊喜的发现,方程的形式正是AX=XB!
    其中A和B分别已知,什么?A和B是什么?自己观察一下!

    数学推导结束。
     

    小朋友们,不对,工程师们,可以用此数据带入标准算法计算了!
    一般来说,采集的数据越多,标定的结果越准确。采集时,为防止陷入局部陷阱,需尽可能多的采集机器人姿态,同时,要保证标记在机械臂末端位姿固定,相机和机械臂的相对位姿也要保持固定。
    有人说,不对,我用的相机不是这样装的。我把相机装在了机械臂上,同其一起移动,可以用这种方法吗?
    答案当然是可以。
    这涉及到手眼协同机器人的两种模式,分别是eye-in-hand和eye-to-hand。刚刚我们一直研究的是eye-to-hand的模式。对于eye-in-hand模式,可以采用类似方法,消去我们不喜欢的中间变量,*终归结到AX=XB的形式,就可以解了。
    两种模式在公开的源码中都可以找到。
     

    总结
    1、孩子的手眼协调能力会在游戏中得到锻炼,只要给玩具让她/他玩,基因会逐渐教会她/他灵活的手眼协同能力。
    2、智能机器人的手眼协调,需要工程师们的认真调教!一般来说,数据越多,误差越小。手眼协调能力,是机器人完成分拣、抓取、放货工作的前提。
     

    图5 手眼协调拣货

     

    本文属于纯原创文章,转载请注明杭州蓝芯科技有限公司


    留言
    方女士
    谷瀑服务条款》《隐私政策
内容声明:谷瀑为第三方平台及互联网信息服务提供者,谷瀑(含网站、客户端等)所展示的商品/服务的标题、价格、详情等信息内容系由店铺经营者发布,其真实性、准确性和合法性均由店铺经营者负责。谷瀑提醒您购买商品/服务前注意谨慎核实,如您对商品/服务的标题、价格、详情等任何信息有任何疑问的,请在购买前通过谷瀑与店铺经营者沟通确认;谷瀑上存在海量店铺,如您发现店铺内有任何违法/侵权信息,请在谷瀑首页底栏投诉通道进行投诉。
杭州蓝芯科技有限公司 电话:13675884706 手机:13675884706 地址: 杭州市余杭区文一西路1818-2号中国人工智能小镇7-902
Copyright ©2003 - 2025 Goepe.com 版权所有 关于谷瀑 | 服务中心 | 著作权与商标声明 | 会员服务 | 隐私声明 | 网站导航