查看: 3093|回复: 5

基于arduino uno的delta并联机器人控制系统设计教程一

[复制链接]
  • TA的每日心情

    2020-2-9 17:38
  • 签到天数: 330 天

    [LV.8]以坛为家I

    发表于 2018-9-13 20:44 | 显示全部楼层 |阅读模式
    本帖最后由 AimHigh 于 2018-9-14 10:25 编辑

       教程一先教大家如何写出delta并联机器人的各个位置坐标程序, 上个学期实现了一个基于uno的delta的控制系统,作为arduino社区的支持者与爱好者,今天将作(wan)品(ju)其发到此处。
        首先说一下我的整体方案设计见图一,它包括三个模块分别是舵机执行模块、电磁铁执行模块和串口通讯模块。其中舵机模块也是最重要的模块,需要三个舵机实现插补完成在空间走任意线段,定点搬运打孔等功能。                                                                                                        

    图1:整体方案图

    图1:整体方案图

        [sf] 要实现上述功能,必须对Delta并联机器人进行机构位置分析。教程一先教大家如何求出位置坐标,因为我这里是舵机,功能要求只需要求出逆解,这需要一点数学基础。    先将Delta并联机器人机构做如图2所示的简化,并建立如图2所示的动、静两个坐标系,静坐标系O-XYZ的原点O位于静平台的几何中心,即等边三角形A1A2A3的几何中心,Z轴垂直于静平台,OX垂直于A1A3。动平台上建立O’-X’Y’Z’坐标系,O’为动平台的几何中心,Z’轴垂直于动平台,O’X’垂直于C1C3。其中AiBi=L,CiBi=l。设定静平台的外接圆半径为R ,即OAI=R;设定动平台外接圆半径为r ,即O’C’I=r。机构运动时主动臂与垂直方向之间的夹角为θi,其中i= 1,2,3。
        Delta并联机器人通过三个分支链将上下平台连接起来,驱动臂在电机的驱动下作一定角度的反复摆动,再通过平行四边形闭环和转动副使动平台作平移运动,所以这里的位置逆解就是已知机器人动平台在静平台坐标系O-XYZ中的位置,求解主动臂AiBi与静平台平面之间的夹角(即(90°-θi)),然后建立
    静平台结构图3, 具体计算过程见图4到7。

    图2:delta简图

    图2:delta简图

    图3:静平台结构图

    图3:静平台结构图

    图4:逆解计算1

    图4:逆解计算1

    图5:逆解计算2

    图5:逆解计算2

    图6:逆解计算3

    图6:逆解计算3

    图7:逆解计算4

    图7:逆解计算4


    通过图7中的3-8式可知道,已知动平台坐标点时,每个ti会有两个解或者无解(不在工作空间内的点),于是主动臂与垂直方向的夹角θi也会有两个值。如果θi小的那个值时,主动臂会离静平台比较远;当θi取较大的那个值时,主动臂则会离静平台较近。由Delta的结构特点可以知道,主动臂与静平台之间的位置距离超出一定范围时可能会出现机构杆件之间的干涉,机构损坏,力学性能不稳定等问题。于是在选择θi的值时为了保证机构的良好工作性能,需要选取θi较大的那个值,于是可以得到 Delta机器人的位置逆解表达式,见图8。
                                                                   

    图8:逆解

    图8:逆解
    [/sf]
         有了上面的基础就可以在arduino IDE中写上我们的代码如下: [sf](这里要注意有三个舵机)
    double nijie1(double R,double r,double L,double l,double x,double y,double z)
    {
      double K,M,N;
      K=((-(x*x+y*y+z*z)+(y+sqrt(3)*x)*(R-r)-(R-r)*(R-r)-L*L+l*l)/L+2*z);
      M=-2*(2*(R-r)-y-sqrt(3)*x);
      N=((-(x*x+y*y+z*z)+(y+sqrt(3)*x)*(R-r)-(R-r)*(R-r)-L*L+l*l)/L-2*z);
      double a=90-2*atan((-M-sqrt(M*M-4*K*N))/(2*K))*180/PI+30;
      return(a);//返回角度
    }


    double nijie2(double R,double r,double L,double l,double x,double y,double z)
    {
      double K,M,N;
      K=((-(x*x+y*y+z*z)-(-y+sqrt(3)*x)*(R-r)-(R-r)*(R-r)-L*L+l*l)/L+2*z);
      M=-2*(2*(R-r)-y+sqrt(3)*x);
      N=((-(x*x+y*y+z*z)-(-y+sqrt(3)*x)*(R-r)-(R-r)*(R-r)-L*L+l*l)/L-2*z);
      double a=90-2*atan((-M-sqrt(M*M-4*K*N))/(2*K))*180/PI+30;
      return(a);//返回角度
    }


    double nijie3(double R,double r,double L,double l,double x,double y,double z)
    {
      double K,M,N;  
    K=((-(x*x+y*y+z*z)-2*y*(R-r)-(R-r)*(R-r)-L*L+l*l)/(2*L)+z);
    M=-2*(R-r+y);
    N=((-(x*x+y*y+z*z)-2*y*(R-r)-(R-r)*(R-r)-L*L+l*l)/(2*L)-z);
      double a=90-2*atan((-M-sqrt(M*M-4*K*N))/(2*K))*180/PI+30;
      return(a);//返回角度
    }[/sf]







    该用户从未签到

    发表于 2018-10-22 16:57 | 显示全部楼层
    楼主可以加个qq好友吗,2813533095,急求
  • TA的每日心情

    2020-2-9 17:38
  • 签到天数: 330 天

    [LV.8]以坛为家I

     楼主| 发表于 2018-10-23 18:50 | 显示全部楼层
    wf10132031 发表于 2018-10-22 16:57
    楼主可以加个qq好友吗,2813533095,急求

    你加我把,1025863915

    该用户从未签到

    发表于 2018-10-28 18:57 | 显示全部楼层
    AimHigh 发表于 2018-10-23 18:50
    你加我把,1025863915

    楼主,加个微信呗,wangfei3411251995
  • TA的每日心情

    2020-2-9 17:38
  • 签到天数: 330 天

    [LV.8]以坛为家I

     楼主| 发表于 2018-10-28 19:38 | 显示全部楼层
    wf10132031 发表于 2018-10-28 18:57
    楼主,加个微信呗,wangfei3411251995

    有什么事吗?你加我微信吧zsh1025863915
  • TA的每日心情
    奋斗
    2020-2-13 11:24
  • 签到天数: 39 天

    [LV.5]常住居民I

    发表于 2019-12-18 22:52 | 显示全部楼层
    数学一级棒!!!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    《Color Unit免费申请试用》
    《Color Unit免费申请试用
    COLOR 是一款颜色识别 Unit,其内部集成TCS3472彩色光数字转换器,能够将其检测到颜色
    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    求助帖,ESP01S介入WS2812B,无法让灯
    求助帖,ESP01S介入WS2812
    看抖音暴改车间着迷,但是无法调试出氛围灯,新手,有没有大神帮忙解决一下,感谢 上
    完美解决同步开关状态 ,小爱同学+app+本地按键控制状态...
    完美解决同步开关状态 ,
    你有没有发现app上面的按键在操作完毕后你就不知道开关的状态了;或者小爱操作完毕后
    DW542驱动器控制42步进电机
    DW542驱动器控制42步进电
    求一个范例,或者现成的代码,控制42步进电机,实现控制转台转动,要求可以控制转台转
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表