かみやんの技術者ブログ

主にプログラムの話です

AibiUI公開

やー、なかなかロボット時間が作れない。つくばチャレンジ2009終了後、ぜんぜん開発が進んでいません。今日は少しは開発を進めたいところ。

まずは、アイビのGUI側のソースを公開します。つくばチャレンジ2009に出場したときのソースです。
プログラムの名前はAibiUIです。Visual C# 2008 Express Editionでビルドできます。GPLです。

ダウンロードURL: http://www.asahi-net.or.jp/~qs7e-kmy/robot/AibiUI20100124.zip

AibiUIの機能

  • 走行モード
    • リモコンモード:ジョイパッドで走行し、ログを取る
    • 半自律モード:ジョイパッドでボタンを押している間だけ自律走行
    • 自律モード:完全自律
    • 半自律モード・自律モードのときに途中のウェイポイントから再開機能
  • ログ再生モード
    • GPSの軌跡表示(水色)
    • オドメトリの軌跡表示(オレンジ)
    • オドメトリ+磁気センサの軌跡表示(緑)
    • 統合位置(オドメトリ+地磁気GPS)の軌跡表示(明るい緑)
    • 現在位置をスライダーで変更できる(アニメーションする)
  • 表示機能(走行モード、ログ再生モード共有)
    • 現在位置でのLRFのレーザー表示(表示タイプとして、放射線型、点、ポリライン、簡易壁判別ポリラインの4つ)
    • オドメトリの自己方向の表示(オレンジの矢印)
    • 磁気センサの自己方位の表示(緑の矢印)
    • ローカルビュー(ロボット目線)とグローバルビュー(北が上)の切り替え
    • 総走行距離の表示(画面右上)
    • バッテリ電圧の表示
    • GPSのHDOPと衛星数の表示
    • Google Static Maps APIでダウンロードした地図画像の合成表示
    • 「N番ウェイポイント通過」や「LRFエラー」など音声で通知
  • 経路エディタ系
    • 大域経路ファイルの読み込み・保存(XMLファイル)
    • 左クリックでウェイポイント追加
    • ウェイポイントを左ボタンドラッグでウェイポイントの移動
    • 経路の線分上をCtrl+左クリックで、線分上にウェイポイントの挿入
    • ウェイポイントを右クリックで、そのウェイポイントの削除またはプロパティ
    • ウェイポイントのプロパティで地磁気センサOFF区間の設定
    • 中ボタンドラッグ(またはShift+左ボタンドラッグ)でパン(ビューの平行移動)
    • ホイールでズーム
  • 設定系
    • 地磁気センサ(TDS01V)のキャリブレーション(円の中心を求める(X,Yのオフセット))
    • 地磁気センサの方位オフセットとY成分スケールの調整
    • ログファイルからCSVに変換(Excelでグラフを作成できるように)
    • Google Static Maps APIで地図画像をダウンロード
    • シリアル通信で、マイコン(SH7125)、LRF(Top-URG)、GPS地磁気センサ(TDS01V)への接続。COMポートの記憶。仮想COMポート名の列挙。
  • 使っていない系
    • ICPスキャンマッチによる方向の補正(平行移動成分は実現できていない、計算量が多く少しリアルタイムに間に合っていない)
    • マイコンにプログラムを自動送信(去年は、H8-3069でRAM2MあったためFlashROMではなくRAMにプログラムを置いていた)

ま、色々コードが書いてあるのでソース、参考にしてください。LRFの読み込みルーチンやTDS01Vの読み込みルーティン等だけでも役に立つと思います。

つくばチャレンジ2009シンポジウム用 技術レポート

先日、無事つくばチャレンジ2009のシンポジウムが終わり、MLにも技術情報が公開されたので、ここでも公開します。
http://www.asahi-net.or.jp/~qs7e-kmy/robot/03TsukubaChallenge2009Symposium.pdf
参考までにどうぞ。
ちなみにつくばチャレンジのMLに参加すると出場者全員(というかレポート提出者全員)のPDFファイルがダウンロードできるURLとパスワードがもらえます。私は、このPDFをiPhoneに転送して、PDFビューアで電車の中とかベットの中で毎日読んでいます。紙に印刷するよりもコツコツ読めて便利です。電子ブック万歳!

今日は、、

さて今日は2〜3時間しか開発できないが何しようかな〜。まずは、つくばチャレンジ2009の走行ログの中で、AI部(局所移動判断部)の思考ルーティンの詳細がGUI側から表示する機能がないのでそれを実装しようかな。つまりある瞬間瞬間で、なぜハンドルを右に切ることにしたか、アクセルを踏んだかという判断にいたった理由をみれるようにするということ。現在、大きなログファイルをテキストエディタで見るしかないが、これでは実質みれないのと同じ。GUIならロボットの位置、姿勢、LRFで得られた障害物情報とかが可視化され状況がわかる。スライダーバーで任意の時刻にすばやく移動できる。