計測自動制御学会東北支部 第 208 回研究集会(2003．5．22)
資料番号 208-3

ヒューマノイドロボットのための教示インターフェースを有する
動力学シミュレーターの研究
aStudy on a Dynamics Simulator with Teaching Interface
for Humanoid Robots○李 云，斉藤 慎太郎，山野光裕，那須康雄，
金子慎一郎，水戸部和久○Li Yun，Sin-taro SAITO ，Mitsuhiro YAMANO，Yasuo NASU， Shin-ichiro
KANEKO，Kazuhisa MITOBE
山形大学工学部
Yamagata University
キーワード：ヒューマノイドロボット(Humanoid Robot)，動力学(Dynamics)，Open GL
連絡先：〒992-8510 米沢市城南 4-３-16 山形大学工学部機械システム工学科
那須研究室

李 云

Tel：(0238)26-3237，Fax：(0238)26-3237，E-mail：tr346@dipfr.dip.yz.yamagata-u.ac.jp

１．はじめにョンを作製し，その有効性を検証する．

近年，ヒューマノイドロボットは人間の生活２．シミュレーションモデルの構成空間での共存が期待されている．人間の生活空間での共存では人間と類似した様々な動アニメーションの対象として，当研究室開発作が求められ，その実現のため，ヒューマノイの Bonten-MaruⅡと１０：１の比例関係でそのドロボットの運動性能を考慮した軌道が生成さモデルを作成する．Bonten-MaruⅡは，全長れることが要求される．そして，ヒューマノイドロ

1250 [㎜]，全幅 540 [㎜]，全重量 31.5 [㎏]でボット信頼性の高い挙動を得るために，適正ある．図 1 にその写真と自由度配置を示す．

な構成要素を選ぶことが重要である．そこで全自由度は 21 で，首部に 2 自由度，各腕部本研究では，ヒューマノイドロボットの運動軌に 3 自由度，腰部に 1 自由度，各脚部に 6 自道の特性を確認するために，マウスやキーボ由度を配置されている．また，各関節は DC サードなど入力装置を利用した、教示機能を有ーボモータ及びハーモニックドライブによってす る シ ミ ュ レ ー シ ョ ン ソ フ ト 3DCG ( 3駆動されている．構造部及びカバーにはアルDimensional Computer Graphics ) アニメーシミニウム材を使用して軽量化が図られている．

1

本研究で作成したヒューマノイドロボットシミュ

３．２．動力学を利用するシミュレーションのレーションの各リンクの形状、寸法、質量、質方法

量中心，慣性モーメント等が任意に指定でき，本シミュレーションの方法では，開リンク

例えば，実測した人間のデータやットの実ロボ連鎖の任意の形状のロボットをモデル化でパラメータなどを自由に設定することができ

き，各リンク部は三次元の剛体として扱われる．

る．床に対して固定点を持たないロボットの動力学[2]を用いて実現される。動力学シミュレーションモデルは図２のように示す．
この動力学運動方程式における状態パラメーターは，各関節の状態パラメーターにロボット全体の姿勢を表す六つの状態パラメ

yawーターを加えたものである。その運動方程pitch式の一般型は次式のように表される。

roll

H ( x) &x& + b( x, x& ) = u + K ( x) f EXT(1)

図 1．Bonten-MaruⅡの写真と自由度配置b( x, x& ) = C ( x, x& ) x& + g ( x)３．DCG シミュレーションの作成

ここで， x T = [ p BT , q T ],３．１．シミュレーションの原理と作製手順あり，また，その他の記号は以下の通り．

u T = [ f BT ,τ T ] で

p B ：仮想リンクの位置を表す

アニメーションの原理として，複数の画像を一定時間間隔でスクリーンに表示する

3×1 次のベクトル手法をとる．グラフィックスライブラリにはリア

q ：仮想関節を含む関節角度を表すルタイムでの処理が可能である， Win32 上(N+3)×1 次のベクトルの OpenGL を用いる[1]．

H ( x) ：(N+6)×(N+6)次の慣性行列作製手順としてまず，C ソースファイルとモ

f B ： 仮想リンクに生じる力を表す

ジュール定義ファイルより構成される DLL を3×1 次のベクトル

τ ：関節に生じるトルクを表す

Visual C++で作製する．その DLL に後述の動力で導出した各関節角度データ，腰の中(N+3)×1 次のベクトル

C ( x, x& ) ：遠心力やコリオリ力を表す

心位置データ，ロボット全体の姿勢データを取り込む．次に Visual Basic のフォーム上に(N+6)×(N+6)次の行列ピクチャーボックスを作製し，DLL 関数名と位置を宣言して DLL 関数をコールする．こg ( x) ：重力を表す(N+6)×1 次のベクトル
K ( x) ：外力を一般化座標に変換する

れによりピクチャーボックスにアニメーション(N+6)×2M 次の行列

f EXT ：外力を表す 2M×1 次のベクトルが描画される．

N ： 歩行ロボットの関節の数2

M ： 床と足の裏との接触点の数(時変)表１．

Bonten-MaruⅡのパラメータ

この式の中で， H ( x) 及び b( x, x& ) を求めMass

た後，逆動力学演算[3]を用いて，外力変換[kg]

Inertia Ix
2[Kgm ]

行列 K(x)の各成分を求め，入力トルク τ とInertia

Lengt

Iyh2

後述の床からの拘束力 f EXT を与えれば，..

式(1)の運動方程式を x について数値積分[Kgm ]

[M]

Head

0.45

0.00050.0004

0.194

Shoulde5.45

0.1301

0.007

0.445

1.96

0.0145

0.014

0.18

0.16

0.00130.0001

0.28

Hip-y

9.39

0.1578

0.048

0.208

Upper

1.97

0.0177

0.022

0.27

2.06

0.022

0.02

0.27

1.730.0037

0.00690.088

r-y

することによって，床に対して固定点を持たUpperないロボットの運動を完全にシミュレーション

arm

できる．この式の中で， H ( x) 及び b( x, x& ) をLower求めた後，逆動力学演算[3]を用いて，外力arm

変換行列 K(x)の各成分を求め，入力トルク

τ と後述の床からの拘束力 f EXT (床の反力)..

を与えれば，式(1)の運動方程式を x につleg

いて数値積分することによって，床に対してLower

固定点を持たないロボットの運動を完全にlegシミュレーションできる．

Foot

シミュレーションにおいてロボットを床に支前述したパラメータにて１歩間 2.5 秒のシミュえておくためには，その接触点に発生するレーションを行った．その結果として，ロボッ適当な反力を各時間ステップごとに計算しト水平面内重心位置を図２に示す．但し歩なければならない．そこで，運動量保存則よ

幅小さく，静止に近い状態であることを示

り次式が成立する．

す．

H ( x)( x& + − x& − ) = K ( x)∆f + ∆f b

(2)
1 step (x方向).

.

但し， x + , x − はそれぞれ衝突前と衝突後の0.035

一般化速度を表す．

0.03
0.025
distance [m]∆f = f EXT ∆t ， ∆f ≈ (u − b( x& , x& ))∆t である．
この式から床からの拘束力 f EXT を決めることができる。そして，動力学からシミュレーシ

0.02
0.015
0.01

ョンにおいて必要な各種パラメーターはロボ
0.005

ットの設計による決まる．本ロボットでは次の0表の通りである．

03

0.5

1

1.5
2time [s]

2.5

3

3.5

3.3.1 ここで操作画面の各種機能について

1 step (y方向)
1.60E-02

説明する．

1.40E-02

する．

1.20E-02描画

distance [m]1.00E-02
8.00E-03

アニメーションの初期状態を描画する．

6.00E-03(a) floor

4.00E-03

グリッド： 床をグリッドにする．

2.00E-03

チェック： 床をチェック模様にする．

0.00E+00
00.5

1

1.5

2

2.5

3

3.5

影： 影の有無を選択する．

-2.00E-03
time [s](b) anime
コマ数：フレームの総数を示す．

図２．歩行シミュレーションの重心の軌道

スタート：アニメーションを実行

３.３シミュレーションの操作

カメラ位置を固定し，対象物体を拡大したり縮小したりする操作．

図３に Visual Basic による GUI を示す．描
画ボタンを押すことによりモデルの初期状態

所要時間：アニメーションの所要時間を示が表示され，スタートボタンを押すとシミュレ

すーションが開始する．更に，操作しやすいた

単位時間：フレームをつなぐ単位時間を示

めに，マウスやキーボードなど入力装置がす．

シミュレーションを制御できるように設定する，
図３には例として歩行の初期状態が描画さいろんな視点からシミュレーションを展示すれている．またズームや視点変換等の機能るために，カメラ機能を設定する．各機能のの導入により，様々な視点から軌道の確認

概要は以下に示す及び検証をすることが可能である．

(c) パン
カメラ位置を固定し，水平面内視点を動かす操作．
(d) タンブル
注視点を固定したままで，注視点までの距離を一定に保ちながらカメラを左右に移動する操作．
(e) チルト
カメラを左右に傾ける操作．
(f) 高低注視点を固定したままでカメラを上下に移動する操作．
(g) ドリー
カメラを対象物体に近づけたり遠ざけたりす

図３．シミュレーション操作画面

4

る操作．
(h) ズーム
3.3.2 マウスやキーボードの機能について説明する．
マウスの位置によって視点を移動させるものである．ピクチャーボックスの上部をクリックした時，視点が注視点の方向に移動し，下部をクリックした時遠ざかるように移動する．
また，左側をクリックした時は左方向へ旋回し，右側をクリックした時右側へ旋回し．そし図５．しゃがみアニメーションて，キーボードの→、←、↑、↓の操作によ

5.おわりにって，ヒューマノイドロボットのモデルは右、

本研究では，ヒューマノイドロボットの動力左、後、前に歩行方向を変換させる．

学を考慮し，歩行シミュレーションを行った．

4.シミュレーション実験

今後，マウスやキーボードなど入力装置で教図４に示すヒューマノイドロボット歩行シミ示できるような機能を加えていく予定である．

ュレーション結果である．１歩あたりの時間を本研究で作成したシミュレーションは，操作２．５秒であり，全歩行は３０秒掛かる．そのは便利という点で優れている．

他，図 5 に示されるヒューマノイドロボットのしゃがみのアニメーションも作成した．
参考文献[1] 酒田幸市：OpenGL3D プログラミング[2] 藤本康孝，河村篤男：床との衝突および摩擦を考慮した２足歩行ロボットの三次元運動シミュレーション，ロボット学会誌，Vol．
15, No．6, pp.857-863, 1997.
Time=0.5 Sec[3] John J. Craig：Introduction to Robotics,

Time=1.0 Sec

Addison-Wesley, pp.195-201,1990

Time=1.5 Sec

Time=2 Sec

図４．歩行ロボットシミュレーション

5