• 検索結果がありません。

自立ロボットへの応用

ドキュメント内 2017年版PDF (ページ 120-125)

質量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+˙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¨+¨−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 =fx,x, x)˙ でも,2階微分までを別の変数x˙ =y,

¨

x=zに置けば,











˙ x=y

˙ y=z

˙

z=f(z, y, x)

(12.1)

のように1階化できる.同様の手順で変数を増やせば,一般に,

n階1連立 ダミー変数

=

1n連立

という1階化が可能である.変数が多いときは,通し番号の変数,

x1=x, x2= ˙x, x3= ¨x, · · ·, xn=dn1x 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変数関数である.左辺を定義で書くと次式となる.

∆tlim0

x(t+∆t)−x(t)

∆t =f(x, y, t) lim

∆t0

y(t+∆t)−y(t)

∆t =g(x, y, t)

この時点で極限∆t→0を諦める解法のことを差分解法と呼ぶ2).つまり,

1)(*)から(**)が導いたが,(**)から(*)も導ける.ゆえに方程式(*)と方程式(**)は,数学的に 等価であり,同じ解を持つ.

2)コンピュータは無限を扱えないから,微分も扱えない.そこで差分で近似する.

ドキュメント内 2017年版PDF (ページ 120-125)