0

因此,我尝试使用 Peter Corke 的机器人工具箱计算一些齐次变换矩阵,但是当我尝试使用“trchain”命令时:

syms a1 q1 q2

trchain('Rz(q1)Tz(a1)Ry(q2)',[q1 q2])

我得到以下输出:

Error using rotz
Expected GAMMA to be one of these types:

double

Instead its type was sym.

Error in sigdatatypes.validateAngle (line 22)
validateattributes(x,{'double'},{'finite','nonnan','nonempty','real'},...

Error in rotz (line 30)
sigdatatypes.validateAngle(gamma,'rotz','GAMMA',{'scalar'});

Error in trotz (line 36)
    T =    [rotz(t, varargin{:}) [0 0 0]'; 0 0 0 1];

Error in trchain (line 93)
                T = T * trotz(arg);

我在网上查看并遇到了一些事情(例如确保安装了 Phase Array Toolbox),但没有任何效果。

如果我尝试单独使用“rotz”而不是“trchain”命令,则会出现同样的问题。此外,“rotz”函数对于数字参数非常有效。

非常欢迎任何帮助 - 谢谢!

编辑——一个新的错误!

再次尝试代码后(即使前几天运行良好),我现在收到另一条消息:

Error using ROUNDN
Expected X to be one of these types:

single, double

Instead its type was sym.

Error in roundn (line 31)
validateattributes(x, {'single', 'double'}, {}, 'ROUNDN', 'X')

Error in rotz (line 18)
R = roundn(R, -15);

Error in trotz (line 36)
T =    [rotz(t, varargin{:}) [0 0 0]'; 0 0 0 1];

Error in trchain (line 93)
            T = T * trotz(arg);

Error in kinematics1 (line 3)
trchain('Rz(q1)Tz(a1)Ry(q2)',[q1 q2])

代码与上面完全相同。我使用的Matlab版本是R2018a,Robotics Toolbox版本是10.3。此外,未安装相控阵工具箱。

希望您能再次提供帮助...谢谢

4

1 回答 1

0

您说您已经安装了相控阵工具箱,但您不应该安装该产品,因为它还带来了与 Corke Toolbox 冲突的功能 rotx、roty、rotz。请参阅http://petercorke.com/wordpress/toolboxes/faq,其中标准误差是单位弧度和度数之间的不匹配,而符号工具箱显然会出现更多错误,请参阅那里的文字:

You are using functions with the same name as Robotics Toolbox for MATLAB functions 
but which are not from the Robotics Toolbox for MATLAB.  
The usual culprit is the MATLAB Phased Array System Toolbox.  To test this
>> which rotx
which shows you the filesystem path to rotx.m.  

我没有相控阵系统工具箱来真正检查,但我来自 Corke 的 rotz.m 有评论到第 30 行,而你的错误消息在那里有代码。函数 trchain 和 trotz 中的代码与您的错误中的代码相同。

所以卸载相控阵系统工具箱。如果这没有帮助:请说明您正在使用的 Robotics Toolbox 和 MATLAB 的版本。您的命令在我的 MATLAB 2016a 上运行良好,具有以下 Robotics Toolbox 版本:

Robotics, Vision & Control: (c) Peter Corke 1992-2011 http://www.petercorke.com
- Robotics Toolbox for MATLAB (release 10.2)
 - ARTE contributed code: 3D models for robot manipulators (D:\_ROB\software\rvctools\robot\data\ARTE)
 - pHRIWARE (release 1.1): pHRIWARE is Copyrighted by Bryan Moutrie (2013-2018) (c)

给出结果

ans =
[ cos(q1)*cos(q2), -sin(q1), cos(q1)*sin(q2),  0]
[ cos(q2)*sin(q1),  cos(q1), sin(q1)*sin(q2),  0]
[        -sin(q2),        0,         cos(q2), a1]
[               0,        0,               0,  1]
于 2018-11-06T21:27:51.947 回答