■この[ サイト ]は、The Root ワークショップにご参加いただく方へ向けて記述させてただいております
このワークショップでは、このページを参照頂きながら進めてまいります
閲覧したい項目がある場合は、この下に配置する目次をクリックすることで該当項目へ進むことができます
ページ内の用語の検索には、このページの右上隅にある虫眼鏡🔍アイコンをクリックして現れるテキストボックスをつかいます
あるいは同じ目的のために、Ctrl + F も使ってください
■Rootの動いた跡が、絵になります。いまからこのRootで何か描かせましょう。
このRootの動く姿をダンスに見立てて"Get The Root Dancing!"と呼んでみました
■つぎのようなことをしてみましょう
描くものを構想しましょう
それを言語で表現しましょう。作文を書くということです。
それを模擬実験(シミュレーション)しましょう
そして、本番の実験として、Rootを使って描きましょう
他の人のプログラムを使ってみて、良いところを参考にして、また、それを自分好みに改造してみましょう。
■この工程(プロセス)を体験していくこと自体をこのワークショップの目的とします
サーバー(サーバーにある機能やデーター)
通信(データーを送り、データーを受ける)
用語、量の測り方など、作業のなかで気づいたことに注意を払いましょう。
▼直交するX軸とY軸の座標値へペンを移動して絵を描く装置の例
plotter : vector scan / 直角三角形ならば2辺で一意に決まる
printer : raster scan
▼飛行機の軌跡で絵を描く例
2つの絵を描く方法を見ました。ここではRootを使います。 vector scan
*この機構違いと誤差の要因を後で検討しょう。
描きたい絵を構想し文章にする(=軌道の記述)
Rootの軌道を模擬実験(シミュレーション)で確認する
思い通りに動くように修正する
一緒に例題を操作しながらやりかたを説明していきます。
SAM Root SDK (SAM Labs Inc)を使ってみましょう。
下のボタンをクリックすると、。
SAM Root SDKで、「まさ正方形R2」(FRUGP)が開きます。
◎開発環境
左側ペインは、文章を書く場所となっています。この例では、正3角形の軌道を書いてあります。
左端にある▶ボタンを押すと模擬実験が起動します。
右側ペインは、この文章を解析して見せる模擬実験のエリアになっています。
その中央にRootを真上から見た図形(スプライト)が配置されています。
動作を停止するときは、■ボタンをクリックします。
解析エリアの右下にあるリロード・アイコンをクリックすることで前回の解析結果を消去できます。
◎実装:Rootを動かす
Rootの上面の黄色の押しボタンスイッチを押し、電源をいれる
上記アイコンをたたいて、Rootと交信を開始する。このとき、複数台のRootの番号が表示されていたら、自分の使うRootに付いてる番号を選んでください。
▶を押すとプログラムがスタートする。
■を押してプログラムを終了する
黄色のスイッチを押して電源をきる
【とっさの止め方】
Rootを持ち上げて裏返せばとりあえず停止します。机上から転落させないようにしてください。大きくうごくプログラムの場合は、はじめから床で実験しましょう!
シミュレーションでは分からない不具合点が見つかることもあります。修正できることは直しましょう。
なぜシミュレーションでは分からない動作があるのでしょうか?
⇒例えば、車とホワイトボードの間の滑り量は表面状況により異なり事前に見積もることは難しいことです。この点が算入されていないようです。
その他の要因があるかも知れませんので注意して見てください。
◎ファイルを複製して命名:作者名+機能名+改版名
マイプロジェクトアイコンをクリックする
ダウンロードしたファイルの3点リーダーをクリックして登場するコンテクストメニューからふくせいを選ぶ
複製したファイルの名前を次の通り変更する。
作者名+機能名+改版名
ここでの作者名は、下のなまえの2文字をかなで書いてください(例:まさ正方形R1)。
この文章を変更してみましょう。
正方形を描く文章とする。
シミュレーションを実行して、確認する。不具合あれば修正する。
もっと機能を追加したり、変更しても構わない。例:開始イベント追加、黄色点灯、開始の発音、描画中は、赤色点灯、終了の発音
完成したプログラムを参加者間で共有(=見たい人が見たいときに見える)ようにいたしましょう。
こちらでは共有の手順を一緒に見ていきます。
▲ マイプロジェクトアイコンをクリックします
▲ ファイルアイコンの3点リーダーをクリックします
▲ 現れたコンテキストメニューのアップロードをクリックします
▲ [URL]ボタンをクリックすると、URLがクリップボードへ保存されます
この下に掲載されているフォームへURLをペーストします
ここで、このページの性質について意識いたしましょう。このページは無償のグーグルワークスペースにあり、このサイトはopenです。openとは公園の掲示板のように公開されているということです。
学校でもコンピューター画面を通して、情報の掲示と共有をしていると思いますが、そこでは、組織内で運営されるグループ・ウェアが用いられています。
この点が異なることに注意して、以下のフォームを使いましょう。」
フォームの送信ボタンをクリックします。
次に、このページを更新します。
このページでは、このように、書き込んだ情報を手動で送信し、そしてさらに、手動で最新の情報へ更新することを行わなければなりません。これもグループウェアで行われる授業とは異なります。
でもそのおかげで、端末とサーバーの間で交信することでこのような情報共有が成立していることが体感できますので、ご面倒ですが、ご協力ください。
この下のスプレッドシートに共有されたプログラムの一覧表が表示されています。
自分の作成したプログラムが正しく掲示されているのを見ておきましょう。
他の参加者のプログラムも見えたら、そのURLをクリックして、手元の開発環境で中身を見てください。ローカルのアプリで作業を進めるときは、URLの末尾の5文字を記入することで、手元にダウウンロードすることができます。
模擬実験を実行して動くことを確認しましょう。
このプログラムを改造して見ようとおもったら、まず複製し、複製したもののファイル名を次のようにします
作者名+機能名+改版番号
そのうえで、この名前のファイルを開き、改造を進めましょう。
ここまでが例題を用いたプログラム作成から共有までのプロセスの説明でした。
このあと、自分の作品を制作しましょう。
それでは、ここから自分で構想した図をRootに描かせましょう。ブランクからでも引用からでも構いません。
この後、本番の制作にあたり、サーバーサイドのSDKでレスポンスが良くない場合は、ローカルにSDKをインストールすることで回避できます。必要なら、この後のローカルSDKインストールの項をご覧ください。ただし、Windowsの利用者はこのままサーバーサイドのSDKを使いましょう。その場合は、通信オーバー・ヘッドを考慮してゆっくりと着実な操作をいたしましょう。
トランプのマークはいかが?
なんでも好きな絵を描いても良いです。その思いついた絵を どうやって描くか A4サイズの1mm方眼紙にに 下書き をしながら考えましょう。限られた時間内で完成しなければなりませんので、簡単な線画で検討してください。自由曲線は、区分線形化をすることで記述可能ですが、多くの時間がかかります。三角形や四角、円弧など図形の一部を当てはめると記述しやすくなります。
方眼紙には1mmごとに格子状に線が印刷されています。
左から9cm、下から14cm、に×印を書きます。ここのそばにO(0,0)と書きます。点Oの右4cmに×を書きます。その右4cmに×を書きます。Oの左4cmに×を書きます。その左4cmに×を書きます。Oの上4cmに×を書きます。その上4cmに×を書きます。Oの下4cmに×を書きます。その下4cmに×を書きます。これがホワイトボードの16cmの仕切りに相当すると考えると見やすくなるでしょう。
このような格子のもとで下書きした図の縮尺は1/4となります。Rootへの命令文を書くときにこの縮尺を反映してください。
▲下書き用の方眼紙の使い方。描画可能範囲50cm x 50cm、縮尺1/4 単位[cm]
原画を線分に分け、座標をとるか、長さと角度をとる、偏角の変化率が少ないときは、線分を長くし、早く書き終えるようにする。
描画点の記述には3つの方法が考えられます。
方程式:フィッテイングが難しいです。またこの開発環境では方程式の記述に時間を要します。引数は、GUIで一文字づつ選択しなければなりません。演算も遅いです。
ベクトル:レベル1の単語で記述できます。引数は、GUIの選択式になります。『いどうする』move();
座標:レベル2の単語で記述できます。引数は、GUIで一文字づつ選択しなければなりません。『ナビをセットする』navigate_to();
▲「P1からP2へ行く」ときは、点P1にて、「turn_right(θ)コマンド方向転換してからmove(L)コマンドでP2へ移動する」と書けば良い。
▲「P1からP2へ行く」ときは、点P1にて、『ナビをセットする』navigate_to(x, y)」のパラメーターとしてP2の座標を数値あるいは計算式を書けば良い。デフォルトの座標原点は起動点となっている。ナビ関数を使うときは、Rootを正しく中央に置き、方向をY軸に向けることが大切である。原点は任意の点で設定reset_navigation()することができる。
各パラメータには変数を使うことができます。
コマンドはイベントで起動されます
そのほかに半径rの弧をθ度左向きに書く(arc-left)と右向きに書く(arc-right)関数があります。
その他の関数一覧なこちら
Windows以外の端末をご利用の場合は、サーバーサイドのSDKではなく、端末側にSDKをインストールすることができます。
下記のリンクからローカル版をダウンロードし、インストールしてください。
for Android
https://play.google.com/store/apps/details?id=com.rootrobotics.rootcoding&hl=ja
for iphone
https://apps.apple.com/jp/app/sam-root/id1524652548?platform=iphone
for ipad
https://apps.apple.com/jp/app/sam-root/id1524652548?platform=ipad
▼ダウンロードアイコンをクリックします
▼5文字コードとして、YUCJSを入力
▲微妙な曲線、複雑な構造から単純なものの規則正しい配列へ変形することを考える。
正三角形の頂点に円弧を3個描いて、三つ葉とし、円弧2本で枝とする方針で検討を開始する。
▲P1に針を置き、P2までの距離を半径とする円弧を約1/4描く。P2に針を置き、P1までの距離を半径とする1/4円を描く。円弧の交点をP3とする。P1P2=P1P3、P2P1=P2P3。従って、P1P2=P2P3=P3P1。
三角形P1P2P3の内側の角は何度ですか?分度器で測ってみましょう。
分度器の中心をP1に合わせます。線分P1p2を基準線に合わせます。線分P1P3が示す角度を読みます。 … 60度
それでは、三角形P1P2P3の外側の角度は何度ですか。まず三角形P1P2P3の外角を同様に測ります。次に平角180度を足します。 … 120度 + 180度 = 300度
▲正三角形の頂点に半径2cm、300度の円弧を描くと、三つ葉に見立てることができそうです。
トランプの三つ葉マークにはなっていませんが、この三つ葉の部分だけRootに描かせて見ましょう。
ローカルツールを使っている場合は次の5文字のコードを使ってください
FRP6F
次に三つ葉の葉柄を2つの円弧で描くことを検討します。
▲点P4と点P5を結びます。点P6と点P5を結びます。∠OP4P5=∠OP6P5=45度となります。P4を中心とし、半径6cm、角度45度の円弧を描きます。P6を中心とし、半径6cm、角度45度の円弧を描きます。各円弧の終点を結んで、三つ葉の葉柄部とします。
トランプの三つ葉マークにはなっていませんが、この葉柄の部分だけRootに描かせて見ましょう。
ローカルツールを使っている場合は次の5文字のコードを使ってください
VCJVN
■このプログラムに三つ葉の部分を追加して、トランプの三つ葉マークに仕上げていきましょう。
1) まず複製し、複製したもののファイル名を次のようにします
作者名+機能名+改版番号
作者名は、出席番号(1番のひとは01)とします。機能名は、「三つ葉マーク」などとします。改版番号は、01からはじめればいいでしょう。
2) 次にこの名前で保存したファイルを開きます。
そこに、さきほどの三つ葉の部分を追加します。別のウインドウで開くと見比べながら作業することもできそうです。
模擬実験をして、うまくいくまで繰り返してください。
3) そうして、トランプの三つ葉マークになりましたら、実際のRootに命令をだしましょう。
もし違うようでしたら手直しを施してからまた実装テストをしてみましょう。
4) それができたら、人間とのUIを加えましょう。例えば、プログラムの開始で白く点灯、上面をタッチしたら、赤、描き終わったらまた白、退避完了で消灯。また、タッチしたらピッと鳴るのも加えましょう。
5) 完成したら、共有してください。
ここは、自由制作の時間となります。
要求仕様;
描画時間は、2分程度。(長く運転すると誤差が累積し、一貫性が保たれ無なくなります。簡略化)
描画サイズは、50cm四方以下。(折り畳み式ホワイトボードの大きさに収まるように描く)
UIの工夫、工程を表示する。
プログラム起動スイッチ(▶)で黄色点灯、
開始の発音、
タッチ操作で発音、赤点灯、描画開始、描画完了で赤から黄、退避完了で黄色消灯、
終了の発音。
うまくできあがったら共有しましょう。開発環境にて、そのプログラムのURLを取得し、下の表にファイル名や特徴とともに貼り付けてください。
URLは、打ちこまず、コピペしましょう。(手間をかけずに正確に入力できますので)
記入後、[ 送信 ]ボタンをクリックしてください。
上の[送信]ボタンを押した後、下のリロードボタンを押してください。(定期更新をしていないため)
この下には、共有されたプログラムの一覧表が掲示されています。
プログラム名と特徴を見て興味を覚えたらそのURLをクリックして動作させてみましょう。
上記の一覧表に出ているプログラムを実行してみましょう。
好きなものを下記の欄に書いてください。取り入れたいところ、良いところを書いてください。
記入後、[ 送信 ]ボタンをクリックしてください。
Rootが動き回って絵を描きます。その姿をダンスに見立てて"Get The Root Dancing!"と呼んでみました
下に掲示する一覧表は、みなさんの評判の良かったRoot Danceです。まだ見ていないものはダウンロードして実行してみましょう。
フェルトペンを担いで走るRootと呼ばれるロボットで絵を描くという課題に取り組み、次のようなことを体験しました。
描きたい絵を考えて、Rootがその絵のとおりに走るように文章を書きました。
その文章で思い通りにRootが走るか、模擬実験(開発段階のシミュレーション)を行った後、実際にRootを走らせて、絵が描けることを確認しました。
他の参加者の作ったプログラムをダウンロードしたときも、模擬体験(利用段階のシミュレーション)を行い、そのおかげで間違いなく安心して使えました。
この開発環境をよりよくするためにはどのような改良をしたいですか?
キーボードイベントを取り込み、コマンドを起動したい。ジョグ動作が可能となる。
折り畳みホワイトボードに基準マーク設けRootがそれを検出できること。位置カウンターの原点リセットを可能とする。
ナビ関数の動作の改善が必要。例えば、回転方向を右回りの1方向に決めたほうがよさそう。
これらの作業工程は、遠方にあるコンピューター(サーバー、日本語では器)にある機能や情報を使って実施できました。これができたのは、サーバーとの通信(データーを送り、データーを受ける)という機能がうまく稼働しているおかげです。データーの場所を統一的な書式で表現したものがURLです。URLで結び合った作業空間をハイパーテキスト空間と呼びます。URLの書式の先頭にあるhttpは、ハイパーテキスト通信手順の頭文字でこの通信手順の目印になっています。
たくさんの端末がサーバーに繋がろうとしています。それを順番に処理する機能を使いました。一台当たりの対応時間を短くすることで、みんなが長く待つことなくサービスを受けることができました。ただし、台数には限度があります。(アドレス数の制限、待ち時間の制限)
デジタル・データーは、多くのビットで構成されていますが、それを並列ではなく、直列にして通信する技術のおかげで端末が小さくなり、消費電力も少なくなりました。
例えば、十進数15は、2進数で1111と現わされます。一人1bitと演じていただきます。このデーターを教室の前から後ろまで移動するといたしましょう。4人がそのまま前を向いて、教室の後ろへ向けて同時に歩き始めたらどうでしょうか?幅をとり移動は困難です。4人がいったん一列縦隊で移動すれば狭いところを通ることができます。教室の後ろへ移動後、全員がこちらを向けば元の数を再現できます。
この過程をシリアル・パラレル変換といい、スペースと電力の節約ができます。
新しいシステムを作るときには、これからやることを模擬実験してから作りましょう。
新しいシステムを使うときには、模擬体験してから使いましょう。
ものごとに対するこのような取り組み姿勢をModel-based designと呼びます。
今後の皆様方のご活躍を期待しています。
https://answers.irobot.com/ja/article/?urlName=27084
通常、iRobot Coding アプリはロボット上で動作しているファームウェアのバージョンを検出し、必要に応じてアップデートを促します。もし表示されない場合は、以下の手順を完了することでロボットを手動でアップデートすることができます:
ロボットの黄色いボタン(「ノーズ(鼻)」と呼びます)をLEDライトが消えるまで3秒間長押しして、ロボットの電源を切ります。
ロボットの電源が完全に切れたことを確認するため、10秒間待ちます。
左右両方のバンパーを押し下げます。
両方のバンパーを押したまま、ロボットの黄色いボタン(ロボットの 「ノーズ(鼻)」)を10秒間、またはロボットのLEDライトが青く点滅し始めるまで押し続けます(青く点滅するのは 「アップデート 」モードであることを示します)。
ChromeやEdgeなどのWeb Bluetooth対応ブラウザを使用して、Webアップデーターページに移動します。
「ペア」ボタンを押して、接続リストから "ROOT BOOT " ロボットを選択します。このページでは、接続オプションとして「アップデート」モードのデバイスのみが表示されます。
「アップデート」ボタンを押し、アップデートが完了するまで待ちます。