跳到主要内容

東京大学 情報理工学系研究科 創造情報学専攻 2006年8月実施 筆記試験 第3問

Author​

itsuitsuki

Description​

出典:大学公式問題冊子の保存版。

日本語​

図 11 に示すように,33 点 O,S,E\mathrm{O, S, E} のそれぞれに回転軸をもつ 33 関節アームがある.点 O\mathrm{O} の関節は図の XYZXYZ 座標軸の ZZ 軸回りに回転する.点 S,E\mathrm{S, E} のそれぞれの関節は,面 OSEW\mathrm{OSEW} に垂直な軸方向に回転する.OS‾=l0,SE‾=l1,EW‾=l2\overline{\mathrm{OS}}=l_0, \overline{\mathrm{SE}}=l_1, \overline{\mathrm{EW}}=l_2 として,以下の問いに答えよ.

(1) 点 W\mathrm{W} の座標を W⃗(wx,wy,wz)\vec{W}(w_x, w_y, w_z) とし,33 つの関節 O,S,E\mathrm{O, S, E} の軸回りの回転角ベクトルを θ⃗(θ0,θ1,θ2)\vec{\theta}(\theta_0, \theta_1, \theta_2) として順運動学計算式 W⃗=f(θ⃗)\vec{W}=f(\vec{\theta}) を求めよ.

(2) 点 W\mathrm{W} の速度 V⃗(w˙x,w˙y,w˙z)\vec{V}(\dot{w}_x, \dot{w}_y, \dot{w}_z) を 33 つの関節 O,S,E\mathrm{O, S, E} の軸回りの角速度ベクトル Ω⃗(θ˙0,θ˙1,θ˙2)\vec{\Omega}(\dot{\theta}_0, \dot{\theta}_1, \dot{\theta}_2) で表せ.

(3) 逆運動学計算式 θ⃗=f−1(W⃗)\vec{\theta}=f^{-1}(\vec{W}) を求めよ.

(4) アームの先端 W\mathrm{W} に,力 F⃗(Fx,Fy,Fz)\vec{F}(F_x, F_y, F_z) が加わる場合に,アームの姿勢を保持するために,33 つの関節 O,S,E\mathrm{O, S, E} の各軸回りに必要な関節トルク τ⃗(τ0,τ1,τ2)\vec{\tau}(\tau_0, \tau_1, \tau_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 ZZ axis of XYZXYZ coordinates. The axes of joints S and E are vertical to the plane OSEW. Let OS‾=l0,SE‾=l1,EW‾=l2\overline{OS}=l_0, \overline{SE}=l_1, \overline{EW}=l_2. Answer the following questions.

(1) Show the equation of the forward kinematics of the arm W⃗=f(θ⃗)\vec{W}=f(\vec{\theta}), where W⃗(wx,wy,wz)\vec{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) 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) of the point W by the angular velocity Ω⃗(θ˙0,θ˙1,θ˙2)\vec{\Omega}(\dot{\theta}_0,\dot{\theta}_1,\dot{\theta}_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}).

(4) Assume a force F⃗(Fx,Fy,Fz)\vec{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) around the three joints O, S and E in order to keep the posture of the arm.


Figure 1

题目描述​

如图 1,有一条在 O,S,EO,S,E 三点各设转轴的三关节机械臂。关节 OO 绕图示 XYZXYZ 坐标系的 ZZ 轴旋转;关节 S,ES,E 的转轴均垂直于平面 OSEWOSEW。已知

OS‾=l0,SE‾=l1,EW‾=l2.\overline{OS}=l_0,\qquad \overline{SE}=l_1,\qquad \overline{EW}=l_2.

回答下列问题。

  1. 令末端点 WW 的位置向量为 W⃗=(wx,wy,wz)\vec W=(w_x,w_y,w_z),三个关节 O,S,EO,S,E 的转角向量为 θ⃗=(θ0,θ1,θ2)\vec\theta=(\theta_0,\theta_1,\theta_2)。求机械臂的正运动学公式 W⃗=f(θ⃗)\vec W=f(\vec\theta)。
  2. 用三个关节的角速度向量 Ω⃗=(θ˙0,θ˙1,θ˙2)\vec\Omega=(\dot\theta_0,\dot\theta_1,\dot\theta_2) 表示点 WW 的速度 V⃗=(w˙x,w˙y,w˙z)\vec V=(\dot w_x,\dot w_y,\dot w_z)。
  3. 求逆运动学公式 θ⃗=f−1(W⃗)\vec\theta=f^{-1}(\vec W)。
  4. 若末端 WW 受到力 F⃗=(Fx,Fy,Fz)\vec F=(F_x,F_y,F_z),求为了保持机械臂当前姿态,三个关节轴所需施加的关节力矩 τ⃗=(τ0,τ1,τ2)\vec\tau=(\tau_0,\tau_1,\tau_2)。

题目所用机械臂几何结构沿用原文图 1。

Kai​

図の向きに従い、θ0\theta_0 は XX 軸から水平半径方向への角、θ1\theta_1 は水平から SESE への仰角とする。θ2\theta_2 は EWEW から SESE の延長へ測った角なので、EWEW の仰角は θ1−θ2\theta_1-\theta_2 である。以下ではリンク長 l1,l2>0l_1,l_2>0 とし、関節の可動域制限・重力・摩擦は考えない。

(1)​

ϕ=θ1−θ2,r=l1cos⁡θ1+l2cos⁡ϕ,h=l1sin⁡θ1+l2sin⁡ϕ\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

とおけば、各リンクの水平・鉛直成分を加えることにより、

W⃗=(rcos⁡θ0rsin⁡θ0l0+h).\boxed{\vec W= \begin{pmatrix}r\cos\theta_0\\r\sin\theta_0\\l_0+h\end{pmatrix}}.

rr は符号をもつ水平成分であり、常に非負とは限らない。

(2)​

(1)を時間微分すると V⃗=JΩ⃗\vec V=J\vec\Omega となる。ただし、

J=∂W⃗∂θ⃗=(−rsin⁡θ0−hcos⁡θ0l2sin⁡ϕcos⁡θ0rcos⁡θ0−hsin⁡θ0l2sin⁡ϕsin⁡θ00r−l2cos⁡ϕ).\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}}.

例えば第3列の符号は ∂ϕ/∂θ2=−1\partial\phi/\partial\theta_2=-1 による。

(3)​

ρ=wx2+wy2\rho=\sqrt{w_x^2+w_y^2}, h=wz−l0h=w_z-l_0 とおく。余弦定理より、

D=ρ2+h2−l12−l222l1l2=cos⁡θ2.D=\frac{\rho^2+h^2-l_1^2-l_2^2}{2l_1l_2}=\cos\theta_2.

よって到達可能条件は ∣D∣≤1|D|\le1、すなわち

∣l1−l2∣≤ρ2+h2≤l1+l2|l_1-l_2|\le\sqrt{\rho^2+h^2}\le l_1+l_2

である。まず ρ>0\rho>0 の場合、σ∈{1,−1}\sigma\in\{1,-1\} に対して

r=σρ,θ0=atan2⁡(wy,wx)+1−σ2πr=\sigma\rho,\qquad \theta_0=\operatorname{atan2}(w_y,w_x)+\frac{1-\sigma}{2}\pi

を選ぶ。さらに肘の2解を

θ2=atan2⁡ ⁣(ε1−D2,D),ε∈{1,−1}\boxed{\theta_2=\operatorname{atan2}\!\left(\varepsilon\sqrt{1-D^2},D\right),\quad\varepsilon\in\{1,-1\}}

とし、

θ1=atan2⁡(h,r)+atan2⁡(l2sin⁡θ2,l1+l2cos⁡θ2)\boxed{\theta_1=\operatorname{atan2}(h,r)+ \operatorname{atan2}(l_2\sin\theta_2,l_1+l_2\cos\theta_2)}

を得る。これは

r+ih=eiθ1(l1+l2e−iθ2)r+ih=e^{i\theta_1}(l_1+l_2e^{-i\theta_2})

の偏角を取った式である。角度には 2π2\pi の整数倍を加えられ、実際の関節制限があれば適合する解を選ぶ。図のように r≥0r\ge0 の配置に限れば σ=1\sigma=1 を使う。

ρ=0\rho=0 では θ0\theta_0 は任意で、平面内の式に r=0r=0 を代入する。ただし ρ=h=0\rho=h=0 かつ l1=l2l_1=l_2 の完全折り畳みでは、θ2=π(mod2π)\theta_2=\pi\pmod{2\pi}、θ1,θ0\theta_1,\theta_0 は任意であり、atan2⁡(0,0)\operatorname{atan2}(0,0) を用いてはならない。したがって逆運動学は一般に一価の関数ではない。

(4)​

F⃗\vec 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

なので、保持のためにアクチュエータが与えるトルクは

τ⃗=−JTF⃗.\boxed{\vec\tau=-J^{\mathsf T}\vec F}.

Fr=Fxcos⁡θ0+Fysin⁡θ0F_r=F_x\cos\theta_0+F_y\sin\theta_0 とおくと、具体的には

τ0=r(Fxsin⁡θ0−Fycos⁡θ0),τ1=hFr−rFz,τ2=−l2sin⁡ϕ Fr+l2cos⁡ϕ Fz.\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}}

なお JTF⃗J^{\mathsf T}\vec F は外力が関節に与える一般化力であり、その反対符号が保持トルクである。アーム自身の重力も含めるなら、各リンクの質量・重心位置から求める重力補償トルクをさらに加える。