自己完結性を有する小型移動ロボット環境を用いた実演システムの開発

自己完結性を有する小型移動ロボット環境を用いた実演システムの開発

投稿者: 
root
自己完結性を有する小型移動ロボット環境を用いた実演システムの開発

概要・特徴

  • スイッチ一つで動作する卓上移動ロボットを用いたレースゲームを作ることができます.
  • 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コンポーネントを起動・実行が可能です.今後,さらなる修正,改良,ドキュメントの追加を予定しています.

改良版Zumoサブシステム群を更新しました.スイッチ一つでの駆動を実現するとともに,より簡素な実装,エラー応答の改良を実現しました.実装を改良することで,よりスイッチ駆動のスクリプトの記述が簡素になりました.制御スクリプトComponentControl.pyを修正することなく,RTC群の保存情報を利用してコンポーネント群の起動,停止を行えます. したがって,本システムの特徴は以下でまとめられます.
本システムの特徴
昨年度の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
Resources
Project Information
OS: 
Windows
Linux
言語: 
Python
OpenRTM ver.: 
1.1
Average: 
5
Average: 5 (2 votes)
最終更新日時: 
水, 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
投稿者: 

コメントありがとうございます. 解析結果を確認しました.修正できる箇所は適宜変更していきたいと考えています.

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク