東京大学 情報理工学系研究科 創造情報学専攻 2006年8月実施 筆記試験 第3問
Author
itsuitsuki
Description
出典:大学公式問題冊子の保存版 。
日本語
図 1 1 1 に示すように,3 3 3 点 O , S , E \mathrm{O, S, E} O , S , E のそれぞれに回転軸をもつ 3 3 3 関節アームがある.点 O \mathrm{O} O の関節は図の X Y Z XYZ X Y Z 座標軸の Z Z Z 軸回りに回転する.点 S , E \mathrm{S, E} S , E のそれぞれの関節は,面 O S E W \mathrm{OSEW} OSEW に垂直な軸方向に回転する.O S ‾ = l 0 , S E ‾ = l 1 , E W ‾ = l 2 \overline{\mathrm{OS}}=l_0, \overline{\mathrm{SE}}=l_1, \overline{\mathrm{EW}}=l_2 OS = l 0 , SE = l 1 , EW = l 2 として,以下の問いに答えよ.
(1) 点 W \mathrm{W} W の座標を W ⃗ ( w x , w y , w z ) \vec{W}(w_x, w_y, w_z) W ( w x , w y , w z ) とし,3 3 3 つの関節 O , S , E \mathrm{O, S, E} O , S , E の軸回りの回転角ベクトルを θ ⃗ ( θ 0 , θ 1 , θ 2 ) \vec{\theta}(\theta_0, \theta_1, \theta_2) θ ( θ 0 , θ 1 , θ 2 ) として順運動学計算式 W ⃗ = f ( θ ⃗ ) \vec{W}=f(\vec{\theta}) W = f ( θ ) を求めよ.
(2) 点 W \mathrm{W} W の速度 V ⃗ ( w ˙ x , w ˙ y , w ˙ z ) \vec{V}(\dot{w}_x, \dot{w}_y, \dot{w}_z) V ( w ˙ x , w ˙ y , w ˙ z ) を 3 3 3 つの関節 O , S , E \mathrm{O, S, E} O , S , E の軸回りの角速度ベクトル Ω ⃗ ( θ ˙ 0 , θ ˙ 1 , θ ˙ 2 ) \vec{\Omega}(\dot{\theta}_0, \dot{\theta}_1, \dot{\theta}_2) Ω ( θ ˙ 0 , θ ˙ 1 , θ ˙ 2 ) で表せ.
(3) 逆運動学計算式 θ ⃗ = f − 1 ( W ⃗ ) \vec{\theta}=f^{-1}(\vec{W}) θ = f − 1 ( W ) を求めよ.
(4) アームの先端 W \mathrm{W} W に,力 F ⃗ ( F x , F y , F z ) \vec{F}(F_x, F_y, F_z) F ( F x , F y , F z ) が加わる場合に,アームの姿勢を保持するために,3 3 3 つの関節 O , S , E \mathrm{O, S, E} O , S , E の各軸回りに必要な関節トルク τ ⃗ ( τ 0 , τ 1 , τ 2 ) \vec{\tau}(\tau_0, \tau_1, \tau_2) τ ( τ 0 , τ 1 , τ 2 ) を求めよ.
図1
English
Figure 1 shows an arm which has three joints at O, S and E. The axis of the joint O rotates around Z Z Z axis of X Y Z XYZ X Y Z coordinates. The axes of joints S and E are vertical to the plane OSEW. Let O S ‾ = l 0 , S E ‾ = l 1 , E W ‾ = l 2 \overline{OS}=l_0, \overline{SE}=l_1, \overline{EW}=l_2 OS = l 0 , SE = l 1 , E W = l 2 . Answer the following questions.
(1) Show the equation of the forward kinematics of the arm W ⃗ = f ( θ ⃗ ) \vec{W}=f(\vec{\theta}) W = f ( θ ) , where W ⃗ ( w x , w y , w z ) \vec{W}(w_x,w_y,w_z) W ( w x , w y , w z ) is the position vector of W and θ ⃗ ( θ 0 , θ 1 , θ 2 ) \vec{\theta}(\theta_0,\theta_1,\theta_2) θ ( θ 0 , θ 1 , θ 2 ) is the vector of the rotation angles around the joints O, S and E.
(2) Describe the velocity V ⃗ ( w ˙ x , w ˙ y , w ˙ z ) \vec{V}(\dot{w}_x,\dot{w}_y,\dot{w}_z) V ( w ˙ x , w ˙ y , w ˙ z ) of the point W by the angular velocity Ω ⃗ ( θ ˙ 0 , θ ˙ 1 , θ ˙ 2 ) \vec{\Omega}(\dot{\theta}_0,\dot{\theta}_1,\dot{\theta}_2) Ω ( θ ˙ 0 , θ ˙ 1 , θ ˙ 2 ) of the three joints O, S and E.
(3) Show the equation of the inverse kinematics of the arm θ ⃗ = f − 1 ( W ⃗ ) \vec{\theta}=f^{-1}(\vec{W}) θ = f − 1 ( W ) .
(4) Assume a force F ⃗ ( F x , F y , F z ) \vec{F}(F_x,F_y,F_z) F ( F x , F y , F z ) is applied to the point W. Show the joint torque τ ⃗ ( τ 0 , τ 1 , τ 2 ) \vec{\tau}(\tau_0,\tau_1,\tau_2) τ ( τ 0 , τ 1 , τ 2 ) around the three joints O, S and E in order to keep the posture of the arm.
Figure 1
题目描述
如图 1,有一条在 O , S , E O,S,E O , S , E 三点各设转轴的三关节机械臂。关节 O O O 绕图示 X Y Z XYZ X Y Z 坐标系的 Z Z Z 轴旋转;关节 S , E S,E S , E 的转轴均垂直于平面 O S E W OSEW OSE W 。已知
O S ‾ = l 0 , S E ‾ = l 1 , E W ‾ = l 2 . \overline{OS}=l_0,\qquad \overline{SE}=l_1,\qquad \overline{EW}=l_2. OS = l 0 , SE = l 1 , E W = l 2 .
回答下列问题。
令末端点 W W W 的位置向量为 W ⃗ = ( w x , w y , w z ) \vec W=(w_x,w_y,w_z) W = ( w x , w y , w z ) ,三个关节 O , S , E O,S,E O , S , E 的转角向量为 θ ⃗ = ( θ 0 , θ 1 , θ 2 ) \vec\theta=(\theta_0,\theta_1,\theta_2) θ = ( θ 0 , θ 1 , θ 2 ) 。求机械臂的正运动学公式 W ⃗ = f ( θ ⃗ ) \vec W=f(\vec\theta) W = f ( θ ) 。
用三个关节的角速度向量 Ω ⃗ = ( θ ˙ 0 , θ ˙ 1 , θ ˙ 2 ) \vec\Omega=(\dot\theta_0,\dot\theta_1,\dot\theta_2) Ω = ( θ ˙ 0 , θ ˙ 1 , θ ˙ 2 ) 表示点 W W W 的速度 V ⃗ = ( w ˙ x , w ˙ y , w ˙ z ) \vec V=(\dot w_x,\dot w_y,\dot w_z) V = ( w ˙ x , w ˙ y , w ˙ z ) 。
求逆运动学公式 θ ⃗ = f − 1 ( W ⃗ ) \vec\theta=f^{-1}(\vec W) θ = f − 1 ( W ) 。
若末端 W W W 受到力 F ⃗ = ( F x , F y , F z ) \vec F=(F_x,F_y,F_z) F = ( F x , F y , F z ) ,求为了保持机械臂当前姿态,三个关节轴所需施加的关节力矩 τ ⃗ = ( τ 0 , τ 1 , τ 2 ) \vec\tau=(\tau_0,\tau_1,\tau_2) τ = ( τ 0 , τ 1 , τ 2 ) 。
题目所用机械臂几何结构沿用原文图 1。
Kai
図の向きに従い、θ 0 \theta_0 θ 0 は X X X 軸から水平半径方向への角、θ 1 \theta_1 θ 1 は水平から S E SE SE への仰角とする。θ 2 \theta_2 θ 2 は E W EW E W から S E SE SE の延長へ測った角なので、E W EW E W の仰角は θ 1 − θ 2 \theta_1-\theta_2 θ 1 − θ 2 である。以下ではリンク長 l 1 , l 2 > 0 l_1,l_2>0 l 1 , l 2 > 0 とし、関節の可動域制限・重力・摩擦は考えない。
(1)
ϕ = θ 1 − θ 2 , r = l 1 cos θ 1 + l 2 cos ϕ , h = l 1 sin θ 1 + l 2 sin ϕ \phi=\theta_1-\theta_2,\qquad
r=l_1\cos\theta_1+l_2\cos\phi,\qquad
h=l_1\sin\theta_1+l_2\sin\phi ϕ = θ 1 − θ 2 , r = l 1 cos θ 1 + l 2 cos ϕ , h = l 1 sin θ 1 + l 2 sin ϕ
とおけば、各リンクの水平・鉛直成分を加えることにより、
W ⃗ = ( r cos θ 0 r sin θ 0 l 0 + h ) . \boxed{\vec W=
\begin{pmatrix}r\cos\theta_0\\r\sin\theta_0\\l_0+h\end{pmatrix}}. W = r cos θ 0 r sin θ 0 l 0 + h .
r r r は符号をもつ水平成分であり、常に非負とは限らない。
(2)
(1)を時間微分すると V ⃗ = J Ω ⃗ \vec V=J\vec\Omega V = J Ω となる。ただし、
J = ∂ W ⃗ ∂ θ ⃗ = ( − r sin θ 0 − h cos θ 0 l 2 sin ϕ cos θ 0 r cos θ 0 − h sin θ 0 l 2 sin ϕ sin θ 0 0 r − l 2 cos ϕ ) . \boxed{J=\frac{\partial\vec W}{\partial\vec\theta}=
\begin{pmatrix}
-r\sin\theta_0&-h\cos\theta_0&l_2\sin\phi\cos\theta_0\\
r\cos\theta_0&-h\sin\theta_0&l_2\sin\phi\sin\theta_0\\
0&r&-l_2\cos\phi
\end{pmatrix}}. J = ∂ θ ∂ W = − r sin θ 0 r cos θ 0 0 − h cos θ 0 − h sin θ 0 r l 2 sin ϕ cos θ 0 l 2 sin ϕ sin θ 0 − l 2 cos ϕ .
例えば第3列の符号は ∂ ϕ / ∂ θ 2 = − 1 \partial\phi/\partial\theta_2=-1 ∂ ϕ / ∂ θ 2 = − 1 による。
(3)
ρ = w x 2 + w y 2 \rho=\sqrt{w_x^2+w_y^2} ρ = w x 2 + w y 2 , h = w z − l 0 h=w_z-l_0 h = w z − l 0 とおく。余弦定理より、
D = ρ 2 + h 2 − l 1 2 − l 2 2 2 l 1 l 2 = cos θ 2 . D=\frac{\rho^2+h^2-l_1^2-l_2^2}{2l_1l_2}=\cos\theta_2. D = 2 l 1 l 2 ρ 2 + h 2 − l 1 2 − l 2 2 = cos θ 2 .
よって到達可能条件は ∣ D ∣ ≤ 1 |D|\le1 ∣ D ∣ ≤ 1 、すなわち
∣ l 1 − l 2 ∣ ≤ ρ 2 + h 2 ≤ l 1 + l 2 |l_1-l_2|\le\sqrt{\rho^2+h^2}\le l_1+l_2 ∣ l 1 − l 2 ∣ ≤ ρ 2 + h 2 ≤ l 1 + l 2
である。まず ρ > 0 \rho>0 ρ > 0 の場合、σ ∈ { 1 , − 1 } \sigma\in\{1,-1\} σ ∈ { 1 , − 1 } に対して
r = σ ρ , θ 0 = atan2 ( w y , w x ) + 1 − σ 2 π r=\sigma\rho,\qquad
\theta_0=\operatorname{atan2}(w_y,w_x)+\frac{1-\sigma}{2}\pi r = σ ρ , θ 0 = atan2 ( w y , w x ) + 2 1 − σ π
を選ぶ。さらに肘の2解を
θ 2 = atan2 ( ε 1 − D 2 , D ) , ε ∈ { 1 , − 1 } \boxed{\theta_2=\operatorname{atan2}\!\left(\varepsilon\sqrt{1-D^2},D\right),\quad\varepsilon\in\{1,-1\}} θ 2 = atan2 ( ε 1 − D 2 , D ) , ε ∈ { 1 , − 1 }
とし、
θ 1 = atan2 ( h , r ) + atan2 ( l 2 sin θ 2 , l 1 + l 2 cos θ 2 ) \boxed{\theta_1=\operatorname{atan2}(h,r)+
\operatorname{atan2}(l_2\sin\theta_2,l_1+l_2\cos\theta_2)} θ 1 = atan2 ( h , r ) + atan2 ( l 2 sin θ 2 , l 1 + l 2 cos θ 2 )
を得る。これは
r + i h = e i θ 1 ( l 1 + l 2 e − i θ 2 ) r+ih=e^{i\theta_1}(l_1+l_2e^{-i\theta_2}) r + ih = e i θ 1 ( l 1 + l 2 e − i θ 2 )
の偏角を取った式である。角度には 2 π 2\pi 2 π の整数倍を加えられ、実際の関節制限があれば適合する解を選ぶ。図のように r ≥ 0 r\ge0 r ≥ 0 の配置に限れば σ = 1 \sigma=1 σ = 1 を使う。
ρ = 0 \rho=0 ρ = 0 では θ 0 \theta_0 θ 0 は任意で、平面内の式に r = 0 r=0 r = 0 を代入する。ただし ρ = h = 0 \rho=h=0 ρ = h = 0 かつ l 1 = l 2 l_1=l_2 l 1 = l 2 の完全折り畳みでは、θ 2 = π ( m o d 2 π ) \theta_2=\pi\pmod{2\pi} θ 2 = π ( mod 2 π ) 、θ 1 , θ 0 \theta_1,\theta_0 θ 1 , θ 0 は任意であり、atan2 ( 0 , 0 ) \operatorname{atan2}(0,0) atan2 ( 0 , 0 ) を用いてはならない。したがって逆運動学は一般に一価の関数ではない。
(4)
F ⃗ \vec F F は「アームが外部から受ける力」である。任意の仮想変位 δ θ ⃗ \delta\vec\theta δ θ に対する静的つり合いは
τ ⃗ T δ θ ⃗ + F ⃗ T δ W ⃗ = 0 , δ W ⃗ = J δ θ ⃗ \vec\tau^{\mathsf T}\delta\vec\theta+
\vec F^{\mathsf T}\delta\vec W=0,\qquad
\delta\vec W=J\delta\vec\theta τ T δ θ + F T δ W = 0 , δ W = J δ θ
なので、保持のためにアクチュエータが与えるトルクは
τ ⃗ = − J T F ⃗ . \boxed{\vec\tau=-J^{\mathsf T}\vec F}. τ = − J T F .
F r = F x cos θ 0 + F y sin θ 0 F_r=F_x\cos\theta_0+F_y\sin\theta_0 F r = F x cos θ 0 + F y sin θ 0 とおくと、具体的には
τ 0 = r ( F x sin θ 0 − F y cos θ 0 ) , τ 1 = h F r − r F z , τ 2 = − l 2 sin ϕ F r + l 2 cos ϕ F z . \boxed{\begin{aligned}
\tau_0&=r(F_x\sin\theta_0-F_y\cos\theta_0),\\
\tau_1&=hF_r-rF_z,\\
\tau_2&=-l_2\sin\phi\,F_r+l_2\cos\phi\,F_z.
\end{aligned}} τ 0 τ 1 τ 2 = r ( F x sin θ 0 − F y cos θ 0 ) , = h F r − r F z , = − l 2 sin ϕ F r + l 2 cos ϕ F z .
なお J T F ⃗ J^{\mathsf T}\vec F J T F は外力が関節に与える一般化力であり、その反対符号が保持トルクである。アーム自身の重力も含めるなら、各リンクの質量・重心位置から求める重力補償トルクをさらに加える。