当前位置 博文首页 > 【欢迎关注,一起学习,共同进步!】:【机器人技术基础】MATLAB

    【欢迎关注,一起学习,共同进步!】:【机器人技术基础】MATLAB

    作者:[db:作者] 时间:2021-08-12 17:56

    机器人技术基础实验2报告

    文末有本项目代码的Github链接
    源码下载链接

    • 1. 实验目的和要求
    • 2. 实验手段
      • 2.1 实验原理
      • 2.2 函数详解
    • 3. 实验主要内容
    • 4. 实验结果和分析
      • 4.1 正运动学求解
        • 例1
        • 例2
      • 4.2 逆运动学求解
        • 例1
        • 例2

    1. 实验目的和要求

    • 掌握常见形式的机器人的D-H坐标系建立方法、运动学建模;
    • 正逆运动学分析与求解;
    • 使用Robotics Toolbox对直角坐标机器人、圆柱坐标机器人、球坐标机器人、PUMA560其中之一建立运动学模型,正逆求解和仿真。

    2. 实验手段

    2.1 实验原理

    • D-H坐标系
    • 正运动学求解:已知机器人的所有连杆长度和关节角度,计算机器人手的位姿。
    • 逆运动学求解:找到方程的逆,求得所需的关节变量,使机器人放置在期望的位姿。
    • Robotics Toolbox & MATLAB

    2.2 函数详解

    • transl
      • Create or unpack an SE3 translational transform
      • T = transl(x, y, z)is an SE(3) homogeneous transform (4x4) representing a pure translation of x, y and z.
    >> T=transl(0, 0, 0.62)
    
    T =
    
        1.0000         0         0         0
             0    1.0000         0         0
             0         0    1.0000    0.6200
             0         0         0    1.0000
    

    • trotz
      • Rotation about Z axis
      • T = trotz(theta)is a homogeneous transformation (4x4) representing a rotation of theta radians about the z-axis.
    >> T=trotz(pi/2)
    
    T =
    
        0.9996   -0.0274         0         0
        0.0274    0.9996         0         0
             0         0    1.0000         0
             0         0         0    1.0000
    

    • SerialLink
      • Serial-link robot class
      • A concrete class that represents a serial-link arm-type robot. The mechanism is described using Denavit-Hartenberg parameters, one set per joint.
    robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','puma560','base' , ...
    transl(1, 1, 1)* trotz(pi/2)); %连接连杆,机器人取名puma560
    

    • Link
      • Robot manipulator Link class
      • A Link object holds all information related to a robot link such as kinematics parameters, rigid-body inertial parameters, motor and transmission parameters.
    %             theta      d           a          alpha       offset
    L1=Link([   0          0            0           -pi/2         0 ],'standard'); %连杆的D-H参数
    L2=Link([   0          0          0.4318        0             0 ],'standard');
    L3=Link([   0       0.1501	      0.0203       pi/2           0 ],'standard');
    L4=Link([   0       0.4318          0          -pi/2          0 ],'standard');
    L5=Link([   0          0            0          pi/2           0 ],'standard');
    L6=Link([   0          0            0           0             0 ],'standard');
    

    3. 实验主要内容

    • PUMA机器人的标准D-H参数如下:
    连杆 θ i \theta_{i} θi? d d d a a a α \alpha α
    1 θ 1 \theta_{1} θ1?00-90
    2 θ 2 \theta_{2} θ2?149.09mm431.8mm0
    3 θ 3 \theta_{3} θ3?0-20.32mm90
    4 θ 4 \theta_{4} θ4?433.07mm0-90
    5 θ 5 \theta_{5} θ5?0090
    6 θ 6 \theta_{6} θ6?56.25mm00

    4. 实验结果和分析

    4.1 正运动学求解

    例1

    θ = [ π 2 , 0 , π 2 , 0 , 0 , 0 ] \theta=[\frac{\pi}{2},0,\frac{\pi}{2},0,0,0] θ=[2π?,0,2π?,0,0,0]

    >> theta=[pi/2 0 pi/2 0 0 0];
    >> T=robot.fkine(theta)
     
    
    T = 
             0        -1         0   -0.1501
             0         0         1    0.8636
            -1         0         0    0.4797
             0         0         0         1
    

    正运动学求解1

    例2

    θ = [ ? π 2 , 0 , ? π 2 , 0 , 0 , 0 ] \theta=[-\frac{\pi}{2},0,-\frac{\pi}{2},0,0,0] θ=[?2π?,0,?2π?,0,0,0]

    >> theta=[-pi/2 0 -pi/2 0 0 0];
    >> T=robot.fkine(theta)
     
    
    T = 
             0         1         0    0.1501
             0         0         1         0
             1         0         0    0.5203