ZumoとRaspberry Piを用いた教育用ロボット環境

ZumoとRaspberry Piを用いた教育用ロボット環境

投稿者: 
榊原 洋之
ZumoとRaspberry Piを用いた教育用ロボット環境

特徴

  • ロボットに搭載されたマイクロコントローラ Raspberry Piのみで,移動ロボットを制御することができます.
  • 最小構成でRaspberry Piを搭載した卓上の移動ロボットシステムを構築できるため, RTミドルウェアのソフトウェア資産を生かし,容易に拡張性の高いロボットシステムを作ることができます.
  • コンポーネント群はOSのプラットフォームに依存しないため,柔軟性が高い教育用ロボットシステムを構築できます.
  • Raspberry Piを用いた移動ロボット構築例を作るための治具のCADデータ,3Dプリンタ用データを公開しています.
  • 標準的な移動ロボット制御コンポーネントに対応できるように,Raspberry Pi, Windows側で動作するZumoコンポーネントに対応するZumoロボット側の制御プログラムを公開しています.
  • 本ロボットシステムのRTコンポーネントは,2015年に応募したXMLで動作する対話ロボットシステムのロボットベース部を改良した,現行の小型漫才ロボット(こちら)の制御に用いられています.

紹介スライド

  • 紹介スライドをこちら(slideshare)にて公開しています.

開発環境

  • OS: Windows 7
  • 開発言語: Python 2.7
  • RTミドルウェア(Python): OpenRTM-aist-1.1.2
  • Raspberry Pi用RTミドルウェア
  • 小型台車ロボットPoloru Zumo 32U4

既知の不具合

  • ライントレーサーのコンポーネント群をWindows PC上で実行すると問題なく動作しますが,Raspberry Pi A+で実行した場合は,現時点では挙動が不安定です.
  • 2016/10/31現在,ロボットにさせるタスクによっては,Raspberry Pi A+では負荷が大きく,処理しきれていない場合があることを確認しています.(2016/12/10 現在,Raspberry Pi 3 Model B (jessie)を標準としています)
  • 2016/12/12現在,GitHubのバージョン管理に不具合があり,Zumo-rasp, Zumo-winディレクトリが残っています.この2つのディレクトリのファイルは,現在更新していません.現在はZumo-USB, Zumo-GPIOを使用しています.(2016/12/13: この不具合は解消しました)

ダウンロード

  • マニュアルおよびソースコードをこちら(GitHub)にて公開しています.
  • Zumoロボットの基板上にRaspberry Piを搭載するための治具のCADデータおよび3Dプリンタ用データをこちら(GitHub)にて公開しています.

作例

ゲームパッドでZumoを制御 (Windows 環境で実行)
ゲームパッドでZumoロボットを操作しています.コンポーネント群はWindows環境で動作しています.ロボット制御用Zumoコンポーネント以外には,JoystickRTC,JoyVelRTCコンポーネントを使用しています.ロボットの操作はWindows PCに接続したゲームパッドで行います.

 

Zumo+RTMでライントレーサー(Windows環境で実行)
Windows環境で動作しているRTコンポーネント群でライントレーサーを行っています.ロボット制御用Zumoコンポーネント以外には,LineTracerコンポーネントを使用しています.黒線の検知はZumoロボットに搭載された赤外線センサーアレイの情報を利用しています.
 

Zumo+RTMでライントレーサー(タクトスイッチによるコンポーネントの起動)
ロボット制御用Zumoコンポーネント以外には,LineTracerコンポーネントを使用しています.スイッチを用いたRTコンポーネントの起動にはRTShellを使用しています.黒線の検知はZumoロボットに搭載された赤外線センサーアレイの情報を利用しています.12月10日改訂版のZumoで実行をしています.

 

ライセンス

  • 本ソフトウェアはLGPLライセンスのもとで公開します.
  • 本ページにて公開しているソフトウェアおよび文書の著作権は甲南大学知能情報学部知能情報学科が保有しています.

謝辞

本研究の一部は,平成28年度私立大学等経常費補助金特別補助「大学間連携等による共同研究」,甲南大学KONANプレミア・プロジェクトの支援を受けています.

更新履歴

  • 2016/10/27現在編集中です.
  • 2016/10/31公開
  • 2016/12/07自立して動作する為にバッテリーを搭載させる治具のCADデータを公開
  • 2016/12/10大規模アップデート(Raspberry Pi 3への対応,CADデータの修正と追加,ファイル構成の変更,マニュアルの全面改訂,バグ修正,いただいた質問への対応,その他)
  • 2016/12/12Zumo-上位PC間通信マニュアルの追加,タクトスイッチによる起動例の作例の追加,ライントレーサーコンポーネントのバグ修正
  • 2016/12/15紹介スライドを追加

連絡先

甲南大学知能情報学部知能情報学科 梅谷智弘 - 〒658-8501 兵庫県神戸市東灘区岡本8-9-1 E-mail: umetani [ATMARK] konan-u.ac.jp

問合先(メールアドレス): 
umetani [ATMARK] konan-u.ac.jp
Resources
Project Information
OS: 
Windows
Linux
言語: 
C++
Python
OpenRTM ver.: 
1.1
Average: 
3.5
Average: 3.5 (2 votes)
最終更新日時: 
土, 2016-12-17 09:42

コメント

投稿者: 

Zumo.pngを本文中に貼り付けていますが、特に理由が無いようであればスクリーンショットに設定してください。 Project resources→Screenshotsで設定できます。

投稿者: 

甲南大学の榊原です.ご助言ありがとうございます. Zumo.pngをスクリーンショットに設定致しました. また,その他のご助言につきましては順次対応していく予定です.

投稿者: 

度々すみません。ソースコード、マニュアルを読んだのですが以下の点が気になりました。

  • OpenRTM-aist-1.1.2-RC1というバージョンは存在しないはずですが、どこか間違っているのではないでしょうか?
  • LineTracerのonExecute関数で、以下のように数値を直接記述している箇所がありますが、この値をコンフィギュレーションパラメータに設定しなかった理由を教えてください。
     [-0.05,0.5,1.0, 0.5,-0.05]
  • シリアルポートのオープンに失敗した場合はエラー状態に遷移した方がよいと思います。
  • 全体としてどのようなシステムを構成したのかが分かりづらいので概略図があればよかったと思います。
投稿者: 

甲南大学の榊原です. ご指摘ありがとうございます.バージョンは書き間違えており修正致しました. その他につきましては現在検討中です.

投稿者: 

ご質問,ご指摘ありがとうございます.回答,対応が遅くなり申し訳ありません. 以下,残っていた部分につきまして,回答と12月10日版への アップデートで行った対応を説明いたします.

・重みパラメータについて ご指摘の [-0.05, 1.0, 0.5, -0.05] は,速度指令での重みパラメータでしたが,最初の版では,プログラムリスト中に 直接かかれていました ご指摘のとおり,これらの制御パラメータはコンフィギュレーションパラメータ とすべきですので, 12月10日版のプログラムでは,角速度の重みも併せて コンフィギュレーションパラメータとして設定できるように改良いたしました.

・シリアルポートの遷移について ご指摘にしたがい,シリアル通信の例外が発生した際に,ERROR状態に遷移する よう,12月10日版のプログラムでは改良いたしました.

・概略図 大まかではありますが,12月10日の改訂にて,仕組みを示す概略図をリストに添付いたしました.

このたびは,ご質問,ご指摘ありがとうございました.

投稿者: 
産総研の高橋です.更新ありがとうございます.
内容を確認させていただきました.
入手性の高い zumo を使った汎用性の高そうなコンポーネントだと感じました.
細かい点で申し訳ございませんが,3点質問&コメントがあります.
・教育用とのタイトルですが,教育向けに工夫した点がありましたら,ぜひアピール下さい(汎用性の高いコンポーネント設計など)
・RTC という観点ではないのですが,arduino 側のスケッチは win 用と raspi 用で共通化できないのでしょうか
・Zumo.py の onExecute を確認したところ,速度入力が無い場合でも各データの処理を行い,データを出力していますが,これは必要な処理なのでしょうか
投稿者: 

ご質問,ご指摘ありがとうございます.回答,対応が遅くなり申し訳ありません. 以下,回答と12月10日版で行った対応を説明いたします.

・教育向けへの工夫について 教育向け,とした理由として,入手性の高いボードコンピュータ,ロボットを使 用しつつ, 拡張性,柔軟性の高い構成を実現したこと, ならびに,ハードウェアの製作手順,CADデータについても公開することで, 本作品を容易に再現できることにあります. 今後,マニュアル,作品ページの更新を通し,教育向けの工夫のアピールを行えればと考えます.

・Arduino側のスケッチの共通化について 現時点で,スケッチの共通化はまだ実現しておりません. ただし,テストを重ねるなかで,Windows PC, Raspberry Pi双方で, ZumoロボットのMicro USBポート経由でのシリアル通信が行えることを確認しました. そこで,12月10日のバージョンアップで,標準的なシリアル通信手段を USBポート経由であると想定して,マニュアルの改訂およびGitHubの構成を見 直しました. 標準的な接続方法では,Windows, Raspberry Pi双方で同じArduinoスケッチを使用することができます.

・常にデータ処理を行っていることについて ソフトウェアの実装の方法によると考えますが, 常に速度入力が行われるとは限らない一方, センサ情報をもとに,ロボットの情報を更新する必要があります. そのため,常にセンサ情報を取得し,現在の状態を出力するという構成にしてお ります.

このたびは,ご質問,ご指摘ありがとうございました.

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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