如何解决Sympy 潜艇没有价值
A(1) 是一个矩阵但不取值。它只是一个简单的正向运动学矩阵
from sympy import *
nlinks = 5
a = symbols('a1:%d' % nlinks)
alpha = symbols('alpha1:%d' % nlinks)
d = symbols('d1:%d' % nlinks)
theta = symbols('theta1:%d' % nlinks)
def A(index):
index = index-1 #decreasing for indexing
atemp =a[index]
alphatemp = alpha[index]
dtemp = d[index]
thetatemp = theta[index]
print(atemp,alphatemp,dtemp,thetatemp)
R = Matrix(
[[cos(thetatemp),-sin(thetatemp) * cos(alphatemp),sin(thetatemp) * cos(alphatemp),atemp * cos(thetatemp)],[sin(thetatemp),cos(thetatemp) * cos(alphatemp),-cos(thetatemp) * sin(alphatemp),atemp * sin(thetatemp)],[0,sin(alphatemp),cos(alphatemp),dtemp],1]])
return R
print(A(1))
A(1).subs((a1,0))
请提供任何解决方案
解决方法
In [38]: R=A(1)
In [39]: R
Out[39]:
⎡cos(θ₁) -sin(θ₁)⋅cos(α₁) sin(θ₁)⋅cos(α₁) a₁⋅cos(θ₁)⎤
⎢ ⎥
⎢sin(θ₁) cos(α₁)⋅cos(θ₁) -sin(α₁)⋅cos(θ₁) a₁⋅sin(θ₁)⎥
⎢ ⎥
⎢ 0 sin(α₁) cos(α₁) d₁ ⎥
⎢ ⎥
⎣ 0 0 0 1 ⎦
查看定义的变量
In [51]: a1
....
NameError: name 'a1' is not defined
In [52]: a
Out[52]: (a₁,a₂,a₃,a₄)
In [53]: theta
Out[53]: (θ₁,θ₂,θ₃,θ₄)
In [54]: alpha
Out[54]: (α₁,α₂,α₃,α₄)
subs
带有几个变量:
In [55]: R.subs({theta[0]:10,alpha[0]:pi})
Out[55]:
⎡cos(10) sin(10) -sin(10) a₁⋅cos(10)⎤
⎢ ⎥
⎢sin(10) -cos(10) 0 a₁⋅sin(10)⎥
⎢ ⎥
⎢ 0 0 -1 d₁ ⎥
⎢ ⎥
⎣ 0 0 0 1 ⎦
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。