2020年8月31日月曜日

2020年8月報

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


1. 8月授業内容


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


 割愛します。


1.1 <プライマリーコース『モッテクテク』>


 割愛します。

1.2 <ベーシックコース『リトルドッグ』>


 愛犬ロボットと銘打(めいう)つ、4足歩行ロボットです。
側面(そくめん)で同じ向きに回転する4枚のギアLがそれぞれの足を動かします。
ギアL上に挿(さ)すペグSの位置だけで、各足を運ぶタイミング(*1)や動きの大きさ(*2)をそれぞれ変えられるので、
4足の運び方による進み方の違いを観察するのにうってつけの教材です。

 1日目の製作を終えた段階では、うまく歩けない子犬が続出(ぞくしゅつ)しました。
特に、左右で足の動きが同じだと、おかしな仕草(しぐさ)になります。
横から見て回転するような屈伸(くっしん)運動になり、前へつんのめって顔面を打つマヌケ犬か、100円で前後上下に動く乗り物のようです。全く進みません。

しっかり歩ける犬かどうかは、坂道チャレンジや綱(つな)引きで良く分かります。

 4足の運びに正解が決まっているわけではなく、重心やスピード、足の跳(は)ね方によって変わりますが(*3)、まずは左右も前後もタイミングを90~180°ずらしてみましょう。

片足ずつ、後ろ足のゴム(グロメット)で上手に地面を蹴(け)ることができれば進むでしょう(*4)。
また、バランス(重心)や足(前後)の運び方、グロメットの取り付け状態など、左右で違いがあるとまっすぐ歩きませんので、注意します。

うまくいけば、トコトコと愛らしい小走りが見られます。
電池が弱いとヨボヨボの老犬に見えました。


*1 位相(いそう)と呼び、角度 0~360°で表します。

*2 ギアLのペグ穴には、内側の穴(中心に近い)と外側の穴(中心から遠い)があり、テキストでは外側にペグを挿していますが、内側に挿すと、足の動きが小さく、小股(こまた)歩きになります。
 スピードが遅くなるので、力は増え、坂道を上る時や綱引きに有利です。

*3 同じ動物(犬)でも、スピードによって4足の運びを何種類も使い分けていることがテキストp.21のイラストで分かります。

*4 足を後方へ運ぶ瞬間が速くなるようなスイッチの向き(テキストp.16)に入れます。
 ただし、ペグSを4足分ともギアLの内側の穴に挿すだけで逆向きに変わったりして、進み方を予想するのはとても難しいので、いろいろ試して観察しましょう。


1.3 <ミドルコース『ウォールフォロワー』>


 壁伝いロボットという意味です。
右回り専用ながら、前方の右側面から生えたガイドバーが段ボールなどの壁面を正確にたどりながら周回します。

単にずっと右に曲がろうとしている結果じゃない?
そういう声もあります。
確かに、あまりにうまく壁を伝うので、そういう風にも見えます。
まるで、マイコンで周回路を認識した自律型ロボットみたいです。

 実際のところ、このロボットは、左タイヤはずっと回転したまま、右タイヤを回転させたり止めたり制御することで、直進右旋回(せんかい)の2つのモードを自動的に切り替えているのです。

制御機構は、壁面に押されて引っ込んだり、壁面から離れると輪ゴムの復元(ふくげん)力で元の位置まで出っ張ったりするガイドバーが、右タイヤへの動力を断続させるクラッチレバーのような働きを担(にな)うことで実現しています。
これは面白い!(*1)

 輪ゴムの掛け方が強すぎると、まっすぐな壁を沿うにも右旋回モードが解除されず、壁に正面を向けて行き詰まるか、ガイドバーを擦(す)り付けるようにたどたどしく進みました。

逆に弱すぎると、直進モードから右旋回モードに移行しにくくなり、コーナーを過ぎても直進し続けるか、反応が鈍くて大回りしてしまいましたね。

自重(*2)と走行スピードに見合った輪ゴムの復元力が、壁面への追従性を決めていました。

 最後の競技は、名付けて『ウォールフォロワーGP』!
開いた段ボールをひし形に潰して床に固定し、鈍角(どんかく)と鋭角(えいかく)コーナーのでき上がり!
右回りに周回するタイムを計測します。

直角(90°)や鈍角(>90°)はスマートに曲がれても、鋭角(<90°)ですぐに曲がり始めると、右タイヤが引っ掛かってタイムをロスします。
輪ゴムを緩(ゆる)めに掛け、少し遅れて大回りする方が早く曲がれるというのが、セッティングの要(かなめ)なのでした(*3 *4)。

正に『急がば回れ』!


*1 このロボットを初めて見た先生も感心しましたが、同様に工学畑(オタク?)の大学生講師らも本アイデアに唸(うな)ることしきりでした。
 機械式の単純なメカニズムで高度な制御を実現する“機能美”にくすぐられているのです。センスある君も感動したよね!?

*2 作用・反作用の法則により、マシンの横方向の摩擦力(=重さ×タイヤの摩擦係数)以上にはガイドバーを壁面に押し付けることはできません。
 つまり、輪ゴムを強く掛けすぎると、ガイドバーが押し込まれずに(右旋回モードのまま)壁に寄せ(タイヤをスリップさせ)続けようとし、ギクシャクします。

*3 タイヤをぶつけないよう、曲がり角を少し過ぎてからターンするなんて、サイコーにクールです!
 他に、ガイドバーを延長したり、ガイドローラーをマイタギアから直径の大きなギアLに換えたりして壁面からの距離を空け、コース取りを大回りにした工夫も見られました。

*4 もしくは、ギアを組み替えて、テキストの1/9減速ドライブを1/1等速ドライブなどにスピードアップする改造も考えられました。
 速いと、ガイドバーの追従性が相対的に低下するので、大回りし易くなりますが、増速しすぎるとトルク(タイヤの回転力)が弱くなるので、必ずしも速くなるとは限りません。




1.4 <アドバンスコース『ロンボ(1)』>


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


1.5 <プロ2年目コース『アームロボット(2)』>


(進度が遅れておりますので、9月挽回予定内容を含みます)

 サーボモーター式アームロボット2ヶ月目の授業です。

 1日目は、無線コントローラー(ゲームパッド)を使って手動操縦します。

主に2種類の制御プログラムが登場しました。

1) [ArmRobot2/ArmControl]
 アーム部の開閉に2個(S0,S1)、ベース部の旋回に1個(S2)、ハンド部の開閉に1個(S3)の、計4個のサーボモーターを備えていますから、これらの回転角を、左右アナログスティックの上下および左右傾倒量に対応させて、独立に制御する方式です。
 アームロボットの「どのモーターをどちらに動かすか」だけの制御ですから、プログラムもシンプルで分かり易いのですが、S2, S3 はそれで問題ないとして、S0(肘=ひじ)と S1(肩)の「どちらをどれだけ動かせばハンド部を目標の位置にリーチできるか」は熟練の技が必要で、操作性はイマイチ良くありません。

 サーボモーター制御命令は、VarSpeedServo::write(角度) です(*1)。

2) [ArmRobot3/semiAutoArm]
 半自動という名のプログラムです。手動操縦ながら、自動支援制御を行なっています。
 先ず、S2(旋回)は独立のまま変わりませんが、S3(ハンド開閉)がボタン一発動作になっています(*2)。
 次に、S0(肘)と S1(肩)が協調動作し、ユーザーはハンド部の高さ(z)と、中心からの水平距離(d)に集中して操作できるようになりました。
 移動中は、高校数学の三角関数(余弦定理)(d, z) を満たす S0 と S1 の回転角を絶えず計算し続けています。
 これにより、一定の高さで水平移動したり、水平位置を変えずに高さだけ変えたりすることができ、より細かな仕事に向きそうです(*3)。

 ハンド開閉命令は、ArmRobot::gripperCatch() / gripperRelease() です。
 位置制御命令は、ArmRobot::setPosition(水平距離, 高さ, 旋回角度) です。
 これらの中で、各サーボモーターの回転角を計算し、VarSpeedServo::write(角度) を呼び出しています。






 2日目は、自動操縦に挑みます。
といっても、[ArmRobot3/AutoArmCatch] のように、setPosition() を書き連ねれば簡単ですね。荷物の自動搬送クレーンができちゃいます(*4)。

 “自動書記”[ArmRobot4/draw*] を試しましょう。ハンド部を外し、ペンホルダーに付け替えます。

テキストに説明がありませんが(*5)、setPosition(水平距離d, 高さz, 旋回角度r) は、dを半径とした円(柱)座標系の位置制御関数です。
紙面に文字や記号を書くときは、中学数学で慣れ親しんだXY直交座標系で座標(x, y)を指定したいですね。

心配ありません。ArmRobot::traceLine(始点座標, 終点座標) により、始点終点を結ぶ直線(線分)上を移動してくれます(*6)。
このとき、ArmRobot::penDown() しておけば線を引き、ArmRobot::penUp() しておけばペンが空中を飛びます。

各座標のデータ、つまり(x, y)2値の集合は、2 × P_NUM(頂点数)分の多次元配列 point[P_NUM][2] に格納しています。
これと、ペンの上下動データ配列 pen_status[P_NUM - 1]for文で順次読み取りながら、自動書記が進行します。

 プラスチック製長いアームを付け根のモーターで振り回すので、精度はイマイチですが、大きめに書けば鑑賞に堪えますかね?!


*1 ライブラリ名::関数名() の意です。クラス名::メソッド名() とも呼びます。

*2 全力で掴もうとしますので、卵は割れちゃうかもしれませんね。

*3 人間がさっと腕を伸ばして物を掴めるのも、赤ん坊の頃から肩や肘など複数の関節を協調させる動作に熟達してきた証です。

*4 まだセンサー入力によるフィードバック制御を搭載しておらず、危険ですが…。

*5 それどころか、XYZ直交座標系の関数であるかの如く誤った図解があります。申し訳ありません。

*6 三平方の定理・三角関数で(x, y)を(d, r)に座標変換し、setPosition() を呼び出しています。


2. 8月の課題


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

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

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

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

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

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


3. 7月の解答


 <プライマリーコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2007-A.pdf
 <ベーシックコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2007-A.pdf
 <ミドルコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2007-A.pdf
 <アドバンスコース>
 ⇒ロボットレース大会向けマシン注力の為、割愛しました


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


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

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

 ⇒ 9/5, 19,  10/3, 17,  11/7, 21


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

 ⇒9/12 第1回 3F会議室2
  9/26 第2回 3F会議室2
  10/10, 24,  11/14, 28※

 ※11/28はハーモニーホール利用不可の為、代替施設(未定)で開催します


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

 ⇒9/ 6 第1回 5F小セミ
  9/20 第2回 5F小セミ
  10/4, 18,  11/1, 15


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

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

 ⇒ 9/5, 19,  10/3, 17,  11/7, 21


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

 ⇒ 9/13, 27,  10/11, 25,  11/8, 22


5. お知らせ

1) アイデアコンテスト全国大会 ライブ配信9/6

 9/6(日) 11:00~17:00オンライン開催がライブ配信されます。
 アドバンスコースで中間教室山本蒼也君が選出されました!
 概要は下記をご覧下さい。

 https://kids.athuman.com/robo/event/convention/2020/


2) 中間教室ロボプロ開講
 小倉北教室に続き、10月~中間教室でもロボプロコースを開講します。

 数学とプログラミングにより、マイコン搭載ロボットを自律制御する3年間コースです。
 ロボットのみならず、LED/液晶ディスプレイや、超音波/カラー/赤外線/姿勢センサ等、一通りの電子工学デバイスに触れます。

 ロボプロコース編入は4月、7月、10月、1月のみ、その前月に一日スタートアップ受講が必要です。
 アドバンスで物足りず本物のプログラミングに触れたい人、ITリテラシーを高めたい人、高専・工科大学に臨みたい人に最適です。詳細は教室長にお問合せ下さい。

【時間帯】
[小倉北]第1・3日原則
   - 13:00~15:30

[中間]第2・4土原則
   - 17:30~20:00

===== 協同運用教室 by 佐々木先生 =====
[香椎]第2・4日原則
   - 13:00~15:30

【コース案内チラシ・キット代】
 https://kids.athuman.com/robopro/
 http://robocobo.sakura.ne.jp/blog/robotics/robopro_1st_1607.pdf


3) オリジナルグッズ(ハンディファン・マスクケース)販売[再掲]

 ◇2WAYスタンド付ハンディファン     1,320円
 ◇抗菌マスクケース(オリジナルステッカー付) 660円

 数量限定・在庫次第で終了します。
 ご希望の方はメールにて承ります。お代はお引落しで頂戴します。

 http://robocobo.sakura.ne.jp/blog/goods/maskCase_handyFan.pdf


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

 ◆プライマリ【5名平均 図形3.0】
   5点…諭[小倉北2]
   4点…藤原[八幡東2], 古場[小倉南1]

 ◆ベーシック【20名平均 図面2.7+設問2.3=5.0】
  10点…なし
   9点…小牧[小倉南4]
   8点…安倍[小倉南5], 村上(夏)[小倉南4]
   7点…藤津[中間4]

 ◆ミドル【15名平均 図面3.3+設問1.8=5.1】
  10点…なし
   9点…中村[小倉北6], 林田[小倉南3]
   8点…中村[東福間5]
   7点…なし
   6点…なし


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