質量M の台車に質量mの単振子を取付けた次のようなカラクリを考える.
図11.2 台車型倒立振り子
制御力f(t)は台車のみに与えるとする.このカラクリを,倒立振り子(inverted
pendulum)という.ヒトやロボットの平衡維持機能の原型としてよく用いられる.解
析力学を使って,このカラクリの運動方程式を導いてみよう.
11.3.1 座標変換
このカラクリの姿勢は,台車の水平変位x[m]と,振り子の倒れ角θ[rad]で定ま るので,一般化座標はq= (x, θ)としよう.このとき,一般化座標qから台車と分銅 の直交座標を求める座標変換は,それぞれ,
xM = (x, G)T, xm= (x+lsinθ, lcosθ+S)T (11.13) となる.Gは台車の重心高さ,Sは支点の高さを表す定数である.
11.3.2 全運動エネルギーT
台車と分銅の速度は,直交座標を時間微分して,
˙
xM = ( ˙x,0)T, x˙m= ( ˙x+lθ˙cosθ,−lθ˙sinθ)T (11.14) となる.したがって,この系の全運動エネルギーは次のようになる.
T =M
2 |x˙M|2+m
2|x˙m|2=M+m
2 x˙2+mlx˙θ˙cosθ+ml2 2
θ˙2 (11.15) 11.3.3 全ポテンシャルU
この系のポテンシャルは重力によるもののみで,台車と分銅の高さから,全ポテン シャルは次のようになる.
U=M g G+mg(lcosθ+S) (11.16)
11.3. 自立ロボットへの応用 113
11.3.4 オイラー・ラグランジュ方程式
したがって,この系のラグランジュ関数は次のようになる.
L=T − U= M+m
2 x˙2+mlx˙θ˙cosθ+ml2 2
θ˙2−M g G−mg(lcosθ+S) (11.17) 2つある一般化座標のそれぞれについて,オイラー・ラグランジュ方程式,
x方向:d dt
(∂L
∂x˙ )−∂L
∂x =f(t) ※x方向の外力Fx=f(t) θ方向:d
dt (∂L
∂θ˙ )−∂L
∂θ = 0
(11.18)
を求める.必要な偏微分を計算すると,x方向については,
∂L
∂x˙ = (M+m) ˙x+mlθ˙cosθ, d dt
∂L
∂x˙ = (M+m)¨x+mlθ¨cosθ−mlθ˙2sinθ, ∂L
∂x = 0 θ方向については,
∂L
∂θ˙ =mlx˙cosθ+ml2θ,˙ d dt
∂L
∂θ˙ =ml2θ¨+ml¨xcosθ−mlx˙θ˙sinθ,
∂L
∂θ =−mlx˙θ˙sinθ+mglsinθ となる.代入して下線部の相殺を整理すると,
x方向:(M+m)¨x+ (mlcosθ)¨θ−mlθ˙2sinθ=f(t)
θ 方向:(mlcosθ)¨x+ (ml2)¨θ−mlgsinθ= 0 =⇒ cosθx¨+lθ¨−gsinθ= 0 (11.19) となり,図11.2の倒立振り子の運動方程式が得られる.台車の運動x(t)は振り子θ(t) に,振り子θ(t)の運動は台車x(t)に力を及ぼすので,この系の運動方程式は,x(t) とθ(t)が混ざり合った2連立微分方程式となる.
♣ 11 章の補足
● 例題11.1p111の解答例
この2節リンクの一般化座標q= (q1, q2)T (関節角)から,先端の直交座標x= (x, y)T への座標変換は,
x=
x y
=
l1sinq1+l2sin(q1+q2) l1cosq1+l2cos(q1+q2)
であることが分かる.これで算法11.2の(11.11)p111が用意できた.これと普通の力 F = (fx, fy)T = (P,0)T を,(11.12)に代入すると,各関節の所要トルクが得られる.
F1= ∂ x
∂q1
fx+ ∂ y
∂q1
fy=(
l1cosq1+l2cos(q1+q2)) P+ ∂ y
∂q1
0
=P l1cosq1+P l2cos(q1+q2), F2= ∂ x
∂q2
fx+ ∂ y
∂q2
fy=(
l2cos(q1+q2)) P+ ∂ y
∂q2
0
=P l2cos(q1+q2)//
12
ロボットシミュレーション
12.1 力学シミュレーション
運動方程式をコンピュータで解き,得られた解をアニメーション表示する一連の手 順を,力学シミュレーション(mechanical simulation)という.シミュレーション用 のソフトウェア環境やプログラムのことを,シミュレータ(simulator)という.
12.1.1 運動方程式の1階化
運動方程式は,加速度を含むので,数学的には2階の常微分方程式となる.ところ が,コンピュータは2階微分の処理が苦手なので,運動方程式を1階の常微分方程式 に見せかけるテクニックが必要になる.これを運動方程式の1階化という.
単振り子の運動方程式(11.9)p109を例にとる.(x=θ とした)
ml2x¨=−mglsinx (*)
この方程式の2階微分x¨を見かけ上消すため,1階微分を他の変数に置いたx˙=yを 連立する.
˙ x=y
ml2x¨=−mglsinx
これに,変換式x˙=yを微分したもの¨x= ˙yを代入すると,
˙ x=y
˙
y=−glsinx ※整理した
(**)
となり,見かけ上,2階微分が消せる.このような式変形,
2階1連立(*) ダミー変数
= ⇒
y= ˙x 1階2連立(**)
を,1階化という.1階化の前(*)と後(**)で変数の数こそ違うが,方程式としては 等価であり,同じ解を持つ1).
さらに,3階微分を含む場合...
x =f(¨x,x, x)˙ でも,2階微分までを別の変数x˙ =y,
¨
x=zに置けば,
˙ x=y
˙ y=z
˙
z=f(z, y, x)
(12.1)
のように1階化できる.同様の手順で変数を増やせば,一般に,
n階1連立 ダミー変数
= ⇒
1階n連立という1階化が可能である.変数が多いときは,通し番号の変数,
x1=x, x2= ˙x, x3= ¨x, · · ·, xn=dn−1x dtn−1 を使うのが便利である.
例題12.1 次の運動方程式を1階化せよ.
¨
x=F(x,x, θ,˙ θ)˙ θ¨=G(x,x, θ,˙ θ)˙
(12.2)
新しい変数は,x1=x,x2= ˙x,x3=θ,x4= ˙θ とせよ.
12.1.2 差分解法
1階化した運動方程式は,例えば2連立の場合,一般に次の形式で書ける.
dx
dt =f(x, y, t) dy
dt =g(x, y, t)
f, gは実スカラー値の3変数関数である.左辺を定義で書くと次式となる.
∆tlim→0
x(t+∆t)−x(t)
∆t =f(x, y, t) lim
∆t→0
y(t+∆t)−y(t)
∆t =g(x, y, t)
この時点で極限∆t→0を諦める解法のことを差分解法と呼ぶ2).つまり,
1)(*)から(**)が導いたが,(**)から(*)も導ける.ゆえに方程式(*)と方程式(**)は,数学的に 等価であり,同じ解を持つ.
2)コンピュータは無限を扱えないから,微分も扱えない.そこで差分で近似する.