机器人逆运动学公式推导中常用的方程求解

688 阅读1分钟

求方程:sin(θ)=asin(\theta)=a

则有,cos(θ)=±1a2cos(\theta)=\pm \sqrt{1-a^{2}}

故,θ=atan2(sin(θ),cos(θ))=atan2(a,±1a2)\theta=atan2(sin(\theta), cos(\theta))=atan2(a, \pm \sqrt{1-a^{2}})


求方程:cos(θ)=bcos(\theta)=b

则有,sin(θ)=±1b2sin(\theta)=\pm \sqrt{1-b^{2}}

故,θ=atan2(sin(θ),cos(θ))=atan2(±1b2,b)\theta=atan2(sin(\theta), cos(\theta))=atan2(\pm \sqrt{1-b^{2}}, b)


求方程:acos(θ)+bsin(θ)=0a \cdot cos(\theta)+b \cdot sin(\theta)=0

令:a=a2+b2sin(α)sin(α)=aa2+b2,b=a2+b2cos(α)cos(α)=ba2+b2a=\sqrt{a^{2}+b^{2}}sin(\alpha) \Rightarrow sin(\alpha)=\frac{a}{\sqrt{a^{2}+b^{2}}}, b=\sqrt{a^{2}+b^{2}}cos(\alpha) \Rightarrow cos(\alpha)=\frac{b}{\sqrt{a^{2}+b^{2}}}

则有,a2+b2sin(α)cos(θ)+a2+b2cos(α)sin(θ)=0\sqrt{a^{2}+b^{2}}sin(\alpha)cos(\theta)+\sqrt{a^{2}+b^{2}}cos(\alpha)sin(\theta)=0

即,a2+b2sin(α+θ)=0sin(α+θ)=0a2+b2=0\sqrt{a^{2}+b^{2}}sin(\alpha+\theta)=0 \Rightarrow sin(\alpha+\theta)=\frac{0}{\sqrt{a^{2}+b^{2}}}=0

那么,cos(α+θ)=±10=±1cos(\alpha + \theta)=\pm \sqrt{1-0}=\pm 1

故,θ=atan2(sin(α+θ),cos(α+θ))atan2(sin(α),cos(α))=0atan2(a,b)=atan2(a,b)\theta=atan2(sin(\alpha+\theta), cos(\alpha+\theta))-atan2(sin(\alpha), cos(\alpha))=0-atan2(a, b)=-atan2(a, b)


求方程:acos(θ)+bsin(θ)=ca \cdot cos(\theta) + b \cdot sin(\theta) = c

令:a=a2+b2sin(α)sin(α)=aa2+b2,b=a2+b2cos(α)cos(α)=ba2+b2a=\sqrt{a^{2}+b^{2}}sin(\alpha) \Rightarrow sin(\alpha)=\frac{a}{\sqrt{a^{2}+b^{2}}}, b=\sqrt{a^{2}+b^{2}}cos(\alpha) \Rightarrow cos(\alpha)=\frac{b}{\sqrt{a^{2}+b^{2}}}

则有,a2+b2sin(α)cos(θ)+a2+b2cos(α)sin(θ)=c\sqrt{a^{2}+b^{2}}sin(\alpha)cos(\theta)+\sqrt{a^{2}+b^{2}}cos(\alpha)sin(\theta)=c

即,a2+b2sin(α+θ)=csin(α+θ)=ca2+b2\sqrt{a^{2}+b^{2}}sin(\alpha+\theta)=c \Rightarrow sin(\alpha+\theta)=\frac{c}{\sqrt{a^{2}+b^{2}}}

那么,cos(α+θ)=±a2+b2c2a2+b2cos(\alpha+\theta)=\pm \frac{\sqrt{a^{2}+b^{2}-c^{2}}}{\sqrt{a^{2}+b^{2}}}

故,θ=atan2(sin(α+θ),cos(α+θ))atan2(sin(α),cos(α))=atan2(c,±a2+b2c2)atan2(a,b)\theta= atan2(sin(\alpha+\theta), cos(\alpha+\theta)) - atan2(sin(\alpha), cos(\alpha))= atan2(c, \pm \sqrt{a^{2}+b^{2}-c^{2}}) - atan2(a, b)