[已答复] 【robotic toolbox】10.2版本 rne函数问题

[复制链接]
我的眼睛快350 发表于 2019-4-5 11:52:31
rne函数就是已知关节位置、角速度、角加速度来求各关节对应的力矩,但是调用函数的时候为什么总是出错呢——“带有下标的赋值维度不匹配”
明明我输入最简单的q、qd、qdd都是1*6的矩阵啊,求各位seniors路过的帮忙解答一下!
代码如下:

8 条回复


我的眼睛快350 发表于 2019-4-5 11:55:37
不知道为什么代码没传上,补充如下:
  1. startup_rvc
  2. L=20;
  3. %改进DH
  4. %   Link(DH,option):
  5. %   DH = [THETAi Di   Ai-1    ALPHAi-1  SIGMA],设置改进的DH参数
  6. L1 = Link([0     352    0       0        0],'modified');        % 注意,此处d和a的单位都是mm
  7. L2 = Link([0      0    70     -pi/2      0],'modified');
  8. L3 = Link([0      0    360      0        0],'modified');
  9. L4 = Link([0     380   0      -pi/2      0],'modified');
  10. L5 = Link([0      0     0      pi/2      0],'modified');
  11. L6 = Link([0      0     0     -pi/2      0],'modified');        % 注意,此处我没有补偿d6=65

  12. L1.m = 34.65536;  % 单位是kg,此处的数据用的宾大硕毕
  13. L2.m = 15.99459;  % 单位是kg,此处的数据用的宾大硕毕
  14. L3.m = 16;        % 单位是kg,此处的数据用的ABB IRB140,但结合SW测得的值适当减小了
  15. L4.m = 3;         % 单位是kg,此处的数据用的ABB IRB140结合SW测得的值减小了
  16. L5.m = 1.2;       % 单位是kg,此处的数据用的ABB IRB140结合SW测得的值减小了
  17. L6.m = 0.9;       % 单位是kg,此处的数据用的ABB IRB140结合SW测得的值减小了

  18. % 设置各连杆的质心坐标,注意,此处参考宾大硕毕,直接用截图中的SW测得的值,单位是mm
  19. L1.r = [ 27.87     43.12      -89.03 ]; % 单位是mm
  20. L2.r = [ 198.29    9.73       92.43];
  21. L3.r = [ -4.56     -79.96     -5.86];
  22. L4.r = [ 0    0           0];          % 感觉不准,干脆设置为0
  23. L5.r = [ 0    0           0];          % 感觉不准,干脆设置为0
  24. L6.r = [ 0    0           0];          % 感觉不准,干脆设置为0

  25. % 设置各连杆的惯性矩阵,注意,此处参考宾大、挪科大硕毕,注意单位为kg.m*m,且从左到右顺序为Ixx Iyy Izz Ixy Ixz Iyz
  26. L1.I = [0.512052539   0.464074688      0.462745526      0.1361335     0.51305020      0.70335556];% 此处参考宾大硕毕
  27. L2.I = [0.94817914    0.328604163      0.277463004     -0.3859712     0.37932017      -0.1088970];% 此处参考宾大硕毕
  28. L3.I = [0.500060915   0.75152670       0.515424754     -0.1863252     0.934875        -0.1520413];% 此处参考宾大硕毕
  29. L4.I = [0.005         0.011            0.016            0             0         0];% 此处参考ABB IRB140
  30. L5.I = [0.005         0.005            0.0006           0             0         0];% 此处参考ABB IRB140
  31. L6.I = [0             0                0                0             0         0];% 此处参考ABB IRB140



  32. % 建立机器人,并设定初始位姿
  33. robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','IRB140'); % 连接连杆,机器人取名

  34. q=[0 -pi/2 0 0 0 0]
  35. qd=[0 -pi/2 0 0 0 0]
  36. qdd=[0 -pi/2 0 0 0 0]
  37. size(qd)
  38. tau=robot.rne(q,qd,qdd)   % 求取在此过程中6个关节对应的力矩值
复制代码

我的眼睛快350 发表于 2019-4-5 11:59:06
可以看到提示错误如下图:

出错示意图

出错示意图

奇怪的是用size函数显示q是1*6的矩阵啊,完全不知道错在哪里

halleyhit 发表于 2019-4-5 12:36:48
你是自己装了什么东西吧,robot这是个包?

我的眼睛快350 发表于 2019-4-5 12:41:45
halleyhit 发表于 2019-4-5 12:36
你是自己装了什么东西吧,robot这是个包?

robot是前面6个连杆整合成的。。。:L

halleyhit 发表于 2019-4-5 12:50:25
我的眼睛快350 发表于 2019-4-5 12:41
robot是前面6个连杆整合成的。。。

囧。。。你是自己装了个robotic system toolbox啊。。。匿了匿了

Laisier 发表于 2020-3-23 18:39:35
楼主最后怎么解决的,我也遇到了同样的问题

carrot404 发表于 2021-2-20 17:15:56
我的眼睛快350 发表于 2019-4-5 11:59
可以看到提示错误如下图:
奇怪的是用size函数显示q是1*6的矩阵啊,完全不知道错在哪里
...

Hello! 我也遇到了相同的问题!我的解决方案可供参考:
问题在于rne函数需要用到动力学参数,其中一个参数Jm的默认值为[],导致无法计算(可查看L1~L6的值)。
解决办法:若不需要Jm参数,也需要对其设置。
添加L1.Jm=0;L2.Jm=0
希望对之后看到问题的同学有所帮助~

qwq321 发表于 2021-9-14 09:06:29
应该是你模型的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表