自己完結性を有する小型移動ロボット環境を用いた実演システムの開発
自己完結性を有する小型移動ロボット環境を用いた実演システムの開発
投稿日時:
月, 2017-10-30 15:51
概要・特徴
- スイッチ一つで動作する卓上移動ロボットを用いたレースゲームを作ることができます.
- DUALSHOCK 3コントローラを用いるため,年齢を問わず操縦を楽しむことができます.
- 最小構成でRaspberry Piを搭載した卓上の移動ロボットシステムを構築できるため, RTミドルウェアのソフトウェア資産を生かし,容易に拡張性の高いロボットシステムを作ることができます.
- 標準的な移動ロボット制御コンポーネントに対応できるように,Raspberry Piで動作する対応するPi2Goロボットのソフトウェア群,および,Raspberry Pi 3にBluetoothを介して直接接続して使用できるSony DUALSHOCK 3コントローラ用コンポーネントおよび接続方法のドキュメントを公開します.
- 本システムは大学での地域児童向けイベントや高校生向けイベントで実演し,来場者のみなさんに実際に操縦していただいています.
- 昨年度のRTミドルウェアコンテスト作品である,スイッチ一つで駆動できるZumo移動ロボットについても,さらに改良しました.サブシステム群を公開するとともに,ドキュメントも充実させました.
仕様
- 言語:Python 2.7
- OS: Raspbian OS (Jessiee)
- RTミドルウェア:OpenRTM-aist-1.1.2
- Raspberry Pi 3 用 RTミドルウェア
- RTShell (最新のもの)
- 小型台車ロボット 4tronix Pi2Go (玄人志向 自作IoTベースキット 拡張キット ロボットカー組立キット)
- 小型台車ロボット Poloru Zumo 32U4 (RTミドルウェアコンテスト 2016作品を再利用)
- Sony DUALSHOCK 3 コントローラ
ソースコードおよびマニュアル
ソースコードおよびマニュアルはGitHub(こちら),および, 関連プロジェクトページで公開していきます. 昨年度作品の改良バージョンも同じGitHubに入っています.
(現時点では,4tronix Pi2Go用コンポーネント群,DUALSHOCK 3コンポーネント,改良版Zumoサブシステム群を公開)
Zumoロボット,Pi2Goロボットをスイッチ一つで起動するためのスクリプト群,ドキュメントを公開しています.また,Pi2GoロボットはPi2Goロボット上にあるスイッチ一つでRTコンポーネントを起動・実行が可能です.今後,さらなる修正,改良,ドキュメントの追加を予定しています.

昨年度のRTミドルウェアコンテストの作品からの改良点をまとめました.起動部システムの実装の修正により,システムの修正に必要なコードの量を大幅に削減できました.また,既存のSystem EditorなどGUIツールとの親和性が向上しました.

概要スライド
ライセンス
- 本ソフトウェアはLGPLライセンスのもとで公開します.
- 本ページにて公開しているソフトウェアおよび文書の著作権は甲南大学知能情報学部知能情報学科が保有しています.
謝辞
本研究の一部は,平成29年度私立大学等経常費補助金特別補助「大学間連携等による共同研究」,甲南大学KONANプレミア・プロジェクト,科研費(JP17K06280)の支援を受けています.
宮本信彦様には,コンポーネント群,サブシステム群の実装について,有益なご議論をいただきました.深く感謝申し上げます.
動画
レースコースを用いた操縦風景です.Bluetooth接続されたDUALSHOCK 3コントローラを用いて,Pi2Go 移動ロボットを操縦しています.イベントでは,Zumo移動ロボットを使ってこの操縦システムを作りました.
更新履歴
- 2017/10/31公開
- 2017/12/02更新(マニュアル,ドキュメント類の追加)
- 2017/12/12更新(Zumo用スイッチ起動部分スクリプトの改良)
- 2017/12/15更新(Zumo用ドキュメントの更新,Pi2Goコンポーネントの改良,Pi2Go用スイッチ起動部分スクリプトの改良)
- 2017/12/18更新(Pi2Go用ドキュメントの更新)
- 2017/12/19更新(本システムの自己完結性,改良点の説明を追加)
問合先(メールアドレス):
umetani<at>konan-u.ac.jp
最終更新日時:
水, 2017-12-20 00:05
コメント
rtconコマンドでポートの接続、rtactコマンドでRTCのアクティブ化を実行しているようなのですが、RTシステムの復元にはrtresurrectコマンド、RTCのアクティブ化にはrtstartコマンドを使用するのが本来の使い方だと以前に聞いたことがあります。
rtcryoコマンドでRTシステムを保存してrtresurrectコマンドでシステムを復元した場合、ポートの接続だけではなくコンフィギュレーションパラメータの設定なども復元されるので、rtresurrectコマンドを使う方がいいかもしれません。
このたび,コメントをいただきましてありがとうございます. 懇切丁寧なご指摘ありがとうございます. rtstartコマンドなど, RTShellコマンドの使い分けについて,ご教示いただきありがとうございます.
いただいたご助言をもとに,ソースプログラムを見直し,改良できればと考えま す. また,プログラムの再利用性が高まることが期待できるので, rtresurrectコマンドでコンフィギュレーションパラメータを含めて システムを復元する方法について確認,検討してみます. ありがとうございました.
ご助言いただきましたコマンドについて,動作の確認を行えました. より簡素な実装となるよう,プログラムを改良できればと考えます. ありがとうございました.
ご助言いただきましたコマンドを用い,より簡素な実装を実現できました。GitHubにてVer. 2をアップロードしています。 また,ドキュメントを新たに整備し,使いやすくできればと考えます。 ありがとうございました。
Ver.2に関してドキュメントへの加筆修正を完了いたしました.ご指摘ありがとうございました.
pi2goRTCのspeedInというデータポートのデータ型がTimedDoubleSeqになっていますが、平面上を移動するロボットであればTimedVelocity2D型が一般的に使われるデータ型だと思います。
ご指摘ありがとうございます. 移動ロボットとして標準のTimedVelocity2Dを用いるように,すべてのコンポーネントに対して修正を行ってまいります.
TimedVelocity2Dを用いるよう,すべてのコンポーネントの修正を完了いたしました.ご指摘ありがとうございました.
内容を確認させていただきました.
システムとしても効率良く動かすための工夫があり,マニュアルも丁寧で完成度の高い作品と感じました.
1点だけコメントさせていただきます.
https://takahasi.github.io/RTM_Contest/2017/report_20171215
コメントありがとうございます. 解析結果を確認しました.修正できる箇所は適宜変更していきたいと考えています.