SH Spur

ここでは、秋月電子通称製のSH2ボードを用いた独立二輪操舵型移動ロボット用走行制御コントローラについて紹介します。

インストール方法についてはインストールのページ、
ロボットへの適用方法についてはSHSpurの導入のページ
SH Spurを用いてのプログラミングについてはSH Spur でのプログラミングを参照してください。

ダウンロード

SH Spur

走行制御コントローラの構成

本コントローラは筑波大学知能ロボット研究室で開発された移動ロボット「山彦」で用いられている走行制御系を参考に作られたもので、 ほぼ山彦と同様の機能やコマンドを持っています。

当コントローラは次の構成からなります。

  • SH vel -- 秋月電子のSH2ボードを用いた速度制御コントローラ
  • SH Spur -- SH vel を用いて直線追従等を行うためのソフトウェア

また、関連するライブラリとして次のものがあります。

  • libSHSpur -- SH Spurにメッセージ通信経由でコマンドを発行するためのライブラリ
  • libCoordinateSystem2D -- 2次元座標系のライブラリ
  • libOdometrySSM -- SSM経由でオドメトリ情報を利用する際の補助ライブラリ

また、ユーティリティプログラムとして次のものがあります。

  • param_tuner -- ボディパラメータ等をチューニングするためのソフトウェア(開発途中で中途半端)
  • body_parameter_tuner -- タイヤ径、トレッド等を推定するソフトウェア(そのうちparam_tunerに組み込む)
  • joystick -- アナログ入力のジョイスティックでロボットを操作します。

特徴

SH側の処理(SH vel)

    • サーボ周期1ms 固定小数点
    • PI制御
    • フィードフォワードでのトルク制御
    • トルク制限
    • PWS移動体の動特性を考慮したフィードフォワード補償
    • PWMとカウンタ値をシリアル通信でPC側に一方的に送信(5ms)
    • 簡単な摩擦補償
    • Watch-dog timer (一定期間速度指令値がこないと自動的に制御をストップする)
    • パラメータはほぼ全て通信により設定可能
    • トリガ入力を出力情報に付加(そのうち実装予定)

PC側の処理(SH Spur)

    • オドメトリ計算+タイムスタンプ
    • 各種走行軌跡追従制御 (現在は直線追従・円弧追従・停止・回転を実装)
    • 傾きに対する重力補償
    • 各種座標系(GL、LC、FSに加えBS、BL, CS座標系)
    • 自己位置修正機能等の外部の位置認識情報との同期

system.png

座標系

    • GL座標系 グローバル座標系。一度決めたらなるだけ変えない。走行制御等に用いられる。
    • LC座標系 GLの上の座標系。任意に決める。
    • FS座標系 ロボット中心座標系。ロボットが動くと動く。
    • BS座標系 adjust_pos等でも位置が変更されない、連続性が補償される座標系です。
    • BL座標系 BS上の座標系です。BS同様adjust_posの影響を受けません。
    • CS座標系 GL,BS,FS座標系下に任意に設定可能な階層的な座標系です(実装途中)。

coordinate.png

servo.png

バグ・問題

USB-Serialに関する問題 †

Elecom製等のUSB-Serialでは、ドライバのせいか通信のバッファにたまってしまうらしく、動作が不安定になるようです。