Webots 使い方まとめ

6. 壁(Solid)の設置

壁はほとんどのシミュレーションにおいて最重要項目の一つではないだろうか。この節では環境上に固形物(Solid)を設置する方法を説明する。

6.1 Solidノードの設置

SolidはShape等の物理的プロパティをもったオブジェクトを提供するノードだ。 壁などの衝突検出されるオブジェクトを設置する際は、まずはSolidノードを追加する。

まずScene treeAdd Newを選択する。
New node > Solid を選択し、追加する。

ところが3D windowには追加されたオブジェクトは見当たらない。
Solidはある地点に固体があるという定義に過ぎない。 つまりSolidはまだ形(shape)という属性を持っていないからだ。

6.2 Shapeノードの追加

Shapeは、worldにオブジェクトを描写するためのノードであり、appearanceとgeometryの二つの属性を持つ。 このノードをSolidの子ノードとして追加することで、オブジェクトの具体的な形や概観を設定することができる。
Scene treeの6.1で追加したSolidの属性のchildrenを選択してAdd Newをクリック。
New node > Shape を選択し、追加する。

追加したShapeの属性のgeometryを選択してAdd Newをクリック。
New node > Box を選択し、追加する。

ようやく3D wondowに四角形の物体が出現した。 同様にShapeの属性のgeometryを追加すると、色などの概観も設定できるので、試してみよう。

6.3 Solidの衝突実験

作成したSolidと5節で設置したE-Puckを使って衝突実験をしてみよう。 まずSolidの形や位置を変更しよう。Scene treeの次の各パラメータを変更することによって実現する。

座標 : Solid > transration
回転 : Solid > rotation
大きさ : Solid > children > Shape > geometoryBox > size

シミュレーションを実行する前には必ずsaveすること。
runでシミュレーションをスタートしてみよう。

ところがE-puckは壁をすり抜けてしまう。 これは衝突判定の属性(boundingObject)が設定されていないからだ。
Solidの属性であるboundingObjectBoxノードを追加しよう。

3D windowのSolidの周りに箱状のワイヤーフレームが表示されているはずだ。
これが衝突判定を行うフレームであり、boundingObjectの属性のsizeで大きさを変更できる。 sizeをShapeの属性で設定したサイズに合わせ、もう一度シミュレーションを実行してみよう。
今度は、E-Puckは通り抜けられないはずだ。

HOME > Webots 使い方まとめ > 6. 壁(Solid)の設置