Successfully reported this slideshow.
Your SlideShare is downloading. ×

動きのモデリング With Mindstorms NXT

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 29 Ad

動きのモデリング With Mindstorms NXT

Download to read offline

「動きをモデリングしよう with Mindstorms」
DevLOVE神奈川の第1回勉強会として、2013年7月1日にアットウェアさんをお借りして実施したワークショップの資料です。
http://devlove-kanagawa.doorkeeper.jp/events/4586

「動きをモデリングしよう with Mindstorms」
DevLOVE神奈川の第1回勉強会として、2013年7月1日にアットウェアさんをお借りして実施したワークショップの資料です。
http://devlove-kanagawa.doorkeeper.jp/events/4586

Advertisement
Advertisement

More Related Content

Recently uploaded (20)

Advertisement

動きのモデリング With Mindstorms NXT

  1. 1. 動きのモデリング with Mindstorms 動きのモデリング with Mindstorms 久保秋 真(Shin Kuboaki) kuboaki@gmail.com 2013/07/01 (C) 2013 Shin Kuboaki 1 諸事情により、実際に受けた方の観たスライドと は若干異なりますが、あしからず…。
  2. 2. 動きのモデリング with Mindstorms Agenda  Mindstormsがあるとできること  Mindstormsの紹介  いろいろな動くモノが制作できるよ  モデルから作ったプログラムを動かしてみよう  動きをみてモデルに表す演習  システムの動きを見てモデルで表現しよう  内部の構造を踏まえたモデルを考える  構造の情報を付加してモデルを見なおそう  モデルを見てロボットを動かす演習  モデルを見てシステムの動きで表してみよう 2013/07/01 (C) 2013 Shin Kuboaki 2
  3. 3. 動きのモデリング with Mindstorms Mindstormsがあるとできること 2013/07/01 (C) 2013 Shin Kuboaki 3
  4. 4. 動きのモデリング with Mindstorms Mindstormsがあるとできること  Mindstormsの紹介  プログラムをビルドして転送して動かしてみるよ  いろいろな動くモノが制作できる  写真や動画などを紹介します  作ったモデルが動かせる  モデルを作ってコードにして動かすまでを紹介  手動モデル変換  MDDツールで自動生成(BridgePoint, BricRobo?) 今回はガマン。 2013/07/01 (C) 2013 Shin Kuboaki 4
  5. 5. 動きのモデリング with Mindstorms © The LEGO Group. Mindstorms NXT  レゴブロックを使ったロボット製作キット  コンピュータ教育やロボット体験学習に活用  小学校から大学、企業  各種センサ、モーターが利用可能  サードパーティ製もある  ソフトウェア開発環境の提供  Robolab、C言語、Java、その他  クロス開発  PCで開発し、ロボットに転送して動かす 光センサ タッチセンサ サウンドセンサ サーボモータ ジャイロセンサ カラーセンサ 超音波センサ 2013/07/01 (C) 2013 Shin Kuboaki 5
  6. 6. 動きのモデリング with Mindstorms インテリジェントブロック NXTの構成  MPU: Atmel社の32bitのARM7(クロック48MHz)  RAM: 64Kbyte、フラッシュメモリ 256Kbyte(プログラムとデータが入る)  単3電池6本またはリチャージブルバッテリで動作  コンピュータで作成したプログラムを、このNXTに転送して動かす 出力ポート(出力端子)【A、B、C】 サーボモータやランプを接続する NXT液晶ディスプレイ 文字や記号などの情報を表示 する NXTボタン オレンジ色:オン/エンター/ラン グレーの矢印:NXTメニューの移動 ダークグレー:クリア/戻る USBポート コンピュータと接続する スピーカー 効果音などを鳴らす 入力ポート(入力端子)【1、2、3、4】 センサを接続する Bluetooth NXTとNXTの間で無線通信 ができる 2013/07/01 (C) 2013 Shin Kuboaki 6
  7. 7. 動きのモデリング with Mindstorms Robolabのプログラム  Robolabのプログラムを見てみよう  プログラムを作る様子を見てみよう  実物が動くところを見てみよう 2013/07/01 (C) 2013 Shin Kuboaki 7
  8. 8. 動きのモデリング with Mindstorms C言語のプログラム  C言語のプログラムを見てみよう  プログラムを作る様子を見てみよう  実物が動くところを見てみよう 他に、C++やJavaで開 発する環境があります。 2013/07/01 (C) 2013 Shin Kuboaki 8
  9. 9. 動きのモデリング with Mindstorms いろいろな動くモノを作れるよ  仕掛けがスゴい!! LEGOテクニックの作品集  http://matome.naver.jp/odai/2133432020257402401  しばしお楽しみください… 2013/07/01 (C) 2013 Shin Kuboaki 9
  10. 10. 動きのモデリング with Mindstorms 動きをみてモデルに表す演習 2013/07/01 (C) 2013 Shin Kuboaki 10
  11. 11. 動きのモデリング with Mindstorms 振舞いを表すモデル(1)  振舞いのモデル  システムやプログラムがどのような働きや動きをするのか を示すモデル  ステートマシン図(状態遷移図・表のなかま)、シーケン ス図、アクティビティ図などを使う  ステートマシン図  状態とイベントに着目して振舞いを整理する図  イベントを待っている場所を状態と捉える  イベントが発生(発火)したときに実行する処理がアクショ ン 2013/07/01 (C) 2013 Shin Kuboaki 11
  12. 12. 動きのモデリング with Mindstorms 振舞いを表すモデル(2)  状態の候補(1)  自分では起こせない事象を待つところ  外部からの通知待ち、タイムアウト待ちなど  状態の候補(2)  同じイベントに対する処理が異なる場合、状況を分ける 条件が状態の候補になる(モード)  コンポジット状態で表現する  複数の状態において同じイベントによって同じ状態、同じ 処理へ遷移する場合  コードにするときには工夫が必要 状態をチェックするテスト: 「何が起きるのを待っている ところですか?」と問う 2013/07/01 (C) 2013 Shin Kuboaki 12
  13. 13. 動きのモデリング with Mindstorms Porterクラスの「状態」と「イベント」を洗い出そう  使うもの  ポストイット  PROCKEYまたはマジック  作業手順  グループで作業する  状態をポストイットに書き出す  待っているイベントを考えて書き出す  ある状態の処理(アクション)を考えて書き出す  関連する状態とイベントとアクションを近くに寄せる イベント 状態A 状態B アクション 状態は… 自分で起こせない事象を待っている場所 同じ事象で異なる動作になる場所の区別 • Porterクラスのイベントは… • 関連しているクラスの操作に よって知ることができる • Porterクラスのアクションは… • 自分自身や関連しているクラ スの操作を呼び出すこと 2013/07/01 (C) 2013 Shin Kuboaki 13
  14. 14. 動きのモデリング with Mindstorms 動きをみてモデルに表す演習(1)  では、予め作成済みのシステムの動きを見てもらい ます  Mindstormsで作成したロボットを動かします  業務上の仕様は提供しませんので…  私が口頭で説明することばにも注意をはらいましょう  どんな動きか観測して、ポストイットにメモしましょう  状態、イベント、アクションが着目点です 2013/07/01 (C) 2013 Shin Kuboaki 14
  15. 15. 動きのモデリング with Mindstorms (口頭で説明した)自動搬送業務の図解 1)荷物を受け取るのを待つ 2)バンパが押されるこ とで運搬指示を受 け取ると、運搬を開 始する 配達先の壁 待機場所 3)経路に沿って 走行し、荷物 を運搬する 4)配達先の側壁を検 知すると停止する 車庫の壁 6)バンパが押されるこ とで階層指示を受 け取ると、階層を 開始する 6)経路に沿って 走行し、回送 する 7)車庫の正面の 壁を検知する と到着音を鳴 らして停止する 2013/07/01 (C) 2013 Shin Kuboaki 15 5)荷物が引き取られ るのを待つ
  16. 16. 動きのモデリング with Mindstorms 動きをみてモデルに表す演習(2)  グループに分かれて演習しましょう  システムの動きを動的モデルで表現しよう  観測したポストイットを集めましょう  話し合って、システムの動きを整理しましょう  模造紙にステートマシン図を作成します 2013/07/01 (C) 2013 Shin Kuboaki 16
  17. 17. 動きのモデリング with Mindstorms Porterクラスのステートマシン図を描こう  使うもの  前のページで作成したポストイット  模造紙  PROCKEYまたはマジック  作業手順  グループで作業する  模造紙に状態を配置する(状態名をつけるのは後でよい)  配置した状態の間に待っているイベントを配置する  状態と状態の間を状態遷移の線で描いて結ぶ  遷移にイベントを割り当てる  状態にアクションを寄り添わせる  「起きるのを待っていること」か「起きるの待つ間やり続けていること」をもと に状態名を決める まず、なにかが起きるのを 待っている場所を状態とし て認識し… イベントとアクションが決まっ てから状態名を決める 2013/07/01 (C) 2013 Shin Kuboaki 17
  18. 18. 動きのモデリング with Mindstorms … ステートマシン図をまとめている様子 荷物が載った 荷物受け取り待ち … …する 最初の状態を指し示 すラベル 最後の状態を指し示 すラベル ここが最初の状態 イベントの例 状態の例 アクションの例 状態遷移の例 … ここが最後の状態 2013/07/01 (C) 2013 Shin Kuboaki 18
  19. 19. 動きのモデリング with Mindstorms みなさんのモデル図を見てみましょう  Porterクラスには、どんな状態が見つかりましたか  Porterクラスには、どんなイベントやアクションが見つ かりましたか  状態、イベント、アクションは、区別がついていますか 2013/07/01 (C) 2013 Shin Kuboaki 19
  20. 20. 動きのモデリング with Mindstorms ステートマシン図の例 2013/07/01 (C) 2013 Shin Kuboaki 20
  21. 21. 動きのモデリング with Mindstorms モデルを見てロボットを動かす演習 2013/07/01 (C) 2013 Shin Kuboaki 21
  22. 22. 動きのモデリング with Mindstorms 仕様を変更します  グループごとに違う仕様の変更を指示します  変更に合わせてモデル図を修正しましょう  修正したモデルを自分たちで確認してみましょう  このあと、どんな演習をやったのかは、ナ・イ・ショ! 2013/07/01 (C) 2013 Shin Kuboaki 22
  23. 23. 動きのモデリング with Mindstorms まとめ  Mindstormsがあると、いろんな動くモノが制作できる  ロボットを使った業務のモデルを考えてみた  内部の構造を踏まえてモデルを見なおしてみた  与えられたモデルを見て業務やロボットの動きを考 えてみた  動くものがあると、状態モデルで考える練習ができる 2013/07/01 (C) 2013 Shin Kuboaki 23 今回はガマン。
  24. 24. 動きのモデリング with Mindstorms 分けたら名前がついた!  分けることができると…  分けたものに名前をつけることができる  名前があると、分けたものを使うことができる  名前をつけて使えれば、別の構造を作ることができる  (数学ガール5巻より) バンパPoter transport 2013/07/01 (C) 2013 Shin Kuboaki 24
  25. 25. 動きのモデリング with Mindstorms 手で書くときもモデルとコードの紐づけが重要  UMLモデルとプログラムを結びつける技術  UMLを使ったモデリングの技術  プログラミングの技術  上記2つの技術を結びつける部分が モデル変換に相当 モデリング プログラミング UMLを使う C言語を使う プログラムによる制御 両方を結びつける技術 モデル変換技術 結びつける技術がモデル変換。 手動のコーディングであれ、 自動変換であれ、結びつける方 法や知識を表出化し、コード作 成の技術を非属人化し再利用 可能にする。 2013/07/01 (C) 2013 Shin Kuboaki 25
  26. 26. 動きのモデリング with Mindstorms 参考資料 2013/07/01 (C) 2013 Shin Kuboaki 26
  27. 27. 動きのモデリング with Mindstorms オープンソースのMDDツール  BridgePointのUMLエディタ部をオープンソース化  Mentor Graphics社の発表(2012/04/18)  http://www.mentorg.co.jp/products/sm/news/2012/120417.html  Yakindu  オープンソースのMDDツールキット  http://www.yakindu.org/  ステートマシン図(MDD的)、ブロック線図(MBD的)  シミュレーション環境  JavaやCのコード生成 2013/07/01 (C) 2013 Shin Kuboaki 27
  28. 28. 動きのモデリング with Mindstorms YAKINDUのシミュレーション MDD_YAKINDU_Workbench.pdf より BAIKEM Netzwerktreffen “Embedded Systems” – Munich/Germany , July 12th 2011  BridgePointのベリファイアと同様のことが実行できる  MBDツールのブロック線図と同様のことができる 2013/07/01 (C) 2013 Shin Kuboaki 28
  29. 29. 動きのモデリング with Mindstorms 動きのモデリング with Mindstorms 久保秋 真(Shin Kuboaki) kuboaki@gmail.com ― おしまい ― 2013/07/01 (C) 2013 Shin Kuboaki 29

×