MATLAB机器人工具箱RVC报错:Number of robot DOF must be >= the same number of 1s in the mask matrix

错误使用 SerialLink/ikine
Number of robot DOF must be >= the same number of 1s in the mask matrix
由于ikine原设定不能直接求解6自由度以下的机器人。
查robotics toolbox帮助文档,发现SerialLink.ikine的options里有一项’mask’ ,M mask vector (6 × 1) that correspond to translation in X, Y and Z, and rotation about X, Y and Z respectively。mask矩阵表针自由度的数量,若自由度为5,则构造一个[1 1 1 1 1 0]
若没有XYZ三个方向的rotation自由度,应构造一个mask矩阵[1 1 1 0 0 0]。

  • 13
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
通过引用和[2]可以得知,使用matlab工具箱的雅可比矩阵函数可以计算雅可比矩阵,并且与通过矢量积法计算得到的结果一致。最新版的机器人工具包可以以mltbx格式直接拖进matlab进行安装,安装成功后可以通过运行rvc_startup打开机器人工具包。 而关于雅可比矩阵的推导过程,通过引用可以了解到雅可比矩阵是联系末端操作空间速度与空间关节速度的枢扭。雅可比矩阵是一个m*n矩阵,其中m表示末端操作空间的自由度,一般为6个(即 x y z Wx Wy Wz),n为关节空间的关节数。对于一个6自由度的旋转关节机器人,可以使用6旋转关节机器人的史陶比尔TX90作为例子来推导雅可比矩阵,具体的推导过程可以参考中的图示。 如果想要在matlab中计算6自由度机器人的雅可比矩阵,可以参考提供的程序。首先根据D-H参数定义连杆,然后生成机器人,并最后完成雅可比矩阵的计算。具体的程序如下所示: L1 = Link('d', 0.68, 'a', 0.2, 'alpha', -pi/2); L2 = Link('d', 0, 'a', 0.089, 'alpha', 0); L3 = Link('d', 0, 'a', 0.150, 'alpha', -pi/2); L4 = Link('d', 0.88, 'a', 0, 'alpha', -pi/2); L5 = Link('d', 0, 'a', 0, 'alpha', pi/2); L6 = Link('d', 0.3, 'a', 0, 'alpha', 0); bot = SerialLink([L1 L2 L3 L4 L5 L6],'name','50kg','offset',[0 -pi/2 0 0 -pi/2 0]); syms a1; syms a2; syms a3; syms a4; syms a5; syms a6; IK=[a1,a2,a3,a4,a5,a6]; J=bot.jacob0(IK); j=char(vpa(J)) 其中,L1到L6分别表示机器人的六个连杆,bot为生成的机器人对象。通过输入关节角度a1到a6,可以通过bot.jacob0函数计算得到机器人的雅可比矩阵J,然后可以使用vpa函数将结果转换为字符形式。 综上所述,通过使用matlab工具箱和相应的程序,可以计算出UR5机器人的雅可比矩阵。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值