Webots講座9:PROTOファイル(アッカーマン・ビークル)

Webots講座の9回目です.Webots講座4:自分の位置を知ろう(Python)でデッドレコニングを実装するハンズオンがありました.デッドレコニングを実装するには,そのロボットのホイールベースなどのパラメータがわらないと実装できません.WebotsではPROTOという仕組みがあり,そのPROTOファイルにロボットのパラメータが書かれています.では,引き続き自動運転シミュレータで使ってきたロボットカーBMW X5のPROTOファイルを見てみましょう.

レファレンス

PROTOファイル

  • Webotsの自動運転シミュレータの車モデルはアッカーマン操舵機構で,その車(アッカーマンビークル)のパラメータはPROTOファイルでは次のとおりです.このうち,デッドレコニングにはフロント/リアの左右の車輪間隔となるtrackFront/trackRear,ホイールベースwheelbaseが必要な情報となります.
    • trackFront/trackRear: フロント/リアの左右の車輪間隔
    • wheelbase: ホイールベース.フロントとリア軸間の距離
    • minSteeringAngle/maxSteeringAngle: フロント車輪の最少/最大操舵角
    • suspension...: サスペンション諸元の定義
    • wheelsDampingConstant: 各車輪ジョイントのdampingConstant(減衰定数).車の摩擦のシミュレーション計算に使われる.
    • maxSteeringTorque: フロントホイールのy軸にかかる最大トルク
    • extensionSlot: センサや車の形状などの他ノードを追加
    • boundingObject: 車の物理ジオメトリ.なお,物理ジオメトリは衝突の対象となる物体の属性.
    • physics: 車の物理パラメータ
    • radarCrossSection: レーダ反射断面積.0以上の場合,レーダセンサに検出される可能性がある.
    • recognitionColors: 空欄でなければ,カメラセンサにより認識される可能性がある.
    • wheelX: VehicleWheel を追加するスロット
    • axisDevicesX: 車輪ジョイントにBrakePositionSensor,Motorなどのデバイスを追加するスロット
    • data:  Robot ノードのユーザ定義データ(文字列)
  • なお,車の位置(0, 0, 0)はリアホイール軸の中心であり,extensionSlotのどのノードもこの中心からの相対位置になります.Transformノードはこの中心からのextensionノードを移動させます.また,AckermannVehicle PROTOを継承することで簡単に自分のPROTOを作成できます.

ハンズオン

  • Webotsを起動.
  • cityワールドを開く.
    • メニュー→ファイル→Open Sample World…→vehicles→city.wbt
  • シーンツリーのBmwX5を右マウスボタンでクリックして,開いた項目から[view PROTO source]を選択する.
  • テキストエディタにBmwX5のPROTOファイルBmwX5protoが表示される.長いので全部掲載できないがアッカーマン機構に関連する部分は67~69行目となる.
  • Webots講座4:自分の位置を知ろう (Python)のプチプロジェクトにBMW X5のデッドレコニング実装があります.上のパラメータ等を使い実装してみよう!

終わり

コメント

タイトルとURLをコピーしました