Da Vinci Robot MasterHand 工作空间(workspace)分析

首先利用DH法对主臂建模


代码如下:

function m = MH_DH_Model()
    m.l_arm = 0.3000;
    m.l_forearm = 0.3500;
    m.h = 0.1347;
    
    m.method = 'Standard';
    m.DH = [
        % type   alpha   a           d       theta
        %=====================================
           1      pi/2  0             0          0;
           1      0     m.l_arm       0         -pi/2;
           1     -pi/2  m.l_forearm   0          pi/2;
           1      pi/2  0             m.h        0;
           1     -pi/2  0             0          0;
           1      pi/2  0             0         -pi/2;
           1      0     0             0          pi/2;
           ];
    m.tip = eye(4);
end

完成建模后做Forward Kinematics(可以自己写function,也可以直接用robotics toolbox)

代码如下:

function [T,Jacobian] = FK_Jacob_Geometry(q,dh_table,Tip_T,DH_method)
% return position of center of mass of ith link
    T = eye(4);
    dh_size = size(dh_table);

    Jacob_ori = [0;0;1];
    z_axis = [0;0;1];
    p_pos = [0;0;0];
    for i=1:dh_size(1)
        theta = dh_table(i,5);
        d = dh_table(i,4);
        a = dh_table(i,3);
        alpha = dh_table(i,2);
        type = dh_table(i,1);
        if type == 1
            theta = theta + q(i);
            T = T*DHtransform(theta,d,a,alpha,DH_method);
            z_axis = [z_axis,T(1:3,3)]; 
            p_pos = [p_pos,T(1:3,4)];
        elseif type ==2
            d = d + q(i);
            T= T*DHtransform(theta,d,a,alpha,DH_method);
            z_axis = [z_axis,T(1:3,3)];
            p_pos = [p_pos,T(1:3,4)];
        else
            msg = sprintf('Encounter a known Joint Type %d, it must be 1 or 2',type);
            error(msg);
        end    
    end
    
     Jacobian = [];
    if DH_method == 'Standard'
        z_axis = z_axis(:,1:end-1);
        p_pos = p_pos(:,1:end-1);
    elseif DH_method == 'Modified'
        z_axis = z_axis(:,2:end);
        p_pos = p_pos(:,2:end);
    end
 
    %Tranform from last joint frame to tip frame
    T = T*Tip_T;
    p_pos = [p_pos,T(1:3,4)];
    
    

    for i=1:dh_size(1)
       type = dh_table(i,1);
       if type == 1
          Jacobian = [Jacobian,[cross(z_axis(:,i),p_pos(:,end)-p_pos(:,i));z_axis(:,i)]];
       elseif type == 2
          Jacobian = [Jacobian,[z_axis(:,i);zeros(3,1)]];
       end
    end
end

现在可以分析end effector 的 workspace, 随机在joint angle constraints里任意生成n个点,利用forward kinematics计算出n个三维空间上的点,再求解其包络图就可以了。

代码如下:

l_arm = 0.3000; % length of arm
l_fore_arm = 0.3500; % length of forearm
h = 0.1347; % height of handle

% all possible theta values for seven joints
% the joints constrains refer to Da Vinci Robot
% theta1 = (-pi/3):0.1:(pi/3);
% theta2 = (-pi/3):0.1:(5*pi/36);
% theta3 = (-pi/18):0.1:(5*pi/12);
% theta4 = (-49*pi/36):0.1:(13*pi/36);
% theta5 = (-93*pi/90):0.1:(49*pi/90);
% theta6 = (-41*pi/180):0.1:(41*pi/180);
% theta7 = (-25*pi/18):0.1:(25*pi/18);

% generate n theta values
n = 100000;
theta1 = rand(n,1)*(2*pi/3)-pi/3;
theta2 = rand(n,1)*(17*pi/36)-pi/3;
theta3 = rand(n,1)*(17*pi/36)-pi/18;
theta4 = rand(n,1)*(31*pi/18)-49*pi/36;
theta5 = rand(n,1)*(71*pi/45)-93*pi/90;
theta6 = rand(n,1)*(41*pi/90)-41*pi/180;
theta7 = rand(n,1)*(25*pi/9)-25*pi/18;

% the last 4 joints will not affect the tip position
% Forward kinematics to generate n 3D points
x = cos(theta1).*(l_fore_arm.*cos(theta2 + theta3) - h.*sin(theta2 + theta3) + l_arm.*sin(theta2));
y = sin(theta1).*(l_fore_arm.*cos(theta2 + theta3) - h.*sin(theta2 + theta3) + l_arm.*sin(theta2));
z = h.*cos(theta2 + theta3) + l_fore_arm.*sin(theta2 + theta3) - l_arm.*cos(theta2);

% plot the points cloud
scatter3(x, y, z, '.')
hold on

% plot the convex
dt = delaunayTriangulation(x, y, z);
[ch, v] = convexHull(dt);
trisurf(ch, dt.Points(:,1), dt.Points(:,2), dt.Points(:,3), 'FaceColor', 'cyan')

title('3D workspace of MasterHand')

结果如图所示:



机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第1页。机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第1页。机器人用英语怎么说英文翻译及例句 机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第1页。 机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第1页。 机器人是指能够自动执行工作的机器装置,如今关于机器人的科技已经越来越发达了,那么你知道机器人用英语怎么说吗?下面跟店铺一起学习机器人的英语知识吧。 机器人英语说法 robot automaton android 机器人的相关短语 智能机器人 intelligent robot ; the robot ; brain bot jr ; IR 水下机器人 ROV ; underwater robot ; Remote Operated Vehicle ; underwater vehicle 机器人战线 Robot Battle Tactics 机器人向导 robots 机器人劫难 Android Apocalypse ; Android ; Paul Ziller 机器人控制技术 Robot Control Technology 机器人的英语例句 1. Most mobile robots are still in the design stage. 大多数移动机器人仍处在设计阶段。 2. The robots have been on trial for the past year. 这些机器人过去一年都在试用当中。 3. These cars are built by robots. 这些汽车是由机器人制造的。 4. In the story human beings were replaced by robots. 在这个故事中,人类被机器人代替了. 5. They built a robot capable of understanding spoken commands. 他们制造了一个能懂口头指令的机器人. 6. Science fiction stories often mention robots that can talk. 机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第2页。机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第2页。科幻小说常提到会说话的机器人. 机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第2页。 机器人用英语怎么说英文翻译及例句(1)全文共2页,当前为第2页。 7. Robots can relieve people of dull and repetitive work. 单调重复的工作,机器人可以代劳. 8. She worked like a robot. 她工作起来如同一个机器人. 9. These robots are capable of shape discrimination. 这些机器人能辨别形状. 10. The robot is a marvel of modern engineering. 机器人是现代工程技术的奇迹. 11. Simon's book provides a succinct outline of artificial intelligence and its application to robotics. 西蒙的书简明扼要地概括了人工智能及其在机器人技术方面的应用。 12. What's coming next are robots that do the actual cutting. 下一步机器人要做的就是亲自主刀做手术了. 13. " Aesop, move right, " Colvin says, and the robot obeys. " 伊索, 向右移动, " 科尔文说.结果, 这架机器人就遵从命令移动. 14. Do you think it is possible for a robot to think for itself? 你认为机器人可能会独立思考吗? 15. Lots of pilots plot to dot the rotten robot. 大批领航员策划给腐烂的机器人打点。 机器人用英语怎么说英文翻译及例句(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值