2022年2月28日月曜日

2022年2月報

1.2月授業内容
2.2月の課題
3.1月の解答
4.今後の授業スケジュール
5.お知らせ


1. 2月授業内容


1.0 <スタートアップ(全コース)>


 割愛します。


1.1 <プライマリーコース『ロボドーザー』>


 割愛します。

1.2 <ベーシックコース『クルクルクリエイター』>


 第4回アイデアコンテスト全国大会(2014年)ベーシックコース最優秀賞作品「御家紋(ごかもん)くん」(当時小2)がベースの、自動お絵かきマシンです。

このアイデアは凄(すご)いですね。そして難(むずか)しいですね。
作るのも、動かすのも、アドバンスコース、いや、それ以上かもしれません(*1)。
詳(くわ)しい原理は難しすぎるので、「いっそベーシックコースで、深く考えずに、いろいろ試(ため)して遊びましょう」といった感じです。

 単純なギアの回転運動(*2)から、コースター紙にずいぶんと複雑な模様(もよう)を描(か)けるもんだな、と思いましたか?
そうです、それは大事な発見です(*3)。

しかも、下記を変えることで、また模様が変わります。
A) 回転するギアLとギアM3枚のペグ穴のうち、どこに2個のペグSを挿(さ)すか
B) ペンホルダーのロッド15アナとロッド9アナのどこに2個のペグSを挿(さ)すか

A)では、主に模様が変わります。B)では、主に大きさが変わります。

回転台を回らなくする改造(テキストp.25)で、ペン先の軌跡(きせき)が見えてきますが、これだけでは面白くないですね。
ペン先を回すのとは違うタイミングで台紙を回転させることで、複雑な模様が表れているのです。


 模様が複雑すぎて美しくないと思う場合は、ペン先の動きをもっと単純化しましょう。
ペン先の動きが複雑なのは、ギアLとギアMの回転数が異(こと)なり、2個のペグSが異なるタイミングで回るからです。
ギアMへ回転を伝える中間のギアLを外して、ギアMを回転しないよう固定すると、よりシンプルな幾何学(きかがく)模様になります(*4)。

ペン先が一度描いた軌跡に戻(もど)ったら(*5)、ペンの色と、A)B) を変えて、また描きます(*6)。
この方が綺麗(きれい)ですね。オリジナルのコースターを描いて、家族や友達にプレゼントしましょう。細い油性ペンがいいよ(*7)。


*1 どんな模様になるかを予想するのは、高校生でも、大学生でも、大人でも(先生でも)超難しいです。

*2 本当に大事なのは、ギア上に留(と)めたペグの周回運動をリンク棒(ロッド)で取り出していることです。

*3 単純な動作でも、たくさん組み合わせると、複雑な処理や現象が実現します。
 神経細胞が集まって脳を形作るように、電卓やコンピュータも、「~の反対!(NOT)」と「両方ともON?(AND)」のたった2種類の信号処理部品を組み合わせて作ることができます。
 だから、この世の地形や現象、人間の行動さえも、単純な法則の組合せで成り立っているとする研究があり、今も続いています。

*4 このとき、ペン先の動きは単なる楕円(だえん)形になります。

*5 回転数の比は、元々、回転台:ギアL:ギアM = 1/5:1/3:5/9 = 9:15:25 なので、コースター紙が9回転して元の軌跡に戻ります。
 ギアMを留(と)めて単純化すると、回転台:ギアL = 1/5:1/3 = 3:5 なので、コースター紙が3回転して元に戻る間にギアL(ペン先)が5回転するので、5枚の花びら模様が表れます。

*6 一度ペンを外して、ギアL上のペグ穴を4ヶ所90°ずつ変えて(回転台の54°空回しに相当)また描くだけでも、模様が重なっていい感じになります。

*7 細い線の方が、模様が緻密(ちみつ)な感じになります。
 また、水性ペンだと、コップの水分で滲(にじ)んでしまい、コースターとして使えません。


1.3 <ミドルコース『クルクルメリーゴーランド』>


 遊園地アトラクションの代表格、メリーゴーランド、いいですね。
英語的に正しくは「メリー・ゴー・ラウンド」、日本語では「回転木馬」とも言います。
ヨーロッパでは、蒸気機関の時代から親しまれてきました。
華(はな)やかに回る光景に大人も癒(いや)される、何ともノスタルジックな遊具です。

 機械の内部は見たことがなくても、経験からステージの回転馬の上下運動がリンクしていることは分かるでしょう。
およそ唯一(ゆいいつ)の回転動力源を利用した、アナログな機械だと予測がつきます。

ロボットを製作する上で、「実物に沿(そ)った構造か?」は大事ではなく、
「モーター動力を種々の回転運動や上下運動に分配するにはどういう方法があるか?」
を考えるきっかけにできれば良いと思います。

 先ず、地面に寝かせたタイヤLの中心にモーター軸シャフトを挿(さ)して、中央の回転塔を直立させます。
スイッチを入れると、タイヤLを固定脚にして、回転塔(モーター本体)がゆっくり回りますので、これをステージ中央の穴に挿すことで、ステージも一体化して回ります(*1)。

すると、そのステージの回転を支える円周上配置のタイヤS4輪が回り、各タイヤSの回転がステージ上の小物を動かします(*2)。

タイヤの回転が動力源に再利用されているわけで、シャフトやギヤの連結だけが動力伝達手段ではないことを語っています。

 また、ステージ上の小物は、タイヤSの回転から、次のようなバリエーション豊かな運動を実現しています。

・椅子  … マイタギア(傘歯車)で軸方向を水平→垂直変換して回転
・馬1, 鳥 … ロッド3アナによるカム作用(*3)で上下
・馬2   … その両方による間欠回転

 これらの運動は全て、タイヤSの回転を通して、間接的にモーターの負荷(ふか)となりますが、回転塔内にコンパクトに収めた3段3:1減速ギヤボックス(1/3×1/3×1/3=1/27)が十分な回転トルクを出しますので、力不足の問題はありません。

小物やステージがスムーズに動かない(カクカク動く)場合は、下記の摩擦力に注意します。

・ステージが回らない ⇒ 中央のタイヤLがしっかり接地し(摩擦:)、ステージ下のタイヤSが軽く回る(摩擦:)よう調整

・小物が動かない ⇒ 直下のタイヤSを手で回してみて、小物の支柱がスムーズに上下/回転する(摩擦:)よう調整

 優美さを演出するにも、突き詰めれば考察ポイントの多いことが分かるテーマでした。
ちょっと、メリーゴーランドに乗りたくなったでしょ?(先生も…)


*1 だから、ステージ中央の穴に挿してタイヤLが浮くようならダメですね。

*2 実物では、回転ステージ下の狭い空間ではなく、天井のクランクから馬の支柱を吊り下げていることが多いようです。

*3 回転部品(ロッド3アナ)の外形をなぞるジョイント部(シャフトと先端のマイタギア)が生む、周期的な往復運動を利用したリンク作用


1.4 <アドバンスコース『ピッキングロボ①』>


 《下記を参照下さい》
  http://robocobo.sakura.ne.jp/blog/robot/adv1-1802.pdf

1.5 <プロ1年目コース『不思議アイテムI-2②』>


 センサー類を駆使する、冬タームの2ヶ月目です。

 1日目のテーマは、「ベースロボットの組み立て」です。
何のことはない、左右両輪(2モーター)を独立駆動して、前進・後退・左右旋回を自在にこなす土台のロボットを製作します(*1)。

戦車型ラジコンプログラム[Tank]を転送して操縦したり、時間制御プログラムで決まったコース(円・四角・8の字など)を自動的に走らせることはできますが、まだセンサー類が無いので、外界からの入力情報を基に考える”ことはできません

 2日目のテーマが、「カラーセンサーロボット」です。

 その1つ目は、「ライントレーサー」です。
カラーセンサーを下向きに取り付け、地面の明暗(白黒)情報だけを処理し、黒いライン(の縁)をたどるロボット[Tracer]に仕立てます。
「白なら右へ、黒なら左へ」旋回するように片輪を交互に駆動する制御方式は、アドバンスコースのテクニカルコンテストと同じですね。

マイコンが認識する明度(明るさの数値)は、環境光反射率はもちろん、センサーの個体差電源電圧(*2)にも左右されるため、各々のロボットで閾(しきい)値 colorIsBlack(1000) を変更する必要がありました(*3)。

 2つ目は、「カラートレーサー」です。
カラーセンサーをヘッドライトのように前向きに取り付け、前方景色の色相(色味)情報だけ(*4)を処理し、特定の色に向かうロボット[ColorTracer]に仕立てます。

サンプルプログラム中、色相 h を使って“if(h>180 && h<270) {前進せよ;} else {停止せよ;}”となっています。
これは、数学的には 180°<h<270°のことで、色相環(テキスト第2回p.16, 第4回p.15)で確かめると“”ですね。
”なら“if(h>60 && h<150) …”くらいでしょうか。

”は難しいです。2つの変域 0°≦h<30°, 300°<h<360°がありますので、“もし(hが0以上 かつ hが30未満)または(hが300超 かつ hが360未満)ならば”のように論理的に記述しなければなりません。
if( (h>0 && h<30) || (h>300 && h<360) ) …”となります(*5)。

走り方(タイミング、スピード、軌跡など)に変化をもたせて、好きな色を見ると近づいて行く愛らしいロボット(闘牛?)に仕上げてみましょう。
鳴く”と面白そうですね。

 最終月は、「ウルトラソニックロボット」で今タームを仕上げます。


*1 これだけで普通の自動車(1エンジン)を遥かに凌駕する自由度を獲得できるのですから、将来は電気自動車に替わっていくわけです。

*2 パソコンからのUSB給電の場合と、電池駆動とで数値が変わるという…盲点があります。

*3 よりスマートに、調整用プログラム[ColorSensor2]実行中、Arduino“シリアルモニタ”を起動し、USBケーブル経由で白地と黒ライン上の数値をモニタリングし、その中間値を閾値として設定することもできます。

*4 1ドットカメラなので、人間なら瞼(まぶた)を瞑(つむ)ったまま外光の色を感じるようなものです。

*5 論理積(AND)演算子 && は、論理和(OR)演算子 || より優先順位が高い(先に演算される)ので、“if(h>0&&h<30||h>300&&h<360)…”と続けて書いてもOKですし、h=0~359の値しか取らないので、実は“if(h<30 || h>300)…”だけでもOKです。


1.6 <プロ2年目コース『倒立振子ロボット②』>


 倒立振子? 2ヶ月目ですが、まだまだ、もったいぶりますよ。
自転車のムラタセイサク君(2005年)や、一輪車のムラタセイコちゃん(2008年)が誇らしげにCMに登場してからまだ十余年、ホットな技術なのです。順を追いましょう。

 1ヶ月目で、チップに集積された3種の姿勢センサーのうち、加速度センサー角速度センサーの機能を学びました。
今月の1日目は、残りの磁気センサーで遊びました。

 磁気センサーの面白いところは、ロボットに目や耳(カラーセンサーや超音波センサー)が無くても地磁気を検出して方角が分かることです。
地球上には重力もありますので、加速度センサーで“鉛直下向き”は分かりますが、水平方向は区別が付きません。
角速度センサーを使った積分プログラムにより、どれだけ回転したかが分かりましたが、累積誤差がつきもので次第にずれが拡大していくことと、そもそも初期状態(例えば北向き)は与えてやらねば方角が分からない欠点がありました。

その点、地磁気ならば、いつ、どこで、どんな姿勢で電源を入れても、立ちどころに北が分かります。
先の2センサー同様、3軸(XYZ)検知できますので、姿勢(傾き)までも分かるのです(*1)。
一見万能で、他のセンサーは不要のように聞こえますが、精度がイマイチ低いのです。
方位磁石でご存知の通り、磁場の揺らぎや場所により、微妙に異なる方角を指します(*2)。

コンパス程度の用途なら構いませんが、曲芸を披露するには不十分でしょう。
瞬間的な姿勢変化への追従は、加速度・角速度センサーの方が格段に優れていますので、こちらをメインに用いながら、地磁気センサーやGPSで長時間的な補正を掛けていくナビゲーションシステムのような利用法が適しています。

 さて、ここまでの出力手段は、LEDマトリクスや7セグへの“表示”だけでしたが、「感じて、考えて、動く」のがロボットです。運動能力を与えましょう。

少ないハードでも、高い自由度で動き回れるロボットの形態と言えば、3輪のオムニホイールロボットですね。
2日目にこれを組み立て、マイコンボード、I/Fシールドに姿勢検出シールドを搭載します。

動くと、やはり面白いことになります。
どういう向きに置き直してもクルッと回って北の方角を向きたがる奴[MagCtrlOmni/2]とか、磁石に付いて行こうとする奴[MagCtrlOmni3]とか、どうしても我々人間の目には生命感が映ります。

 ここで、「向きを検知して表示するのもモーターを回すのも同じようにできるけど、やっぱり動いた方が面白いよね!」と実感することだけが目的ではありません。
出力先がディスプレイなら、処理結果を送るだけで、ちゃんと表示されたかどうかなど調べる必要はありませんが、
物体の運動には様々な外乱要因が加わりますので、「あるべき状態(目標値)」と「今の状態(現在値)」にズレが生じることを前提にしなければ、高精度な制御はできません。

このズレを最小化するよう頑張り続ける方式を“フィードバック制御”と呼びます。
片や、決められた手順や時間・回数分だけ逐次実行して、結果を省みない無責任な処理方式を“シーケンス制御”と呼びます。
タッチセンサーやボタンの押下状態(1ビット=2値)を調べて条件分岐するくらいでは、とてもフィードバック制御と言えません。

身の回りの製品では、
シーケンス制御 … 目覚まし時計、炊飯器、洗濯機、リモコン(高機能品を除く)
フィードバック制御 … エアコン、給湯器、CD/DVDプレーヤ、車の自動ブレーキ(*3)

など、やはり賢そうな機械ほどフィードバック制御が多用されています。

 北を向くだけのプログラム[MagCtrlOmni*]では、北を0°として扱いますので、方角のズレ(±)の角度分だけモーターを正逆回転させれば、強弱の効いた滑らかなフィードバック制御が(たまたま)実現しましたが、
これを、わずかな方角のズレでも素早く戻すようモーターを強力に駆動すると、振り子のように振動してしまい、いつまでも目標値に収束(しゅうそく)しなくなります(*4)。

つまり、「理想と現実のズレを解消しようとがむしゃらに努力すれば必ず報われるほど、甘くはない」という真理を突き付けられる訳です。
悲しいですね。もう一段、スマートさが必要なんです。

制御工学(理論)において、目標値とのズレを「誤差」、出力値の大きさを決めるために誤差に掛ける係数を「フィードバックゲイン」(または単にゲイン利得)と呼びます。
ゲインを増やすほど素早くなりますが、必要以上に大きくして、ギクシャクした動きや振動にならないよう注意します。

 地磁気センサー(X,Y軸)に代わり、角速度センサー(Z軸)を使って、下記のプログラムが紹介されています。
・[AngCtrlOmni] … 元の向きに戻ろうとする
・[AngCtrlOmniTrun] … 360°回って、その向きを維持しようとする
・[AngCtrlOmniTrun10rpm] … 10rpm(毎分10回転)で回ろうとする

プログラム中、現在の角(速)度 ang目標値 Ref誤差 Errゲイン Kp が見つかります。

大事なのは、「確定的な結果の保証よりも、現在の状態を客観的に知り、目標に近づこうと働き続ける」点です。心に響きましたか?

 次月こそ、いよいよ倒立振子ロボットの製作です。


*1 正確には、原理上、磁力線方向(南北に向かう水平な直線)の軸回りの傾きは感知できません。

*2 近くに磁石や、磁力を発生するスピーカーや電線があると、方位磁針が迷いますね。
 これを逆手にとってプログラム処理すれば、電子コンパスプログラム[MagCompassMatrix]が磁石の方を追いかけたり、磁石を近づける距離で音程が変わるテルミンのような楽器[MagneticTone]も簡単に実現できます。

*3 車を持ち出したら、エンジン燃焼、カーエアコン、定速走行、スリップ防止など、枚挙に暇(いとま)がありませんが。

*4 手のひらに箒(ほうき)を逆さに立てる時など、皆さんも無意識に同じことをやっていますよ。ずっと全速力で手を動かすマヌケはいませんよね。


2. 2月の課題


 <スタートアップ(全コース)>
  特にありません

 <プライマリーコース>
  - オリジナル図形プリント
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2202-Q.pdf

 <ベーシックコース>
  - 上記授業内容を精読する(概ね3年生以上/低学年は補助の下で)
  - オリジナル課題プリント(3面図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2202-Q.pdf

 <ミドルコース>
  - 上記授業内容を精読する
  - オリジナル課題プリント(3面図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2202-Q.pdf

 <アドバンスコース>
  - 上記授業内容を精読する
  - オリジナル課題プリント(見取図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotA2202-Q.pdf (来月まで分)

 <プロ1年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)

 <プロ2年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)


3. 1月の解答


 <プライマリーコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2201-A.pdf
 <ベーシックコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2201-A.pdf
 <ミドルコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2201-A.pdf
 <アドバンスコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotA2112-A.pdf


4. 今後の授業スケジュール


◆小倉北・南(日曜日)5月は一週ずつ遅れます。

――――――――――【佐藤教室長】――――――――――

[東福間]第1・3土原則<学習ルームでこぼこ>
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドバンス

 ⇒ 3/5, 19,  4/2, 16,  5/7, 21


[中間]第2・4土原則<なかまハーモニーホール>
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドバンス/ロボプロ

 ⇒3/12 第1回 3F会議室2
  3/26 第2回 3F会議室2
  4/9, 23,  5/14, 28


[小倉北]第1・3日原則<ムーブ>
   - 10:30~ ベーシック/プライマリ
   - 13:00~ ミドル/ロボプロ
   - 15:00~ アドバンス

 ⇒3/ 6 第1回 5F小セミ
  3/20 第2回 5F小セミ
  4/3, 17,  5/8※, 22※

 ※5月は一週ずつ遅れます

――――――――――【中野教室長】――――――――――

[八幡東]第1・3土原則<レインボープラザ4F>
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドバンス

 ⇒ 3/5, 19,  4/2, 16,  5/7, 21


[小倉南]第2・4日原則<総合農事センター2F>
   - 10:30~ ベーシック/プライマリ
   - 13:00~ ミドル
   - 15:00~ アドバンス

 ⇒ 3/13, 27,  4/10, 24,  5/15※, 29※

 ※5月は一週ずつ遅れます


5. お知らせ

1) 1月課題 高得点者  []内は教室と学年

 ◆プライマリ【11名平均 図形3.7】
   5点…福永[東福間1], 松葉[東福間 年長], 坂本[八幡東2], 藤田[八幡東1], 日力[小倉北2]

 ◆ベーシック【20名平均 図面3.3+設問2.4=5.7】
  10点…なし
   9点…土屋[小倉北1], 古場[小倉南2], 渡辺[小倉南4]
   8点…福永[東福間3], 栗本[小倉南2], 眞所[小倉南2], 矢野[小倉南2]
   7点…なし

 ◆ミドル【18名平均 図面3.1+設問1.3=4.3】
  10点…なし
   9点…なし
   8点…なし
   7点…柴田(直)[小倉北4], 小牧[小倉南5]
   6点…渡久山[中間6], 藤津[中間5], 諭[小倉北3]

 ◆アドバンス【3名平均 図面7.0+設問6.0=13.0】
  16点…中村(健)[小倉北7]


東福間・中間・小倉北教室 佐藤 / 八幡東・小倉南教室 中野