無限軌道(クローラ)の区分剛体シミュレーション

概要

「無限軌道」は戦車や建設機械、レスキューロボット等で広く用いられている移動機構で、「クローラ」や「キャタピラー」とも呼ばれます。Choreonoidはこの無限軌道をシミュレートするためのデバイスとして「区分剛体無限軌道(Piecewise Rigid Continuous Track)」を備えています。本ページではこのデバイスの利用方法について解説します。

無限軌道の物理シミュレーションでは、履帯を構成するシュー1枚1枚を剛体としてモデリングする手法が精密ですが、剛体数・拘束数が多くなり計算コストが大きくなります。区分剛体無限軌道はこれに対して、駆動輪と誘導輪の間に巻き回された履帯を、上下の直線部分と車輪に巻き付く部分といった少数の「区分的な剛体」で近似して扱います。履帯の周回は駆動輪の回転と同期され、シュー(グローサ)が実際に周回して地面を捉える挙動が再現されます。これにより、計算コストを大幅に抑えつつ、履帯特有の接地挙動を安定にシミュレーションすることができます。

なお、より簡易な無限軌道のシミュレーション手法として、 無限軌道(クローラ)の簡易シミュレーション も利用できます。そちらは履帯の見た目や車輪への巻き付きは表現されませんが、最も手軽に利用できる方法です。逆により精密な手法としては、AGXシミュレータ向けの AGX Vehicle Continuous Track (AGXクローラ) があります。用途に応じて使い分けてください。

対応シミュレータ

区分剛体無限軌道によるシミュレーションは、以下のシミュレータアイテムに対応しています。

デバイス本体はCMakeオプション BUILD_PIECEWISE_RIGID_CONTINUOUS_TRACK (デフォルトON)でビルドされ、上記プラグインのシミュレータがこのデバイスを認識してシミュレーションを行います。

モデルの記述方法

区分剛体無限軌道を利用するモデルは、以下のように構成します。

  • 駆動輪(スプロケット)と誘導輪(アイドラ)を、それぞれ回転関節をもつ通常の車輪リンクとして定義する

  • 履帯全体に対応するリンクを定義し、そのリンクの elementsPiecewiseRigidContinuousTrack デバイスノードを記述する

  • デバイスノードの sprocketidler キーで、駆動輪・誘導輪のリンクを名前で参照する

シミュレーションでは、駆動輪の関節を速度指令等で回転させることで、それに同期して履帯が周回し、ロボットが駆動されます。

以下はサンプルモデル(share/model/Tank/PRCTrackTank.body)における記述例です。

type: PiecewiseRigidContinuousTrack
name: TRACK_L
sprocket: WHEEL_L0
sprocket_radius: 0.075
idler: WHEEL_L2
idler_radius: 0.075
width: 0.09
thickness: 0.01
num_shoes: 46
grouser_height: 0.012
grouser_thickness: 0.01
mass: 2.5
contact_material: TankTracks
drive_damping: 2000.0
drive_max_force: 200.0

デバイスノードでは以下のパラメータを設定できます。

パラメータ

デフォルト値

意味

sprocket

(必須)

駆動輪(スプロケット)のリンク名です。

sprocket_radius

(必須)

駆動輪の半径です [m]。

idler

(必須)

誘導輪(アイドラ)のリンク名です。

idler_radius

(必須)

誘導輪の半径です [m]。

width

0.1

履帯の幅です [m]。

thickness

0.005

履帯(ベルト部分)の厚さです [m]。

num_shoes

20

履帯を構成するシューの枚数です。描画されるグローサの密度に対応します。

grouser_height

0.01

グローサ(履帯表面の突起)の高さです [m]。

grouser_thickness

(thicknessと同値)

グローサの厚さです [m]。省略した場合は thickness の値が使用されます。

mass

(自動)

履帯全体の質量です [kg]。省略した場合は駆動輪と誘導輪の質量の合計が使用されます。

contact_material

履帯に適用するマテリアル名です。 接触マテリアル の機構により、履帯と地面の間の摩擦等を設定できます。

appearance_material

履帯の描画に使用する外観マテリアル(diffuse等)です。

drive_damping

10000.0

履帯の駆動に用いる拘束のダンピング係数です。

drive_max_force

(無制限)

履帯の駆動力の上限です [N]。省略した場合は制限されません。

注釈

本デバイスは以前 "PxContinuousTrack" という名称でPhysXプラグイン専用に提供されていました。旧名称のデバイスノードも後方互換のため読み込み可能ですが、非推奨となっていますので、新規のモデルでは PiecewiseRigidContinuousTrack を使用してください。

サンプル

区分剛体無限軌道を利用したサンプルプロジェクトが choreonoid/sample/PiecewiseRigidContinuousTrack/ ディレクトリに用意されています。いずれもPhysXシミュレータとBulletシミュレータの両方を含んでおり、ジョイスティック(または仮想ジョイスティックビュー)で操縦できます。

  • PRCTrackTank.cnoid : 戦車型ロボットのサンプルです。左右の履帯と砲塔をジョイスティックで操作できます。

  • PRCTrackVehicle.cnoid : クローラ型走行車両を起伏のある地形上で走行させるサンプルです。