Peter Corke 的机器人工具箱中的 SE2 for MATLAB 失败
SE2 from Peter Corke's Robotics Toolbox for MATLAB failing
我试图按照 Peter Corke 的 Robotics, Vision and Control 和 运行 中的 MATLAB 示例出错。
T1
是一个 t运行sformation 矩阵,从类似的东西获得:
T1 = se2(1,2,30*pi/180)
点 P
由:
给出
P = [3; 2];
我注意到的第一件事是 se2
在 Corke 的机器人工具箱中没有被识别,但是 SE2
被识别了。但是,真正的错误发生在我尝试按照示例进行操作时:
P1 = inv(T1) * [P; 1]
我收到错误:
Error using * (line 323)
LHS should be matrix with 2 rows
我明白(我认为)SE2
产生的任何东西都是矩阵以外的某种结构,但是由于整本书的例子都是基于 SE2
生成的对象,就像矩阵,我有点卡住了。
我的MATLAB版本是R2018b。
这里有没有人idea/solutions,或者这是一个相当晦涩的问题?
在 post 之后不久,我在 Google forum:
中找到了这个解决方案
P1 = double(inv(T1)) * [P; 1]
我会post这里的答案,以防对某人有用。
您应该通过编写将 se2 对象转换为矩阵
m=T(T1)
然后你使用你的矩阵作为 m 和 T1
我试图按照 Peter Corke 的 Robotics, Vision and Control 和 运行 中的 MATLAB 示例出错。
T1
是一个 t运行sformation 矩阵,从类似的东西获得:
T1 = se2(1,2,30*pi/180)
点 P
由:
P = [3; 2];
我注意到的第一件事是 se2
在 Corke 的机器人工具箱中没有被识别,但是 SE2
被识别了。但是,真正的错误发生在我尝试按照示例进行操作时:
P1 = inv(T1) * [P; 1]
我收到错误:
Error using * (line 323)
LHS should be matrix with 2 rows
我明白(我认为)SE2
产生的任何东西都是矩阵以外的某种结构,但是由于整本书的例子都是基于 SE2
生成的对象,就像矩阵,我有点卡住了。
我的MATLAB版本是R2018b。
这里有没有人idea/solutions,或者这是一个相当晦涩的问题?
在 post 之后不久,我在 Google forum:
中找到了这个解决方案P1 = double(inv(T1)) * [P; 1]
我会post这里的答案,以防对某人有用。
您应该通过编写将 se2 对象转换为矩阵 m=T(T1) 然后你使用你的矩阵作为 m 和 T1