机器人的动力学控制
The dynamics of robot control
自123班
庞悦
3120411054
机器人的动力学控制
摘要:机器人动力学是对机器人机构的力和运动之间关系与平衡进行研究的学科。机器人动力学是复杂的动力学系统,对处理物体的动态响应取决于机器人动力学模型和控制算法。机器人动力学主要研究动力学正问题和动力学逆问题两个方面,需要采用严密的系统方法来分析机器人动力学特性。本文使用MATLAB来对两关节机器人模型进行仿真,进而对两关节机器人进行轨迹规划,来举例说明独立PD控制在机器人动力学控制中的重要作用。
Abstract: for the robot dynamics is to study the relation between the force and movement and balance of the subject.Robot dynamics is a complex dynamic system, on the dynamic response of the processing object depending on the robot dynamics model and control algorithm.Kinetics of robot research dynamics problem and inverse problem of two aspects, the need to adopt strict system method for the analysis of robot dynamics.This article USES MATLAB to simulate two joints, the robot, in turn, the two joints, the robot trajectory planning, to illustrate the independent PD control plays an important part in robot dynamic control.
一 动力学概念
机器人的动力学主要是研究动力学正问题和动力学逆问题两个方面,再进一步研究机器人的关节力矩,使机器人的机械臂运动到指定位臵,其控制算法一共有三种:独立PD控制,前馈控制和计算力矩控制,本文主要介绍独立PD控制。 动力学方程:M(q)qC(q,q)qF(q)G(q)
二 独立PD控制介绍
独立控制指的是把机器人每个关节看成是一个独立的控制系统来准确地跟随关节角度轨迹。
独立PD控制系统结构图:
独立PD控制公式: KpeKde
* eqq eqq .*
其基本思想是,通过实际位臵和期望位臵的差与实际速度和期望速度的差,分别乘以比例增益和微分增益,得到机器人此刻的关节力矩,以控制机器人下一步的运动。
三 轨迹规划总体设计
下面将调用机器人工具箱里的模块库,再调用轨迹规划jtraj函数,来对两关节机器人进行轨迹规划。轨迹规划MATLAB仿真图使用动力学控制算法中的独立PD控制模块,来达到对机器人各个关节控制的目的。在模块里面可设臵关节起始角度,终止角度以及轨迹规划的时间,通过三个参数的设臵可完成轨迹规划并且另外通过jtraj函数以及plot函数给定机器人的运动轨迹,并且输出显示具体的轨迹波形,可与系统输出的波形进行对比,来看机器人是否按照给定的轨
迹在运行。
轨迹规划MATLAB仿真图:
上图是调用机器人工具箱里的demo3进行MATLAB仿真,然后改变demo3内部参数使其成为两关节机器人。
(1)在MATLAB里写入规划的轨迹程序,可以得到如下图所示的运行结果。 给定轨迹程序:
t=[0:0.1:10]
[q,q_d,q_dd]=jtraj(pi/6,5*pi/12,t)
figure(1)
plot(t,[q,q_d,q_dd])
xlabel('Time(s)'),ylabel('trajectory');
legend('position','velocity','acceleration');
迹在运行。
轨迹规划MATLAB仿真图:
上图是调用机器人工具箱里的demo3进行MATLAB仿真,然后改变demo3内部参数使其成为两关节机器人。
(1)在MATLAB里写入规划的轨迹程序,可以得到如下图所示的运行结果。 给定轨迹程序: t=[0:0.1:10]
[q,q_d,q_dd]=jtraj(pi/6,5*pi/12,t) figure(1)
plot(t,[q,q_d,q_dd])
xlabel('Time(s)'),ylabel('trajectory'); legend('position','velocity','acceleration');
轨迹规划运行结果图:
1.41.210.8
trajectory
0.60.40.20-0.2
01234
5Time(s)
678910
(2)用轨迹规划公式计算其各个参数编写程序得到其系统运行结果图 轨迹规划参数计算公式:
0=0 tf=f
0=0
t=0
f
t=a0+a1t+a2t2+a3t3 a0=0 a1=0 a2=
32(-) =(f-0) a03f23tftf
机器人手臂实际运动轨迹程序: t=simout(:,1); q1=simout(:,2); q1_d=simout(:,4); figure(1) plot(t,[q1,q1_d]);
xlabel('Time(s)'),ylabel('trajectory'); legend('position','velocity'); q2=simout(:,3); q2_d=simout(:,5); figure(2) plot(t,[q2,q2_d]);
xlabel('Time(s)'),ylabel('trajectory'); legend('position','velocity'); Grid
机器人第一个关节运行结果图:
trajectory
Time(s)
机器人第二个关节运行结果图:
trajectory
Time(s)
四 总结
通过本次机器人动力学的研究,使我进一步的了解到机器人动力学的控制算法,也了解到机器人动力学是对机器人机构的力和运动之间关系与平衡进行研究的学科。自己也查阅了相关的很多资料,对机器人学有了一个更全面的认识,也发现了自己的很多不足的方面,例如,对MATLAB不能熟练地应用,所以在今后的学习中要尽力弥补加强。
附页说明:由于我生病请假导致缺课,所以学习进度一直跟不上老师,以至于做的这次作业质量较差,还有一个导致作业质量较差的原因是做作业的时间比较赶,还有就是我自己第一次接受机器人的双语教学,学习能力较差,无法优秀的完成老师这次布臵的作业,通过机器人答辩我又重新复习了一遍机器人知识,对机器人运动学有了全面的认识,所以我利用空闲时间又重新写了一份作业,希望老师可以谅解。
机器人的动力学控制
The dynamics of robot control
自123班
庞悦
3120411054
机器人的动力学控制
摘要:机器人动力学是对机器人机构的力和运动之间关系与平衡进行研究的学科。机器人动力学是复杂的动力学系统,对处理物体的动态响应取决于机器人动力学模型和控制算法。机器人动力学主要研究动力学正问题和动力学逆问题两个方面,需要采用严密的系统方法来分析机器人动力学特性。本文使用MATLAB来对两关节机器人模型进行仿真,进而对两关节机器人进行轨迹规划,来举例说明独立PD控制在机器人动力学控制中的重要作用。
Abstract: for the robot dynamics is to study the relation between the force and movement and balance of the subject.Robot dynamics is a complex dynamic system, on the dynamic response of the processing object depending on the robot dynamics model and control algorithm.Kinetics of robot research dynamics problem and inverse problem of two aspects, the need to adopt strict system method for the analysis of robot dynamics.This article USES MATLAB to simulate two joints, the robot, in turn, the two joints, the robot trajectory planning, to illustrate the independent PD control plays an important part in robot dynamic control.
一 动力学概念
机器人的动力学主要是研究动力学正问题和动力学逆问题两个方面,再进一步研究机器人的关节力矩,使机器人的机械臂运动到指定位臵,其控制算法一共有三种:独立PD控制,前馈控制和计算力矩控制,本文主要介绍独立PD控制。 动力学方程:M(q)qC(q,q)qF(q)G(q)
二 独立PD控制介绍
独立控制指的是把机器人每个关节看成是一个独立的控制系统来准确地跟随关节角度轨迹。
独立PD控制系统结构图:
独立PD控制公式: KpeKde
* eqq eqq .*
其基本思想是,通过实际位臵和期望位臵的差与实际速度和期望速度的差,分别乘以比例增益和微分增益,得到机器人此刻的关节力矩,以控制机器人下一步的运动。
三 轨迹规划总体设计
下面将调用机器人工具箱里的模块库,再调用轨迹规划jtraj函数,来对两关节机器人进行轨迹规划。轨迹规划MATLAB仿真图使用动力学控制算法中的独立PD控制模块,来达到对机器人各个关节控制的目的。在模块里面可设臵关节起始角度,终止角度以及轨迹规划的时间,通过三个参数的设臵可完成轨迹规划并且另外通过jtraj函数以及plot函数给定机器人的运动轨迹,并且输出显示具体的轨迹波形,可与系统输出的波形进行对比,来看机器人是否按照给定的轨
迹在运行。
轨迹规划MATLAB仿真图:
上图是调用机器人工具箱里的demo3进行MATLAB仿真,然后改变demo3内部参数使其成为两关节机器人。
(1)在MATLAB里写入规划的轨迹程序,可以得到如下图所示的运行结果。 给定轨迹程序:
t=[0:0.1:10]
[q,q_d,q_dd]=jtraj(pi/6,5*pi/12,t)
figure(1)
plot(t,[q,q_d,q_dd])
xlabel('Time(s)'),ylabel('trajectory');
legend('position','velocity','acceleration');
迹在运行。
轨迹规划MATLAB仿真图:
上图是调用机器人工具箱里的demo3进行MATLAB仿真,然后改变demo3内部参数使其成为两关节机器人。
(1)在MATLAB里写入规划的轨迹程序,可以得到如下图所示的运行结果。 给定轨迹程序: t=[0:0.1:10]
[q,q_d,q_dd]=jtraj(pi/6,5*pi/12,t) figure(1)
plot(t,[q,q_d,q_dd])
xlabel('Time(s)'),ylabel('trajectory'); legend('position','velocity','acceleration');
轨迹规划运行结果图:
1.41.210.8
trajectory
0.60.40.20-0.2
01234
5Time(s)
678910
(2)用轨迹规划公式计算其各个参数编写程序得到其系统运行结果图 轨迹规划参数计算公式:
0=0 tf=f
0=0
t=0
f
t=a0+a1t+a2t2+a3t3 a0=0 a1=0 a2=
32(-) =(f-0) a03f23tftf
机器人手臂实际运动轨迹程序: t=simout(:,1); q1=simout(:,2); q1_d=simout(:,4); figure(1) plot(t,[q1,q1_d]);
xlabel('Time(s)'),ylabel('trajectory'); legend('position','velocity'); q2=simout(:,3); q2_d=simout(:,5); figure(2) plot(t,[q2,q2_d]);
xlabel('Time(s)'),ylabel('trajectory'); legend('position','velocity'); Grid
机器人第一个关节运行结果图:
trajectory
Time(s)
机器人第二个关节运行结果图:
trajectory
Time(s)
四 总结
通过本次机器人动力学的研究,使我进一步的了解到机器人动力学的控制算法,也了解到机器人动力学是对机器人机构的力和运动之间关系与平衡进行研究的学科。自己也查阅了相关的很多资料,对机器人学有了一个更全面的认识,也发现了自己的很多不足的方面,例如,对MATLAB不能熟练地应用,所以在今后的学习中要尽力弥补加强。
附页说明:由于我生病请假导致缺课,所以学习进度一直跟不上老师,以至于做的这次作业质量较差,还有一个导致作业质量较差的原因是做作业的时间比较赶,还有就是我自己第一次接受机器人的双语教学,学习能力较差,无法优秀的完成老师这次布臵的作业,通过机器人答辩我又重新复习了一遍机器人知识,对机器人运动学有了全面的认识,所以我利用空闲时间又重新写了一份作业,希望老师可以谅解。