Search this site
Embedded Files
The Root Workshop
  • The Root WS HP
  • The Root WS HP-p1-bk
  • The Root WS p2
  • 04July2026
The Root Workshop
  • The Root WS HP
  • The Root WS HP-p1-bk
  • The Root WS p2
  • 04July2026
  • More
    • The Root WS HP
    • The Root WS HP-p1-bk
    • The Root WS p2
    • 04July2026

Get The Root Dancing!

■この[ サイト ]は、The Root ワークショップにご参加いただく方へ向けて記述させてただいております

このワークショップでは、このページを参照頂きながら進めてまいります

  • 閲覧したい項目がある場合は、この下に配置する目次をクリックすることで該当項目へ進むことができます

  • ページ内の用語の検索には、このページの右上隅にある虫眼鏡🔍アイコンをクリックして現れるテキストボックスをつかいます

  • あるいは同じ目的のために、Ctrl + F も使ってください

━━━目次━━━ ( 項目名をクリックするとその項目へ進みます )

━━━目次━━━ ( 項目名をクリックするとその項目へ進みます )
(0) はじめに
(1) 絵を描く機械の例
(2) Rootの接続と基本操作
(3)自由な曲線を描くことができるか?
(4)基本図形を利用して命令文を書く
(5) 自由制作 / 本番
(6) プログラム共有
(7) 本番プログラム一覧表
(8) Root Dance みんなのお気に入り一覧表
(9) このワークショップで体験したこと
(10) 特にお伝えしたいこと
(11) 参考
■ローカルSDKインストール
■ローカルSDKからサーバーサイドのファイルを参照する方法
■Rootファームウェアの手動アップデート

(0) はじめに


■Rootの動いた跡が、絵になります。いまからこのRootで何か描かせましょう。

このRootの動く姿をダンスに見立てて"Get The Root Dancing!"と呼んでみました


■つぎのようなことをしてみましょう

  1. 描くものを構想しましょう

  2. それを言語で表現しましょう。作文を書くということです。

  3. それを模擬実験(シミュレーション)しましょう

  4. そして、本番の実験として、Rootを使って描きましょう

  5. 他の人のプログラムを使ってみて、良いところを参考にして、また、それを自分好みに改造してみましょう。


■この工程(プロセス)を体験していくこと自体をこのワークショップの目的とします

  • サーバー(サーバーにある機能やデーター)

  • 通信(データーを送り、データーを受ける)

  • 用語、量の測り方など、作業のなかで気づいたことに注意を払いましょう。

(1) 絵を描く機械の例

▼直交するX軸とY軸の座標値へ、ペンを移動して絵を描く装置の例

Rootは、このプロッターの鉛筆の台座が、レールから離れて、走り出したようなものかな。

▼飛行機で絵を描く例

それでは、私たちも机の上に広げたホワイトボードに大きな絵を描いて行きましょう。

━━目次へ戻る━━

(2) Rootの接続と基本操作

  1. 描きたい絵を構想し文章にする(=軌道の記述)

  2. Rootの軌道を模擬実験(シミュレーション)で確認する

  3. 思い通りに動くように修正する

一緒に例題を操作しながらやりかたを説明していきます。

【例題1】

SAM Root SDK (SAM Labs Inc)を使ってみましょう。下のURLをクリックしてください。デフォルトのブラウザでSAM Root SDK が起動します。

まさ-(1)3角形3コマンド-R1

ファイル名は、「まさ-(1)3角形3コマンド-R1」です。

https://root.samlabs.com/#/code?prj=47G4L


通信状態により、落ち着いてゆっくり操作するほうが良いかもしれません。

ブラウザでは使い勝手が悪いときは、ローカル版を使うといいかもしれません。そのときは、末尾の5文字「47G4L」を指定してダウンロードしてください。以下同様に。

◎開発環境

  • 左側ペインは、文章を書く場所となっています。この例では、正3角形の軌道を書いてあります。

  • 左端にある▶ボタンを押すと模擬実験が起動します。

  • 右側ペインは、この文章を解析して見せる模擬実験のエリアになっています。

  • その中央にRootを真上から見た図形(スプライト)が配置されています。


  • 動作を停止するときは、■ボタンをクリックします。

  • 解析エリアの右下にあるリロード・アイコンをクリックすることで前回の解析結果を消去できます。

◎実装:Rootを動かす

Rootの上面の黄色の押しボタンスイッチを押し、電源をいれる

上記アイコンをたたいて、Rootと交信を開始する。このとき、複数台のRootの番号が表示されていたら、自分の使うRootに付いてる番号を選んでください。

▶を押すとプログラムがスタートする。

■を押してプログラムを終了する

黄色のスイッチを押して電源をきる


【とっさの止め方】

Rootを持ち上げて裏返せばとりあえず停止します。机上から転落させないようにしてください。大きくうごくプログラムの場合は、はじめから床で実験しましょう!



  • シミュレーションでは分からない不具合点が見つかることもあります。修正できることは直しましょう。

  • なぜシミュレーションでは分からない動作があるのでしょうか?

⇒例えば、車とホワイトボードの間の滑り量は表面状況により異なり事前に見積もることは難しいことです。この点が算入されていないようです。

その他の要因があるかも知れませんので注意して見てください。

【例題2】

次のURLをクリックして「まさ-(2)3角形繰り返し-R2」をご覧ください


https://root.samlabs.com/#/code?prj=DWXK6

まさ-(2)3角形繰り返し-R2

「3回繰り返す」ブロックコマンドを使い、命令文が短くなりました。

工学的、技術的な改善。今後はこちらの表現で行きましょう。

【例題3】

次のURLをクリックして「まさ-(3)3角形繰り返し-R2 」をご覧ください


https://root.samlabs.com/#/code?prj=NUH7M

まさ-(3)3角形繰り返し-R2

作品としての三角形が見やすくなる、人が好ましく感じるような工夫。

技術的、芸術的改善、あるいは、工業デザイン

【例題4】

次のURLをクリックして「まさ-(5)3角形操作性-R2 」をご覧ください


https://root.samlabs.com/#/code?prj=SN2ND

まさ-(5)3角形操作性-R2

黄色点滅により人の操作を促す。

芸術的改善、あるいは、ユーザー・インターフェース(UI)

これを実際にRootで実行して見ましょう。

接触センサーの操作はやさしくしてください。ルートの位置が変わるほどに押したり、ルートの軌道が動かないように軽く触ってください。

実験してみて、どう感じましたか。同じ三角形を描くだけでも、多少なり、ロボットとコミュニケーションした気になってもらえたら成功です。

■ここで一端Rootの電源スイッチを押して、shut down/遮断しておいてください。

━━目次へ戻る━━

(3)自由な曲線を描くことができるか?


  • 原画を線分に分け、座標をとるか、長さと角度をとる、偏角の変化率が少ないときは、線分を長くし、早く書き終えるようにする。

  • 描画点の記述には3つの方法が考えられます。

  1. 方程式:フィッテイングが難しいです。またこの開発環境では方程式の記述に時間を要します。引数は、GUIで一文字づつ選択しなければなりません。演算も遅いです。

  2. ベクトル:レベル1の単語で記述できます。引数は、GUIの選択式になります。『いどうする』move();

  3. 座標:レベル2の単語で記述できます。引数は、GUIで一文字づつ選択しなければなりません。『ナビをセットする』navigate_to();

「偏角と距離で自由曲線を描く」ボタンをクリックするか、その次のURLから模擬実験をしてみましょう。

偏角と距離で自由曲線を描く

https://root.samlabs.com/#/code?prj=VQPUQ

▲「P1からP2へ行く」ときは、点P1にて、「turn_right(θ)コマンド方向転換してからmove(L)コマンドでP2へ移動する」と書けば良い。方眼紙に自由曲線の絵を下書きし、そこから、それぞれの引数の測定を行えばできます。測定間隔が荒いとこのように角ばってしまいます。測定は簡単ではありません。さらに得られたデーター数値をGUIで入力しなければならず、効率が低いです

「ナビで自由曲線を描く」ボタンをクリックするか、その次のURLから模擬実験をしてみましょう。

ナビで自由曲線を描く

https://root.samlabs.com/#/code?prj=T2QJE


▲「P1からP2へ行く」ときは、点P1にて、『ナビをセットする』navigate_to(x, y)」のパラメーターとしてP2の座標を数値あるいは計算式を書けば良い。デフォルトの座標原点は起動点となっている。ナビ関数を使うときは、Rootを正しく中央に置き、方向をY軸に向けることが大切である。原点は任意の点で設定reset_navigation()することができる。


次の点までの距離を短くするうえでは、点の位置座標を変数にしておいて、その値を数式で現わす方法があります。

「変数や式を使う例」をクリックするか、次のURLから模擬実験をしてみましょう。

*模擬実験を動かすときは高速にしてください。

変数や式を使う例

https://root.samlabs.com/#/code?prj=4MCDE


そのほかに半径rの弧をθ度左向きに書く(arc-left)と右向きに書く(arc-right)関数があります。すべてのコマンドはイベントで起動されます。イベントには、

  • 開始(when-play)、

  • 衝突(when-bumped)、

  • 接触(when-touched)

があります。

これらを並べた「イベントでコマンドを起動する」をクリックするか、その次のURLから模擬実験をしてみましょう。

イベントでコマンドを起動する体験


https://root.samlabs.com/#/code?prj=52F5T



その他の関数一覧はこちらのボタンを押すと見えます。

*Root(コーディング環境)に備えられている機能の一覧

ここまでの事例から、この開発環境では、自由曲線を描くことはできるが、得策では無さそうと言えます。


━━目次へ戻る━━

(4)基本図形を利用して命令文を書く

描こうとする図案を変形して、基本図形で表現し、その図形の性質や方程式を利用して座標や偏角を求めて、それを用いて命令文を仕上げるほうがいいです。

ここで、基本図形とは、円、正多角形、直角2等辺三角形、平行四辺形など、その性質が明らかな図形といたします。

その事例として、「トランプの三つ葉マーク」を一緒に描いていきましょう。

▲微妙な曲線、複雑な構造から単純なものの規則正しい配列へ変形することを考える。

正三角形の頂点に円弧を3個描いて、三つ葉とし、円弧2本で枝とする方針で検討を開始する。

どうやって描くか A4サイズの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]

▲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に描かせて見ましょう。

三つ葉の部分を描いてみよう

https://root.samlabs.com/#/code?prj=FRP6F

ローカルツールを使っている場合は次の5文字のコードを使ってください

FRP6F


次に三つ葉の葉柄を2つの円弧で描くことを検討します。

▲点P4と点P5を結びます。点P6と点P5を結びます。∠OP4P5=∠OP6P5=45度となります。P4を中心とし、半径6cm、角度45度の円弧を描きます。P6を中心とし、半径6cm、角度45度の円弧を描きます。各円弧の終点を結んで、三つ葉の葉柄部とします。

この葉柄の部分の模擬実験をしましょう。

三つ葉の葉柄を書いてみよう!

https://root.samlabs.com/#/code?prj=VCJVN

ローカルツールを使っている場合は次の5文字のコードを使ってください

VCJVN

このプログラムに三つ葉の部分を追加して、トランプの三つ葉マークに仕上げていきましょう。

1) まず複製し、複製したもののファイル名を次のようにします

作者名+機能名+改版番号  (例:まさ-三つ葉-R1)

作者名は、下の名前の2文字とします。機能名は、「三つ葉」などとします。改版番号は、R1からはじめればいいでしょう。

2) 次にこの名前で保存したファイルを開きます。

そこに、さきほどの三つ葉の部分を追加します。別のウインドウで開くと見比べながら作業することもできそうです。

模擬実験をして、うまくいくまで繰り返してください。

3) そうして、トランプの三つ葉マークになりましたら、実際のRootに命令をだしましょう。もし違うようでしたら手直しを施してからまた実装テストをしてみましょう。

4) それができたら、人間とのUIを加えましょう。例えば、プログラムの開始で白く点灯、上面をタッチしたら、赤、描き終わったらまた白、退避完了で消灯。また、タッチしたらピッと鳴るのも加えましょう。

■誤差の蓄積を避ける工夫

Rootは車輪で位置を計測していますので、スリップすると、間違えて行きます。長く走り続けると間違えがたくさんになります。

これへの対応として、次のようなことが行われます。原点へ戻るところで、3分割します。途中で停止したら、原点へ手で戻して、再開します。

これを命令書にしたもの「m-葉p柄02」です。

https://root.samlabs.com/#/code?prj=FNGRU

模擬実験では、一括描画との差異は全く見えません。違いが判るのは、Rootに実装して実験して、その走行に誤差ある場合です。

このような工夫は、系統ごとの組み合わせを考えるシステム設計のときに行われるものです。科学的なことや新技術ではないにせよ、実際に機械などを運用する際には有効なものです。


葉部と柄部を分割して、原点復帰の時間を確保

━━目次へ戻る━━

(5) 自由制作 / 本番

要求仕様;

  1. 描画時間は、2分程度。(長く運転すると誤差が累積し、一貫性が保たれ無なくなります。簡略化)


  1. 描画サイズは、50cm四方以下。(折り畳み式ホワイトボードの大きさに収まるように描く)


  1. UIの工夫、工程を表示する。

  • プログラム起動スイッチ(▶)で黄色点灯、

  • 開始の発音、

  • タッチ操作で発音、赤点灯、描画開始、描画完了で赤から黄、退避完了で黄色消灯、

  • 終了の発音。


参考:トランプカードのマーク、日の丸の旗、などシンプルな線画を検討しましょう。

やり方:なるべく方眼紙で下書きをしましょう。結果的に早くまとまります。

━━目次へ戻る━━

(6) プログラム共有

完成したプログラムを参加者間で共有(=見たい人が見たいときに見える)ようにいたしましょう。

こちらでは共有の手順を一緒に見ていきます。

マイプロジェクト・表示アイコンを示す図

▲ マイプロジェクトアイコンをクリックします

3点リーダーを示す

▲ ファイルアイコンの3点リーダーをクリックします


▲ 現れたコンテキストメニューのアップロードをクリックします


▲ [URL]ボタンをクリックすると、URLがクリップボードへ保存されます

開発環境にて、そのプログラムのURLを取得し、下の表にファイル名や特徴とともに貼り付けてください。

URLは、打ちこまず、コピペしましょう。(手間をかけずに正確に入力できますので)

記入後、[ 送信 ]ボタンをクリックしてください。

この下に掲載されているフォームへURLをペーストします

ここで、このページの性質について意識いたしましょう。このページは無償のグーグルワークスペースにあり、このサイトはopenです。openとは公園の掲示板のように公開されているということです。

学校でもコンピューター画面を通して、情報の掲示と共有をしていると思いますが、そこでは、組織内で運営されるグループ・ウェアが用いられています。

この点が異なることに注意して、以下のフォームを使いましょう。

上の[送信]ボタンを押した後、下のリロードボタンを押してください。(定期更新をしていないため)

━━ 再読み込み / Reload the page ━━

このページでは、このように、書き込んだ情報を手動で送信し、そしてさらに、手動で最新の情報へ更新することを行わなければなりません。これもグループウェアで行われる授業とは異なります。

でもそのおかげで、端末とサーバーの間で交信することでこのような情報共有が成立していることが体感できますので、ご面倒ですが、ご協力ください。

(7) 本番プログラム一覧表

この下には、共有されたプログラムの一覧表が掲示されています。

プログラム名と特徴を見て興味を覚えたらそのURLをクリックして動作させてみましょう。

共有本題表

上記の一覧表に出ているプログラムを実行してみましょう。

好きなものを下記の欄に書いてください。取り入れたいところ、良いところを書いてください。

記入後、[ 送信 ]ボタンをクリックしてください。

他の参加者のプログラムも見えたら、そのURLをクリックして、手元の開発環境で中身を見てください。ローカルのアプリで作業を進めるときは、URLの末尾の5文字を記入することで、手元にダウウンロードすることができます。

━━ 再読み込み / Reload the page ━━

(8) Root Dance みんなのお気に入り一覧表

下に掲示する一覧表は、みなさんの評判の良かったRoot Danceです。まだ見ていないものはダウンロードして実行してみましょう。

お気に入り表

━━目次へ戻る━━

(9) このワークショップで体験したこと

フェルトペンを担いで走るRootと呼ばれるロボットで絵を描くという課題に取り組み、次のようなことを体験しました。

  • 描きたい絵を考えて、Rootがその絵のとおりに走るように文章を書きました。

  • その文章で思い通りにRootが走るか、模擬実験(開発段階のシミュレーション)を行った後、実際にRootを走らせて、絵が描けることを確認しました。

  • 他の参加者の作ったプログラムをダウンロードしたときも、模擬体験(利用段階のシミュレーション)を行い、そのおかげで間違いなく安心して使えました。

  • この開発環境をよりよくするためにはどのような改良をしたいですか?

      • キーボードイベントを取り込み、コマンドを起動したい。ジョグ動作が可能となる。

      • 折り畳みホワイトボードに基準マーク設けRootがそれを検出できること。位置カウンターの原点リセットを可能とする。

      • ナビ関数の動作の改善が必要。例えば、回転方向を右回りの1方向に決めたほうがよさそう。



  • これらの作業工程は、遠方にあるコンピューター(サーバー、日本語では器)にある機能や情報を使って実施できました。これができたのは、サーバーとの通信(データーを送り、データーを受ける)という機能がうまく稼働しているおかげです。データーの場所を統一的な書式で表現したものがURLです。URLで結び合った作業空間をハイパーテキスト空間と呼びます。URLの書式の先頭にあるhttpは、ハイパーテキスト通信手順の頭文字でこの通信手順の目印になっています。

    • たくさんの端末がサーバーに繋がろうとしています。それを順番に処理する機能を使いました。一台当たりの対応時間を短くすることで、みんなが長く待つことなくサービスを受けることができました。ただし、台数には限度があります。(アドレス数の制限、待ち時間の制限)

    • デジタル・データーは、多くのビットで構成されていますが、それを並列ではなく、直列にして通信する技術のおかげで端末が小さくなり、消費電力も少なくなりました。

例えば、十進数15は、2進数で1111と現わされます。一人1bitと演じていただきます。このデーターを教室の前から後ろまで移動するといたしましょう。4人がそのまま前を向いて、教室の後ろへ向けて同時に歩き始めたらどうでしょうか?幅をとり移動は困難です。4人がいったん一列縦隊で移動すれば狭いところを通ることができます。教室の後ろへ移動後、全員がこちらを向けば元の数を再現できます。

この過程をシリアル・パラレル変換といい、スペースと電力の節約ができます。

(10) 特にお伝えしたいこと

  • 新しいシステムを作るときには、これからやることを模擬実験してから作りましょう。

  • 新しいシステムを使うときには、模擬体験してから使いましょう。

  • ものごとに対するこのような取り組み姿勢をModel-based designと呼びます。

今後の皆様方のご活躍を期待しています。

━━目次へ戻る━━

(11) 参考

■ローカルSDKインストール

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

■ローカルSDKからサーバーサイドのファイルを参照する方法

▼ダウンロードアイコンをクリックします

▼5文字コードとして、YUCJSを入力

ソフトウエア開発環境

Rootに関する説明

Root(コーディング環境)に備えられている機能の一覧

■Rootファームウェアの手動アップデート

https://answers.irobot.com/ja/article/?urlName=27084

通常、iRobot Coding アプリはロボット上で動作しているファームウェアのバージョンを検出し、必要に応じてアップデートを促します。もし表示されない場合は、以下の手順を完了することでロボットを手動でアップデートすることができます:

ロボットの黄色いボタン(「ノーズ(鼻)」と呼びます)をLEDライトが消えるまで3秒間長押しして、ロボットの電源を切ります。

ロボットの電源が完全に切れたことを確認するため、10秒間待ちます。

左右両方のバンパーを押し下げます。

両方のバンパーを押したまま、ロボットの黄色いボタン(ロボットの 「ノーズ(鼻)」)を10秒間、またはロボットのLEDライトが青く点滅し始めるまで押し続けます(青く点滅するのは 「アップデート 」モードであることを示します)。

ChromeやEdgeなどのWeb Bluetooth対応ブラウザを使用して、Webアップデーターページに移動します。

「ペア」ボタンを押して、接続リストから  "ROOT BOOT " ロボットを選択します。このページでは、接続オプションとして「アップデート」モードのデバイスのみが表示されます。

「アップデート」ボタンを押し、アップデートが完了するまで待ちます。

━━目次へ戻る━━

Get The Root Dancing! The Root Workshop

制作:2025年5月4日 経堂ICT同好会

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse