matleap-master的使用(3)

1、前记:上接matleap-master的使用(1)matleap-master的使用(2),继续使用leap motion控制在MATLAB环境下的机器人                    模型。其实思路也是一样的,将leap motion获得的手掌空间坐标传递给机器人逆运动学公式中。

2、问题:

      1)leap motion的坐标系怎么转换到机器人坐标系中,这一部分我没有细致的去看开发者文档,文档中可能有更好的方式。                    另外matleap-master的使用(2)中的坐标变化也很粗略,没有很正确的去使用变换。

      2)第三篇其实是我最早接触MATLAB做机器人的一个实例,可以在附加功能中下载学习。是很好的一篇可以学习机器人正逆运动学的例子,从中也可以接触到GUI的一些设计和MATLAB如何将CAD数据(PUMA 762三维模型)可视化的。其实我之前一直不明白正逆运动学是如何控制机器人的,都是在学习了这个例子才有所顿悟的。像MATLAB简单机器人视觉控制(仿真2)中的逆运动学代码也是直接来源于该例子,值得下载来看看学习!

      3)下载方式,打开附加功能选项,输入PUMA然后下载如下。

3、后记:最后回到用leap motion来控制PUMA762 机器人。方式编写一个按钮控件,点击时回调以下代码。

     控件代码:

LeapR = uicontrol(fig_1,'String','LeapMotion控制','callback',@Leap_Motion_button_press,...
    'Position',[530 5 100 20]);

    回调代码:

%%Leap Motion 控制
function Leap_Motion_button_press(h,dummy)
    while 1
  metaData =  matleap(1);                       %Get data
  if ~isempty(metaData.pointables)              %Check data
      x=metaData.pointables(1).position(1);
      y=metaData.pointables(1).position(2);
      z=metaData.pointables(1).position(3);
      x = round(x);                             %Rounding x,y,z
      y = round(y);
      z = round(z);
            Px=z;
            Py=x;
            Pz=y+500; 
    [theta1,theta2,theta3,theta4,theta5,theta6] = PumaIK(Px,Py,Pz,0,0,0,0,0,0);
    pumaANI(theta1,theta2,theta3-180,theta4,theta5,theta6,20,'y')  
    
  end              
    end
end

  效果:

  

猜你喜欢

转载自blog.csdn.net/weixin_39090239/article/details/82389854