ABB_2600运动学

  1.  DH参数建模

图ABB_2600_1.65_20G DH参数

说明:ABB采用MDH参数进行建模,注意MDH(改进DH参数)和DH(标准DH参数的区别)

  1. ABB_2600的正运动学分析

2600采用改进DH参数进行建模,其所对应的正运动学方程为:

其中:

通过机器人正运动学方程我们可以求解出机器人末端相对于基座标系的旋转矩阵,通过公式可以进一步转化为位置+姿态的表达形式

机器人正运动学代码:


/*--------------------------ABB_2600DH参数表---------------------------*/
        double d0 = 445;double d1 = 0;double d2 = 0;double d3 = 795;double d4 = 0;double d5 = 85;
        double a0 = 0;double a1 = 150;double a2 = -700;double a3 = -115;double a4 = 0;double a5 = 0;
        double alpha0 = 0;double alpha1 = -Math.PI / 2; double alpha2 = 0;
        double alpha3 = Math.PI / 2; double alpha4 = -Math.PI / 2; double alpha5 = Math.PI / 2;

        /*---------------------------------------------------------------------*/

        /*---------------------------ABB_2600连杆矩阵--------------------------*/
        double[,] T01 = new double[4, 4];
        double[,] T12 = new double[4, 4];
        double[,] T23 = new double[4, 4];
        double[,] T34 = new double[4, 4];
        double[,] T45 = new double[4, 4];
        double[,] T56 = new double[4, 4];//末端变换矩阵
        /*---------------------------------------------------------------------*/

        MatrixMath Kine_MatrixMath = new MatrixMath();
        

        /// <summary>
        /// 机器人正运动学
        /// </summary>
        /// <param name="theta"></param>
        /// <returns></returns>
        public double[,] Rob_Fkine()
        {                     
            double[,] T02 = Kine_MatrixMath.MatrixMult(T01, T12);
            double[,] T03 = Kine_MatrixMath.MatrixMult(T02, T23);
            double[,] T04 = Kine_MatrixMath.MatrixMult(T03, T34);
            double[,] T05 = Kine_MatrixMath.MatrixMult(T04, T45);
            double[,] T06 = Kine_MatrixMath.MatrixMult(T05, T56);           
            return T06;
        }

        /// <summary>
        /// 机器人连杆参数矩阵相乘
        /// </summary>
        public void M_Trans_Mult(double[] theta)
        {
            //T01连杆参数矩阵
            T01[0, 0] =Math.Round(Math.Cos(theta[0]),4);
            T01[0, 1] =Math.Round(-Math.Sin(theta[0]),4);
            T01[0, 2] = 0;
            T01[0, 3] = a0;
            T01[1, 0] = Math.Round((Math.Sin(theta[0]) * Math.Cos(alpha0)),4);
            T01[1, 1] = Math.Round((Math.Cos(theta[0]) * Math.Cos(alpha0)), 4);
            T01[1, 2] = Math.Round(-Math.Sin(alpha0));
            T01[1, 3] = Math.Round((-Math.Sin(alpha0) * d0), 4);
            T01[2, 0] = Math.Round((Math.Sin(theta[0]) * Math.Sin(alpha0)), 4);
            T01[2, 1] = Math.Round((Math.Cos(theta[0]) * Math.Sin(alpha0)), 4);
            T01[2, 2] = Math.Round(Math.Cos(alpha0), 4);
            T01[2, 3] = Math.Round((Math.Cos(alpha0) * d0), 4);
            T01[3, 0] = 0;
            T01[3, 1] = 0;
            T01[3, 2] = 0;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗哥的程序手册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值