1152

日本ロボット学会誌

Vol. 16

No. 8, pp.1152〜1159, 1998

学術・技術論文

構造変化を伴うリンク系の動力学計算法とヒューマンフィギュアの運動計算
中

村

仁 彦31

山

克31

根

永

嶋 史

朗32

Dynamics Computation of Structure{Varying Kinematic Chains
and Its Application to Human Figures
31 , Katsu Yamane31 and Fumio Nagashima32

Yoshihiko Nakamura

This paper discusses the dynamics computation of structure{varying kinematic chains which imply mechanical linksystems whose structure may change from open kinematic chain to closed one and vice versa. The proposed algorithm
can handle and compute dynamics and motions of any rigid link systems in a seamless manner without switchingamong algorithms. The computation is developed on the foundation of the dynamics computation algorithms developed in robotics, which is inherently superior in eciency due to explicit use of the generalized coordinates tothose used in the general purpose motion analysis software. The structure{varying kinematic chains are commonly
found in computing human and animal motions. The established computation will provide the general algorithmic
foundation of the computation of motion and control of humanoid robots and CG human gures.

Key Words : Structure{Varying Kinematic Chains, Closed Kinematic Chains, Human Figures, Humanoid Robots,
Dynamics Computation

1.

は

じ め

ションキャプチャデータからのずれを計算し，自然な運動の生に成を試みている．解析には動力学を用いているものの，動きのヒューマノイド ロボットの研究の進展に伴い，その制御，行

修正は運動学的なもので，力学シミュレーションは行っていな

Wooten ら [2] は，人間の高飛び込みにおける運動を

動生成，シミュレーションなどを効率的に行うことが求められCG ）の分野にい．またてきている．またコンピュータグラフィクス（

シミュレーションし，実際の人間の運動に近い結果を得ている．

おいても，マルチメデ ィア技術の発展とともにダ イナミックな

しかし，地面や他の人間との干渉は考慮していないため，多様動画を簡単に制作できる環境が望まれている．これらに共通しな運動や複数の人間がかかわる運動に応用することは難しい．

て必要とされるのは，動力学的な整合性を考慮して様々な運動

本論文では，ヒューマノイド ロボットやCG 上の人間などをを作り出す技術である．例えば，ヒューマノイド ロボットの歩リンク機構として表現した数理モデルをヒューマンフィギュア

行では動力学を考慮した制御は安定歩行に重要なだけでなく，と呼び，力学的な運動生成の基礎となる運動計算法を扱う．従アクチュエータの性能を効率的に利用することでエネルギー

来から研究されてきたリンク系の運動計算法は，比較的単純で消費の低減や軽量化に貢献する．また人間が見て自然な動作

一定の構造を持った系を主な対象としていた．それらと比較すを生成する上でも動力学の計算は必要である．一方，ると，人間などの生物を含む力学系の大きな特徴として以下のモーションキャプチャで得られる限られた運動データをもとにようなものが挙げられる．

CG ではストーリーに応じて多様な運動を生成することが求められるが，

 構造可変：Fig. 1 のように，人の「物をつかむ」，「歩く」

モーションキャプチャデータを単純に運動学的に変更するだけでは不自然な動きになってしまう．ここでも動力学を考慮した運動生成が求められる．
動力学を用いた人間の運動生成についてはいくつかの研究がKo ら [1] は，歩行運動において逆動力学計算により安ある．

定性を解析し，外力が働くときや重い荷物を持ったときのモー
原稿受付 1998 年 5 月 13 日
31 東京大学大学院工学系研究科機械情報工学専攻
32 株式会社富士通研究所
31 Department of Mechano{Informatics, University of Tokyo
32 Fujitsu Laboratories Ltd.

JRSJ Vol. 16 No. 8

Fig. 1|124|

Example of structure changing
Nov., 1998

1153

構造変化を伴うリンク系の動力学計算法とヒューマンフィギュアの運動計算などの運動では開リンクから閉リンクへ，さらに再び開リ
ンクへというようにリンク構造が変化する．

 閉リンク機構を含む多自由度機構：人間の数理モデルは，手足の指を除いたとしても40 以上の自由度を持つ．また，

両手で物をつかんだり，別の人間と手をつないだりした場
合には複雑な閉リンク機構にもなり得る．
したがって，ヒューマンフィギュアの運動計算法は構造可変性を容易に取り扱うことができ，かつ計算量も可能な限り少ないことが望ましい．

 O を，以下の 2 式により NA 個の駆動関節 A 2 RNA の駆動トルク  A 2 RNA に変換する．
G = WTO（1 ）TG = S A（2 ）ここで，閉リンク機構全体の自由度を NF とし， G 2 RNF
を閉リンク機構の状態を表す一般化座標， G 2 RNF をそれに対応する一般化力とすれば，W 2 RNO 2NF ，S 2 RNA 2NF
は以下に示すヤコビアンである．

W = @@OG
S = @@GA

閉リンク機構の効率的な動力学計算の研究は従来から行われている．現在広く利用されている汎用的な動力学解析ソフト
ウェアでは，全リンクの位置・姿勢を一般化座標にとり，これと関節などに応じた拘束条件を組み合わせて運動方程式を求めている[3]．このような方法は汎用性が高く任意の機構や関節に対応できる反面，扱う変数が非常に多く膨大な計算量が必要で，複雑な機構の解析には長い時間がかかるという欠点がある．
動力学計算の効率化のために，閉ループを仮想的に切断して木構造開 リンク機構に変換することが考えられている．遠山

3

（ ）

4

（ ）

具体的な計算手順としては，まず仮想開リンク機構の逆動力

 O を計算し，式（1 ）により一般化力  G に変換する．そして，式（ 2 ）を解いて駆動関節トルク  A を計

学計算を行って算する．機構に駆動冗長性がある場合は，ここで駆動トルクの[8]．

[4] は，前記の方法をもとにした漸化式形式の運動方程式を応用した効率的な順動力学計算法を提案している．一方，中村 [5]配分を最適化することができる

は駆動関節の一般化座標に関するヤコビアンを用いる逆動力学

これらが定数行列になることがあり，その物理的な意味から直計算法を提案している．このアルゴリズムは開リンク機構の効観的に得ることができる．しかし，一般的な閉リンク機構に対ら

パラレルメカニズムでは，機構の並列性を利用してW とSを計算することができる．また，平面機構など単純な機構では

W ，S の計算方法がこれまで知られておらず，式（1 ），率的な逆動力学計算法を利用し，効率的に計算することができしてはるが，実際の計算では機構の特殊性に頼る部分があり，一般的

式（ ）による逆動力学計算法を適用することができなかった．
2. 2
一般的閉リンク機構の， 計算法

な閉リンク機構に適用するのは困難である．

2

構造可変性の取り扱いを容易にするためには，リンク機構の

W S
W ，S 計算法を以下に示

任意な閉リンク機構に適用可能な表現法が重要である．リンク機構の表現には行列を用いること

す．閉ループを一つの関節で仮想的に切断することを考える．

が提案されている

このとき，閉ループは[3] [6]．この方法は，一つの機構モデルのな

2 本のリンク列に分けられる．切断点のかでの構造変化の扱いは比較的容易だが，複数の機構が結合す

速度・角速度が一致することから，次式を満たす

る場合には行列のマージなどの作業が必要である．また，計算が計算できる．

のたびに隣り合ったリンクや閉ループを探索しなければならな
い．現状では，構造変化を考慮した機構表現法の研究は見当たらず，構造の変化に伴う処理はオーバーヘッド となる．
本論文では，まず中村[5] によるパラレルメカニズムの逆動力学計算法を任意の閉リンク機構に適用する方法について述べる．次に，ポインタによるリンク構造表現法と仮想リンクによる閉リンク機構表現法を導入する．そして，あらゆるリンク結節角に対する手先位置のヤコビアンと同様の手順で計算できる．

2

一般的な閉リンク機構の動力学

J C の 6NL 本の行のうち独立なものが m 本あるとし，それJ Cm 2 Rm2NJ を作ると，すべての閉ループによらを集めて

閉リンク機構をいくつかの関節で仮想的に切断した仮想開リンク機構を考える．この開リンク機構が NO 個の関節61

レーションの例を示す．

パラレルメカニズムの逆動力学 [5]J Li (i = 1; 2; . . . ; NL) を
J C 2 R NL 2NJ を作る．
0
JL 1
B JL CJ C =4 B
（6 ）
C
B
.. C
@
. A
J LNL

機構中のループ数を NL として，縦に並べて易に取り扱う方法を示す．最後に，構造変化を伴う力学シミュ

2. 1

6

J Li_ J = O（5 ）ここで NJ は全関節数， J は全関節角である．式（ 5 ）は閉
ループの拘束を表す．J Li の成分は，開リンク機構における関合を閉ループの生成と考えることで，構造変化を統一的かつ容2.

J Li 2 R 2NJ

O 2 RNO

る m 個の独立な拘束条件が得られる．

を持っているとして，そのすべてが駆動されていると仮定し，

J Cm_ J = O

7（ ）実際の閉リンク機構に要求されたのとまったく同じ運動を行わせるのに必要な駆動トルク

NJ 個の関節に対し m 個の拘束条件があるので，機構全体の
 O 2 RNO を計算する．このとき， 自由度
NF は次式で求められる．

Newton{Euler 法 [7] などの開リンク機構の効率的な逆動力学
計算法を適用する．
日本ロボット学会誌 16 巻 8 号

|125|

NF

= NJ 0 m

8（ ）1998 年 11 月

1154

中 村 仁 彦山 根

J Cm から m 本の独立な列ベクトルを集めて J S 2 Rm2m を作り，残りを集めて J G 2 Rm2 NJ 0m とする． J の成分は()

次式を満たすようにあらかじめ順序づけられているとしても一般性を失わない．


_S 
1
0

_
J CmJ = J S J G _ G = O

2. 4 節で述べる順動力学計算で得られた一般化座標の加速度式（

9

J の成分を集めたベクトルである．式（9 ）より
J S _ S = 0J G_ G（ 10 ）となる．定義より J S は正則行列なので，式（ 10 ）は
_ S = H _ G
（ 11 ）と変形できる．ここで H 2 Rm2NF は次式で定義される  Sの  G に関するヤコビアンである．
H =4 @@GS = 0J 0S J G（ 12 ）
111 ）により _ G から全関節の運動 _ J が決定される．このG を一般化座標と定めることができる．
W ，S は H から以下のように作られる．
に方法を

ことから

Fig. 2

 W の第 i 行：O の i 番目の関節が一般化座標でなく，S

H の第 j 行とする．O の i 番


目の関節が一般化座標で， G の j 番目にあたるときは j10 の単位行ベクトルとする．

 S の第 i 行：A の i 番目の関節について W と同様の操となる．ここでである．式（J C をもとに，機構全体の自由度やトルク変換に必要なヤコビ
アン W ，S を一般の閉リンク機構に対して計算することができる．これにより，文献[5] の効率的な逆動力学計算アルゴリ

ズムを一般の閉リンク機構に適用することが可能となった．
2. 3

式（

加速度の関係式11 ）を時間微分すると次のような加速度の関係式が得られる．

S = H G + H_ _ G

（

13 ）

（

14 ）

（

15 ）

J 0S J S = E より
1ddt

(J 0S )J S + J 0S J_ S = O
1110 ），式（ 15 ）を用いて式（ 14 ）を変形し，整理すると次式が得られる．

H_ _ G = 0J 0S (J_ S _ S + J_ G _ G )（ 16 ）= 0J 0S J_ Cm _ J
J_ Cm _ J は，J_ C _ J から J Cm に対応する成分を取り出すことによって得られる．また J_ C _ J の各閉ループに対応する成1

1

分は，シリアルリンクマニピュレータの計算法[9] と同様に求

められる．
2. 4

一般的な閉リンク機構の順動力学

開リンク機構の順動力学計算法[3][7] はいくつか提案されているが，閉リンク機構に応用するのは困難である．そのなかで，( )[5]．本節では，閉リンク機構「単位ベクトル法」は計算量が O N 2 と大きいものの，比較的容易に閉リンク機構へ拡張できるに単位ベクトル法を適用した順動力学計算法について述べる．
閉リンク機構の運動方程式は，開リンク機構と同様に以下の作を行う．
以上のように，開リンク機構のヤコビアンと同様に求められる

1

dt

図示する．

番目の要素が ，それ以外は12 ）から，on
H_ _ G = 0 d (J 0S )J G + J 0S J_ G _ G
1

するの j 番目にあたるときは

永 嶋 史 朗G からそれ以外の関節の加速度 S を求めるときにこの計算
G は与えられるので，ここでは式を行う必要がある．H と __H（ 13 ）の右辺第 2 項
G の計算方法を示す．

（ ）ここで S 2 Rm ， G 2 RNJ 0m はそれぞれ J S ，J G に対応

式（

克ように書ける．

 G = A(G )G + b(G ; _ G )（ 17 ）
ここで  G 2 RNF は入力一般化力，A 2 RNF 2NF は慣性行列，b 2 RNF は速度依存項や重力項をまとめたものである．
開リンク機構の場合は，全関節角が一般化座標になり，関節トルクが入力一般化力となる．したがって式（17 ）から全関節の加速度が直接得られる．一方，閉リンク機構では駆動トルクと一般化力とはベクトルの次元さえも異なることがある．駆動ト
ルクを一般化力に変換し，一般化座標の加速度を求め，これから全関節の加速度を計算するという手順になる．
具体的な計算手順をまとめる．ここでは

 A を駆動トルクとして与える．

1 
2
 G に変換する．
2  = O として 2.1，2.2 節の手順で逆動力学計算を行い，（ ） A を式（ ）により一般化力（ ）G G を b とする．このとき，一般化座標
S は，G = O を式（13 ）に代入す_ _ G としてることにより，2.3 節で計算手順が示された H
得られた一般化力

でない関節の加速度与えられることが分かる．

Fig. 2JRSJ Vol. 16 No. 8

Forming

W from H

3 = 1; 2; . . . ; NF について，以下の計算を行う．
（ a ）第 i 要素が 1 ，その 他の 要素 が 0 の単位 ベ クト ル

（ ）i

|126|

Nov., 1998

1155

構造変化を伴うリンク系の動力学計算法とヒューマンフィギュアの運動計算

Fig. 3Base{free kinematic chain

Fig. 4Three pointers to describe open{link structure

ei 2 RNF を用いて G = ei とする．他の関節の加S は式（ 13 ）にこれを代入して求める．
速度 b 2. 1，2. 2 節の手順で逆動力学計算を行い，得られた（ ） G を f i とする．
（ c ）次式で計算される ai を慣性行列 A の第 i 列とする．
ai = f i 0 b（ 18 ）（ 4 ）(1) の  G ，(2) の b ，(3) の A を用いて，次式により一般
一般化力

Fig. 5

Describing closed loop by virtual link

Fig. 6

Example of describing link structure

化座標の加速度を計算する．
（ 19 ）
G = A0 ( G 0 b)
S を計算することにより，全関節の加（ 5 ）式（ 13 ）を用いて _ _ G は (2) で計算したものを速度が得られる．ここで H
1使う．
浮遊リンク機構の順動力学

2. 5

浮遊リンク系は，Fig. 3 のようにベースと慣性座標系の間に

6 自由度の受動対偶を考えることで，ベースが固定されたリンク系と同様に順動力学を計算することができる．このとき，6自由度の自由関節を六つの 1 自由度関節に分解せず，1 個の関節として扱うと動力学を効率的に計算することができる．

Brother と Child に対して再帰呼び出しを行った後，自分に関する処理を行う．Parent ポ イン
逆方向計算を行う関数では，

3.

リンク機構の表現

タは，親リンクのデータを参照するときに利用する．このようポインタによる開リンク連鎖表現

3. 1

本研究で採用した動力学計算アルゴ リズムは，リンク列を
ベースリンクからエンド リンクへ（順方向 ），およびエンド リに，ポインタによる機構表現は漸化式形式で表現されたアルゴ
リズムを
3. 2

ンクからベースリンクへ（逆方向）たどっていく漸化式形式で

C++でインプ リメントするのに適している．

閉リンク連鎖表現

表現されている．このような計算を効率的に行うために，開リ

閉リンク機構ではリンク列が閉じているため，リンクの親子

ンク連鎖を他のリンクへの矢印となる「ポインタ」によって表関係が決められない．そこで，Fig. 5 のように閉ループを仮想現する．この方法では関節で接続されているリンクを探索する

的に切断して開リンク機構と同様に記述し，切断関節の両側に必要がない．また，リンク構造を表現するのに必要なデータのあったリンクのいずれかを「実体（量はリンク数に比例し，多数のリンクが存在する系でもデータ

想（の量は比較的少ない．さらに，このポインタ表現はンクとして追加する．ただし，仮想リンクは運動学パラメータ

C++を用

Real ）リンク」とする「仮Virtual ）リンク」を作って実体リンクのない側のエンド リ
0 とする．このとき，仮いたプログラムの構造とも一致しており，効率的で実装が容易のみを持ち，力学パラメータはすべてである．

想リンクと実体リンクを対応付けるために，仮想リンクから実はじめに，各 リンクに対してベース リンク側につながっている「親（Parent ）リンク」を指定し，それを指す「親ポイン体リンクを指す「実体ポインタ」を導入する．
以上\Parent", \Child", \Brother", \Real" の 4 種類のポタ」を定める．次に，エンド リンク側につながっているリンク

インタを定義することによって，閉リンク機構を含む任意のリを「子（Child ）リンク」とし，それを指す「子ポインタ」を定

ンク機構を，動力学計算に便利な形で記述することができる．

める．エンド リンク側につながっているリンクが複数ある場合

閉リンク機構を記述した例を Fig. 6 に示す．この方法の特徴には，そのうちの一つを「子リンク」とし，残りはその「兄弟をまとめると以下のようになる．

（

Brother ）リンク」として，「 兄弟ポインタ」によって線形リス

ト状に追加していく．ポインタの付け方を Fig. 4 にまとめる．
順方向計算を行う関数では，自分に関する処理が終了した後，Brother と Child に対して同じ関数を再帰的に呼び出す．また，
日本ロボット学会誌 16 巻 8 号|127| リンクの接続関係が明確で，漸化式形式の動力学計算のイ
ンプ リメントが容易である．

 閉ループと仮想リンクが 1 対 1 に対応し，閉リンクの判別が容易である．
1998 年 11 月

1156

中 村 仁 彦山 根克

永 嶋 史 朗

切断点，すなわち仮想リンクとその親リンクとの間の関節

2 リンクからなる 1 関節の浮遊リンク系の Link1 と第 2 のリンク系である地面（ Ground ）が結合し，新しい関節ができる場合に一致させることで，動力学計算時のリンクのインデックである．このとき，結合後の構造が物理的には開リンク機構で

 動力学計算における仮想切断点を閉リンク連鎖表現の仮想あることを考慮すると，結合前のデータを Fig. 10 のように変スが容易になる．

Parent ポインタ
\Rotate"，\Free" はそれぞれ回転関節，自由関節を表す．しかし，この変更は Base と Link1 の親子関係の逆転を伴い，隣り合う関節の位置関係を表す Denavit{Hartenberg 閉リンク機構の表現は一意ではない．

に付記した

構造可変リンク系

4.
4. 1

更するのが妥当であると考えられる．ここで，構造可変リンク系とは構造可変リンク系とは，運動の途中においてリンクとリンク

パラメータや動力学パラメータを変更しなければならない．こが結合したり，関節が切断されてリンクが分離したりする物理

れは原理的に困難な問題ではないが，リンク構造が頻繁に変化

的なリンク連鎖の変化が許されるリンク系をいう．例えば，手するヒューマンフィギュアの歩行動作などのシミュレーション

で鉄棒をつかむ運動では手と鉄棒の間に新しい関節が生じる．

では計算のオーバーヘッド となる．

また2 足歩行においては，左右の足が地面との結合／分離を繰

そこで，結合により閉リンク機構ができる場合とまったく同

Base と Ground の間の 6 自由度対偶

り返していると考えることができる．このように人間や動物の様に仮想リンクを作り，運動では構造変化が頻繁に発生するため，ヒューマンフィギュを閉ループ内に含む閉 リンク機構とみなす．このよ うな閉 リ

Fig. 9 の結合アの運動計算では構造変化をなるべく容易に取り扱うことがでンク機構を擬似閉リンク機構と呼ぶことにする．

きる必要がある．本章では，構造変化を自動的に扱うための手後の構造に対する擬似閉リンク機構とそのリンク構造表現を法を提案する．

Fig. 11 に示す．

4. 2

リンクの結合擬似閉リンク機構を考えて構造変化を処理する手法は以下の構造変化のうち，まず二つのリンクが結合する場合を考える．

ような特徴を持つ．

 リンクの親子関係を逆転させる必要がない．

Fig. 7 のように，リンクの結合により閉ループが生成される場

合は，仮想リンクを新たに作り，データに追加すればよい．処理の手順は以下のようになる．

1 Link4 の仮想リンク Link4v を生成する．
2 Link4v を Link3 の子リンクとする．

（ ）
（ ）

リンク構造表現の変化を Fig. 8 に示す．
これらの処理は，結合すべきリンクさえ指定すればプログラ
ムで自動的に行うことができるので，計算途中にオンラインでリンク結合を処理することが可能である．
Fig. 9 のように浮遊リンク系が他のリンク系と結合する場合

Fig. 9 は Base と Link1 というFig. 9にはさらに考慮が必要となる．

Fig. 7

Example of link connection
Fig. 10

Fig. 8Link structure description before and after connection

JRSJ Vol. 16 No. 8

Open chain generated by link connection|128|

Apparently possible change of link structure description

Fig. 11

Pseudo-closed-link structure
Nov., 1998

1157

構造変化を伴うリンク系の動力学計算法とヒューマンフィギュアの運動計算

 リンク結合後の構造が開リンクであるか閉リンクであるかを問わず，同じ手順で処理することができる．

であり，

E は 6 行 6 列の単位行列である．
6

なお，結合した二つの リンクが固定される場合，すなわち閉リンクとして計算した場合には計算量が多くなる．しか= 0 の場合は，式（ 22 ）に _ n は現れず，式（ 23 ）は不要に）25 ）において C = O としたもなる．そのときの解は式（ 24（

し，自由関節は一つののとなる．

 結合後の構造が物理的に開リンク機構となる場合は，擬似6 自由度対偶として扱うことができ
1 自由度対偶 6 個の計算p

一つの機構のなかでリンクの結合が発生する場合は，一般化るため，計算量の増加分は通常の座標と慣性行列は一致するがヤコビアン量よりもはるかに小さい．
4. 3
構造変化後の速度境界条件

また，式（

リンクとリンクが結合・切断する瞬間において，二つのリンクの相対速度が0 でない場合には衝突現象が起こり，構造変化の前後で関節速度が不連続に変化する．爆発を伴う切断を除い

0 としてよい．結合におて，多くの切断においては相対速度を1

n 2 Rp ができたとし，結合により生成された仮想リンクの n に関するヤコビ
アンを J n とする．
る．また，結合点に p 自由度の新しい関節

力積と運動量変化の関係から

Ai1_ i = 0J Ti F i (i = 1; 2)

（

20 ）

2

29 ）

1

1

1

（

6

30 ）

2

1

1

1

1

4. 4

2

1

1

31 ）
（ 32 ）（ 33 ）
（

2

1

1

関節の切断

関節が切断されるy 場合を考える．仮想関節のある関節での切断は，結合とまったく逆の操作により処理することができる．

Fig. 7 の結合後の構造において，Link3 と Link4 の間の関節を切断するためには以下の操作を行う．

1 Link4v をリンク構造から切り離す．
（ 2 ）Link4v を消去する．

（ ）ヒューマンフィギュアは基本的には腰あるいは胴部をベースとする浮遊開リンク機構となる．これが手や足先で他のリンクが成り立つ．また，作用反作用の法則から

F = 0F

1

1

F i が加わり，

1_ i だけ変化したとす（2

B~ = (J 0 J )A0 (J 0 J )T
C~ = J n(J Tn B~ 0 J n)0 J Tn B~ 0
v~ = (J 0 J )_1 2
るとする．結合前のそれぞれの一般化座標を  i (i = 1; 2) ，結合
点 r の一般化座標に対するヤコビアンをそれぞれ J i = @ r =@  i
構造変化の前後で一般化座標の速度が

2

ただし，

結合する二つのリンクがそれぞれリンク機構 ， に属していそれぞれのリンク機構に結合点において力積111_ = 0A0 J T B~ 0 (E 0 C~ )~v

法を示す．

Ai とする．

12

同様に一般化座標の速度の変化を求めると以下のようになる．

動作解析の数値積分において，構造変化直後の速度を境界条件とし，両者の慣性行列を120 ）の代わりに次式を用いる．
A 1_ = 0J T F 0 J T F
1

いては，むしろ非零の相対速度を持つことが多いと考えられる．
として与えることが必要である．以下では速度境界条件の計算

J と J は異なる．

（

1

21 ）

結合後は仮想リンクとその実体リンクの速度が一致することか系と結合，切断することによって構造変化が起こる．したがって，一般にヒューマンフィギュアにおける関節の切断は仮想リンクのある場所に限られると考えてよい．

ら，結合後の機構の関節速度について以下の関係が成り立つ．

一般のリンク系の構造変化に対応するために，仮想リンクがJ (_ + 1_ ) = J (_ + 1_ ) + J n_ n （22 ）結合により機構が受ける力積は，新しい関節 n の可動方向成存在しない場所での切断も扱えることが必要である．この場合

1

1

1

2

2

2

分を持たない．例えば，新しく回転関節が生成される場合には，その軸回りのモーメントを与えることはできない．この条件は以下のように表される．

J Tn F = O（ 23 ）〜（ 23 ）を 1_ ，1_ について解くと，一般化座標式（ 20 ）
1

1

2

4. 2 節のように自由関節を導入することで困難なく扱うこFig. 7 の結合後の構造において，Link1 と Link3の間の関節が切断される場合を考えよう．このときは，Link3を Link1 から切り離して Base の子リンクとし，Base と Link3の間の関節は Free とすればよい．切断後のリンク構造表現をに示す．仮想リンク Link4v によって Link3 と Link4のつながりが表現されているので，Link2|Link4|Link3 のもとができる．

Fig. 12

連鎖は維持される．
4. 5の速度の変化が計算される．

1_ = 0A0 J T B0 (E 0 C )v
1_ = A0 J T B0 (E 0 C )v
1

1

2

2

1

1

1

1

1

2

6

6

24 ）
（ 25 ）（

球面関節Fig. 13 に人間の関節構成をモデル化したものの一例を示す．

このモデルは12 個の球面関節と 4 個の回転関節の計 40 自由度を持つ．このように人間の関節には球面関節としてモデル化できるものが多い．マニピュレータでは通常回転軸が

ただし，

B = J A0 J T + J A0 J T
C = J n(J Tn B0 J n)0 J Tn B0
v = J _ 0 J _
1

1

1

2

1

1

1

1

日本ロボット学会誌 16 巻 8 号

2

2

1

2

1

2

1

26 ）
（ 27 ）（ 28 ）（

1 点で交わる三つの回転関節で球面関節を実現する．しかし，ヒューマン
フィギュアのように球面関節が多数存在する場合には，球面関|129|y 動力学計算における仮想的切断ではなく，構造変化を起こす物理的な切断をいう．

1998 年 11 月

1158

中 村 仁 彦山 根克

永 嶋 史 朗

構造変化を伴う運動の解析例

5.

前章までに述べた閉リンク順動力学計算法，および構造可変
力学系の動力学計算法により，いくつかの簡単な系について力学シミュレーションを行い，計算法の妥当性を検証した．
なお，（ 株）富士通研究所により開発された環境とし，そのなかのLink structure and its description after cutting

Fig. 12Firstsightyを開発

LSI の一つとしてすべてのアルゴリズム
LSI を利をプログラミングした．画面表示などには標準装備の
用した．
5. 1

鉄棒

関節の切断の例として，両手で鉄棒につかまっていた人間が片手を離す様子を Fig. 14 に示す．ヒューマンフィギュアのリンク構造は腕・脚にそれぞれ

4 自由度を持つ 16 自由度系とし，
1

鉄棒と両手の間にはおのおの 自由度の回転関節を置いている．
ある瞬間に右手と鉄棒の間の関節を切断する指示を出すと，片手だけで鉄棒を持った状態になる．
5. 2
ブランコ
Fig. 15 はブランコが壊れてヒューマンフィギュアが落下する様子をシミュレーションしたものである．モデルは鉄棒の場
合と同じ

16 自由度系で，ブランコは左右の棒が上部に 3 自由
3度の球面関節を持っている．また，両手と左右の棒の間には自由度の球面関節，両太ももとブランコの板の間に横方向の並進関節があり，合計
Fig. 1330 自由度系となっている．初めに板が左の棒からはずれ，その後両太ももが板から滑り落ちる．

Example of human model

6.

Fig. 13 のモデルをすべて回転関節で構成したとすれば 41

り に1（ ）従来パラレルメカニズムなどの特定の閉リンク機構に適用されてきた効率的な動力学計算法

個のリンクが必要になるが，球面関節を利用すればリンク数は17 個となる．また，リンク構造の記述も容易である．

わ

本研究で得られた成果は以下の通りである．

節を一つの関節として扱った方が計算量の点で有利である．実
際，

お

2

[5] を，任意な閉リンク機構に適用することを可能にした．

球面関節を用いる場合の問題は数値積分である．オイラー角（ ）リンク機構を隣り合うリンクへのポインタと仮想リンクにのような特異点を持つ座標系を用いずに相対的な姿勢の変化

よって表現することを提案した．この表現法は，データ量

C++による上記アルゴリズムの実装に適して（角速度 ）を数値積分する方法は自明ではない．ここでは有限が少なく，の三次元回転を扱ういる．

Rodrigues の式 [10] を無限小回転の数値積分として用いる．以下に一次近似積分（オイラー法）として数

3（ ）リンク結合後の構造が開リンクであるか閉リンクであるかによらず，あらゆる状況におけるリンク構造の変化を統一値積分する方法を示す．

!i ，相対姿勢を
Ri とすると，1t 秒後の相対姿勢 R0i は次式で計算される．

的に扱うことができることを示した．これにより，構造変

リンク i の親リンクに対する相対角速度をR0i = (E + sin  + (1 0 cos ))Ri
2

3

（

34 ）

4

が可能となった．

（ ）リンク構造変化後の速度境界条件の存在とその計算法を示

5

ただし，

した．

（ ）人間や生物の自由度の多くが球面関節の = !i1t
 = jjT(!x !
y !z ) = 035 ）（ 36 ）（ 37 ）

1

減らすことができることを明らかにした．さらに，球面関節の数値積分法として

6

Rodrigues の式 [10] を用いる方法を示した．

（ ）提案した計算法を実装し，ヒューマンフィギュアを含み，

E は 3 行 3 列の単位行列である．
3

JRSJ Vol. 16 No. 8

3 自由度対偶で表されることに注目し，これを陽に扱うことにでリンク数を（

0 0!z !y= @ !z 0 0!x A （ 38 ）0!y ! x 0

であり，化を伴うリンク系の力学計算をシームレスに処理すること|130|

y 視覚的にプログラミングを行うことのできるアプ リケーション開発環

境．GUI ，OpenGL による三次元モデル表示，動力学計算などのモジュールが \ソフトウェア LSI" として装備されており，プログラマは必要な \LSI" を配線エデ ィタ上で配線するだけでアプリケーションを開発することができる．

Nov., 1998

構造変化を伴うリンク系の動力学計算法とヒューマンフィギュアの運動計算

Fig. 14

Fig. 15

Example of dynamics simulation of human gure: high bar

Example of dynamics simulation of human gure: swing

構造変化を伴う動力学シミュレーションに適用することで，本論文で述べた手法の有効性を示した．
本研究で提案した手法は，歩行などの構造変化を伴う運動の動力学計算を容易かつ高速に行うことができ，力学的に自然な運動の生成やヒューマノイド の制御およびシミュレーションなどに応用が可能である．

8 9

本研究は平成 ， 年度情報処理振興事業協会（

IPA ）創造的

ソフトウェア育成事業「人間／生物を含むモーションコンテン
ツ制作支援環境の開発」の援助を受けた．

参

考

文

献

[ 1 ] H. Ko and N.I. Badler: \Animating Human Locomotion with
Inverse Dynamics," IEEE Transactions on Computer Graphics,
vol.16, no.2, pp.50{59, 1996.
[ 2 ] W.L. Wooten and J.K. Hodgins: \Animation of Human Diving," Computer Graphics Forum, vol.15, no.1, pp.3{13, 1996.

中村仁彦（[ 3 ] Farid M.L. Amirouche: Computational Methods in Multibody
Dynamics. Prentice { Hall, 1992.
[ 4 ] 遠山，渡部，田野：\閉ループを持つ機構の効率的な順動力学解法|
第 1 報：漸化式形式の順動力学解法" ，日本ロボット学会誌，vol.14,
no.2, pp.279{286, 1996.
[ 5 ] 中村仁彦：\パラレル メカニズムの動力学" ，日本ロボット学会誌，vol.10, no.6, pp.709{714, 1992.
[ 6 ] 杉本浩一：\閉ループ機構の運動方程式の導出" ，日本ロボット学会
誌，vol.15, no.3, pp.460{467, 1997.
[ 7 ] R. Featherstone: Robot Dynamics Algorithm. Kluwer, 1987.
[ 8 ] Y. Nakamura and M. Ghodoussi: \Dynamics Computation of
Closed-Link Robot Mechanisms with Nonredundant and Redundant Actuators," IEEE Transactions on Robotics and Automation, vol.5, no.3, pp.294{302, 1989.
[ 9 ] 中村，横小路，花房，吉川：\ロボットマニピュレータの運動学と動力学の統合化計算" ，計測自動制御学会論文集，vol.23, no.5, pp.71{78,1987.
[10] J.J. Craig: Introduction to Robotics: Mechanics and Control,
Addison-Wesley, 1986.

Yoshihiko Nakamura ）山根1954 年 9 月 22 日生．1977 年京都大学工学部精密工学科卒業．1982 年同大学大学院博士課程退学．同
年より 1987 年まで同大学助手．1987 年より 1991
年 3 月までカリフォルニア大学サンタバーバラ校
助教授，準教授．同年 4 月より東京大学工学部機械情報工学科に勤務，現在教授．工学博士．運動学的冗長性，閉リンク機構の駆動冗長性，複数のロボット機構の協調，宇宙ロボットの制御，非ホロノミックな拘束を受ける機械の運動制御，外科手術用ロボットなどに興味をもつ．計測自動制御学会，
システム制御情報学会，日本機械学会，日本コンピュータ外科学会，
IEEE ，ASME などの会員．
（日本ロボット学会正会員）

永嶋史朗（

1159

克（

Katsu Yamane ）1974 年 8 月 1 日生．1997 年東京大学工学部機械情報工学科卒業，同大学院工学系研究科機械情報工学専攻入学，現在に至る．構造可変力学系の運
動計算，ヒューマノイドの力学シミュレーション，
CG における力学的運動生成などに興味を持つ．
（日本ロボット学会学生会員）

Fumio Nagashima ）1959 年 8 月 23 日生．1983 年慶應義塾大学工学部
機械工学科卒業．1988 年（株）富士通研究所入社．
ロボット，特に宇宙ロボットのシミュレータの開発，
月面ローバの運動解析，宇宙空間での作業支援地
上系の研究開発に従事．現在，ペリフェラルシス
テム研究所自律システム研究部に所属．工学博士．
日本機械学会の会員．

日本ロボット学会誌 16 巻 8 号|131|1998 年 11 月