ロボットシミュレーションの構成

2009年6月8日(月)
松下 光次郎

ロボットシミュレーションの環境設定

 ODEシミュレーションの基本的な環境は、「重力」「物体間の衝突状態」「刻み時間(ステップタイム)」となります。

 「重力」の設定はMainサブルーチン内にあるdWorldSetGravity (world,0,0,-0.5)で行います。もし現実世界の重力と同じ状態にしたいのならば、Z軸の負の方向に+9.8[m/s2]となりますので、dWorldSetGravity (world,0,0,-9.8)と設定してください。

 ここで、dWorldSetGravity (world,0,0,+9.8)と設定する(Z軸の正の方向に+9.8[m/s2])と物体が浮き上がりますし、dWorldSetGravity (world,+9.8,0,0)と設定する(X軸の正の方向に+9.8[m/s2])と物体が横に飛んでいきます。

 「物体間の衝突状態」は、「nearCallback」内で設定を行います。「demo_buggy.cpp」における衝突する物体とは、平らな地面である「static dGeomID ground」、障害物である「static dGeomID ground_box」、「static dSpaceID」で宣言されている物体の集合体「car_space」となります。なお、物体の集合体に関する説明は次節を参照してください。これら3者の衝突状態の設定は下記のようになっています。

contact[i].surface.mode = dContactSlip1 | dContactSlip2 |
dContactSoftERP | dContactSoftCFM | dContactApprox1;
contact[i].surface.mu = dInfinity;
contact[i].surface.slip1 = 0.1;
contact[i].surface.slip2 = 0.1;
contact[i].surface.soft_erp = 0.5;
contact[i].surface.soft_cfm = 0.3;

ロボットシミュレーションの肝!地面との接触設定

 上記の1~2行目にある「surface.mode」の設定は、値を指定する衝突状態の宣言をしています。ここに示されている以外にも多くありますので、詳しくはODEのユーザーガイドサイト(http://www.ode.org/ode-latest-userguide.html)の「7.3.7. Contact」にある表を参考にしてください。3~7行目では実際に値を指定します。

 「surface.mu」は摩擦係数、「surface.slip1」「surface.slip2」はFDS摩擦係数、「surface.soft_erp」と「surface.soft_cfm」は粘弾性質を示しています。

 ロボットシミュレーションをつくる上で最も重要な設定パラメータは、地面とロボットの衝突です。一般に地面は摩擦、粘弾性質で表現されるので、「surface.mu」「surface.soft_erp」「surface.soft_cfm」の3種類についての詳細を説明します。

 摩擦係数の値は0~∞で設定します。値が0だと全く摩擦のないすべり状態になります。∞(ODEでは「dInfinity」)だと全くすべりを生じない状態です。物理学などで一般の摩擦係数は1として扱われていますが、摩擦係数はロボットの行動に大きな影響を与えますので、試行錯誤しながら設定してみるとよいでしょう。

 粘弾性質はERP(Joint error and the error reduction parameterの略)、CFM(Soft constraint and constraint force mixingの略)で表現されています。これらパラメータは粘性係数と弾性係数から算出可能であり、Kを弾性係数・Cを粘性係数・DTを刻み時間とすると、ERPの算出式は以下の式(1)となり、CFMの算出式は以下の式(2)となります。

(1)ERPの算出式
   ERP=DT*K/(DT*K+C)

(2)CFMの算出式
   CFM=1/(DT*K+C)

 私の場合、Kは5000-10000(N/m)、Cは5000-10000(Ns/m)と比較的硬めの地面となるように設定しています。

電気通信大学
電気通信大学 電気通信学部 知能機械工学科特任助教。脚移動ロボットや電動装具の研究開発の経験を生かし、近年、ロボット教育に力を入れている。特に中学生・高校生に科学技術への興味をもってもらうため、安価なロボット開発法をWebサイト(http://www.koj-m.sakura.ne.jp)にて紹介することや、ものづくり体験型の講演活動を積極的に行っている。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています