2.3月の課題
3.2月の解答
4.今後の授業スケジュール
5.お知らせ
1. 3月授業まとめ
1.0 <スタートアップ(全コース)>
割愛します。
1.1 <プレプライマリーコース『ロボコング』>
割愛します。
1.2 <プライマリーコース『のびーるハンド』>
割愛します。
1.3 <ベーシックコース『シャッフルくん』>
サイコロとトランプを扱(あつか)います。
1日目のロボットがサイコロを投げる右うでを輪ゴムで吊(つ)っているのは、先月の『ジャンピングトビー』と同じ理由です。
うでを跳(は)ね上げるのは、輪ゴム(だけ)の力です。
モーターは、うでを押し下げながら輪ゴムをゆっくり引き伸(の)ばして、元に戻(もど)ろうとする力を貯(た)めさせています(*1)。
復元(ふくげん)力とか、弾性(だんせい)エネルギーとも言います。
輪ゴムの方が強い瞬発(しゅんぱつ)力を出せるからで、そのお陰(かげ)で、ロッド3アナによるロックが外れると、うでを跳ね上げた勢(いきお)いでサイコロが宙(ちゅう)に舞(ま)います。
モーターだけでは、うでを上げるスピードがおそくて、サイコロがずっと手のひらにあるでしょう。
さて、このロボットでサイコロを投げても、足元にポロッと落とすだけのことがあります。
やる気がなさそうで、ゲームの雰囲気(ふんいき)が台なしです。
どうしたら、高く投げたり、遠くへ飛ばしたりできるでしょうか。
●輪ゴムの力
うでを跳ね上げるのは輪ゴムの力ですから、かけ方を強くすればいいですね。
ペグSとペグLの間で往復(おうふく)させているのを1往復半にしたり、2本かけたりする方法があります。
●手首のスナップ力
手首をスナップする力(*2)が弱すぎると、うでをすばやく上げられるようにしても、それに手のひらがついて行けず、サイコロが転がり落ちてしまいます。
かと言って、手首に“しなやかさ”がない(手のひらが曲がらない)と、サイコロを後ろに投げてしまいます。
手のひらは、親指(Lロッド&クランク)で軽く押さえているだけですから、この力を強くするために、手首の関節(かんせつ)にグロメットを使ったり、輪ゴムで縛(しば)ったりする方法があります。
こうして投げ上げられるようになったロボットでサイコロを振(ふ)り、スゴロクをして遊びました。
2日目は、トランプをシャッフルするロボットに作り替(か)えます。
このメカニズムの要(かなめ)は、「2種類のまさつ力」です。
タイヤのゴムは、ロボットキットの中で最も強いまさつ力を生みやすい部品であり、トランプを押し出すローラーとして利用しています(*3)。
一方、左右のトランプの山から1枚ずつ交互(こうご)に押し出すには、「押し出す時」と「押し出さない時」に分け、そのタイミングを左右で反対にする必要があります。
モーター2個の回り方をプログラミングできるアドバンスコースなら簡単ですが、
モーター1個で、スイッチ操作(プログラミング的動作)もなく実現するために、“弱いまさつ力”を作り込(こ)みました。
そうです、タイヤLに貼(は)ったセロハンテープです。
セロハンテープとトランプの間に働くまさつ力は弱いため、タイヤが回転したままでもトランプを押し出す力を一時的になくすことができます。
2つのタイヤLは左右に広く離(はな)れていますので、「シャフトドライブ」を採用したのもナイスです。
こうすると、たくさんのギアを噛(か)み合わせることなく、遠くへ動力を伝達できます。
ここでは、タイヤLが左右で逆(ぎゃく)向きに回転するよう設計しています。
また、2個のモーターで別々に回すのに比べ、ギヤやシャフト(機械リンク)で伝達していることで、左右のタイヤの回転位置がずれる心配がありません(*4)。
だから、反対の位置に貼ったセロハンテープはずっと反対のまま回転してくれるのです。
実際にシャッフル動作を成功させるには、まさつ力の強弱をはっきりさせる必要があります。
つまり、まさつ力がいるタイヤのゴム面は、ごみをふき取ったり洗ったりし、
まさつ力をなくしたいセロハンテープ面は、貼り方を広くしたり滑(なめ)らかにしたりと、調整します。
どちらのタイヤLもモーターと同じスピードで高速回転しますから、あっという間にシャッフルが完了してカッコイイですね。
*1 モーターで力をゆっくり貯めるのは、輪ゴムを強い力で引っぱれるよう、ギアを使って回転をおそくし、力を大きくしているからです。
*2 ここでは、手のひらが下向きに折れ曲がりすぎないよう支える力のこと。
*3 コピー機やプリンターが紙を1枚ずつ送るのにもゴム製のローラーを使っています。
*4 同期動作と言います。
1.4 <ミドルコース『メカポンロボ』>
対戦型ゲーム機という新ジャンルで2年前に登場した唯一無二のマシンです。
1日目の手動型ロボットでは、輪ゴムで吊(つ)られた背中のTロッドを押し下げることで、攻撃と防御の両腕を振り下ろしますが、ここに工夫があります。
背中のTロッドはギアM(うす)を中心に、腕はピニオンギア(うす)を中心に回転し、これらのギアは噛(か)み合っています。
歯数24のギアMから歯数8のピニオンギアを回すと、回転が3倍速くなります。
つまり、背中のTロッドを動かした角度の3倍も大きく腕の向きが変わるのです。
その分、Tロッドの動きは重く、腕を振る力は弱くなりますが、君たちの手はモーターより強い力を出せますし、Tロッドの可動範囲(ストローク)にも制約がありますから、この方がすばやく攻撃できて良い感じですね。
防御の隙(すき)を狙ってうまくヒットすると首が飛ぶゲームバランスの設計にも優れ、負けると悔(くや)しくて、ついムキになって熱中してしまう面白さがあります。
2日目に片側をマイコン反応型に作り替え、動力にモーターを使いました。
モーターは手よりも弱く、そして速く、無制限に回りますから、手動型のように増速せず、ギアM同士を噛み合わせて、等速で腕を回しています。
これで手動型に対抗できる腕力と俊敏(しゅんびん)性を備えました。
さて、バトルプログラミングしたコンピュータとの決闘です。
人間が攻撃しようものなら、必ずその音に反応して反撃してきます。
自分の首が取れようが、手がもげようが、お構いなしに腕を振りかざし、襲ってきます。
そう、その様は、復讐の他に観念を持たない落ち武者の亡霊のように、不気味で、イイ・・・
1.5 <アドバンスコース『メクリン②』>
前半(1・2日目)の複雑でメカメカしい作りから、シンプルなロボットへと作り変えました。
前半のロボットでページをめくるには、機械的な微調整が不可欠でした。
後半のロボットでは、可動部がモーターに直結されているため、機械的な調節の余地は少なくなりました。
ページをめくろうとするとき、適度な力でゴムタイヤを紙に押し付ける必要がありました。
後半のロボットでは、タイヤを取り付けた腕を振り下ろした後もモーターを駆動させ続け、この力を生み出しています。
しかし、ずっとタイヤを紙に押し付けたままページをめくってしまうと、紙が折れ曲がってしまい、上手くいきません。
そこで、ロボット本体が左に移動したある時点で、腕モーターの駆動を止め(もしくは弱く持ち上げ)、ページの折れ曲がりを防いでいます。
後半のロボットの良さは、微調節を機械的に行うのではなく、ソフトウェア的に行える点にあります。
紙を押さえ付ける圧力を調整したければ、モーターの出力値を変更すれば済みます。
圧力を解放する/持ち上げるタイミング等も、プログラムから制御できますね。
4日目の教室では、「ページめくりを極めるも良し。ロボットを使った遊びを考えるも良し。」として、
一部ではプログラムを改造して、「叩いて、かぶって(の代わりに逃げて)」ゲーム機にして対戦しました。
この遊びに対応するのに、ロボットの機械的な改造は不要です。
右タッチスイッチを押すと、腕を振り下ろし、相手を叩きます。
左タッチスイッチを押すと、相手の攻撃をかわすためにロボットを左に移動させればよいわけです。
機械構造的には同じでも、プログラムで機能がガラッと変わるのは面白いですね。
プログラム次第で機能を変更できるのは、コンピュータの最大のメリットです。
小型のコンピュータ(マイコン)が開発される前は、製品ごとに専用設計のICチップを開発していました。
例えば、電卓には電卓専用設計のチップを、時計には時計用、オーディオにはオーディオ用といった具合にです。
専用チップを作るためには、回路図や露光マスクから作り変える必要があるので、時間もお金も多く必要です。
また、一旦チップを作ってしまうと後から機能の追加や変更はできません。その時は、また一から作り直しです。
ところが、マイコンの登場により、この状況は一変しました。
マイコンであれば、多くの機能がプログラムだけで変更できます。
電卓にも洗濯機にも、同じマイコンチップを搭載することが可能になるのです。
マイコンを使うことで、電気製品の開発コストは下がり、開発期間も短くなりました。
皆さんがよく遊ぶゲーム機も、ゲームごとに本体を買い直す必要はありませんよね。
無料ダウンロードだけでも、いっぱい遊べちゃうわけです。
そこでも、コンピュータとプログラムの恩恵を受けているわけですね。
昔のゲーム機は1つのゲームしかプレイできないのが当たり前だったんですよ!
(それはそれで新しいハードを手に入れるのがとびきり楽しみな時代でしたが…)
1.6 <プロ1年目コース『不思議アイテムI-2③』>
冬タームの最終月を「ウルトラソニックロボット」で仕上げます。
自律型ロボットといえば、障害物や段差を感知して、衝突や落下を回避しながら進むものを先ず想起するのではないでしょうか。
お掃除ロボット『ル○バ』などもそうですね。
感知に最も良く使われるのが、この超音波センサーです(*1)。
イルカやコウモリ等の生物から魚群探知機まで、反射音(方向・時間・強弱・周波数)の状態や変化を探ることで、視覚の代わりに(時にはそれ以上に)なるのです。
反響定位(エコーロケーション)と呼ばれますが、本ロボットや一般の障害物センサーでは、そこまでの解析能力はありません。
特定方向の(一定以上の大きさの障害物から)反射音が返ってくる時間(=距離)だけを計測しています(*2)。
1日目では、2つのセンサーを別々にモニターすることでの可能性を垣間(かいま)見ました。
センサー1つでも、手をかざせば近寄り、近づけすぎると後ずさるなどプログラムできますが、両目のように左右に並べれば、左右の(状況の違いが分かる)感覚を生み出せます。
左右での感知距離(dist1, dist2)の差に応じて旋回させれば、かざした手の方向にフラフラと追跡するまでになります[step3]。
しかし、2つの距離情報を扱うのは、プログラムの条件文(判定式や分岐)が複雑になります。
センサー情報を2値(デジタル判定)化するだけでも2×2=4通りに場合分けされることのみならず、スマートな動きを実現するには、センサー2個の変化・判断の順序やタイミングなど、気にすることが増えるからです。
2日目では、センサー1つを様々な位置に取り付け、プログラムを適応させることで、
・ 障害物を避けるロボット[avoider]
・ 机から落ちないロボット[nofall]
・ 机の端を沿うロボット [tablerunner]
・ 壁ぎわを沿うロボット [walltracer]
を実現できることが紹介されています。
あの『ル○バ』に勝るとも劣らず、生き物らしく見えるでしょう。
センサーで拾うたった1つの値と、それを条件に動作を分ける論理(プログラム)とで、これだけの(これ以上の)ことができます。
どれも、プログラミングのレベルに大差ありません。
勿論、これらを2つのセンサーで制御すれば、プログラムが高度になる分、よりスマートな動作で報いてくれます。
ちょっと難しく見える“おまじない”や数値処理上の工夫(*3)がありますが、核心の論理“if(条件) {動作1;} else {動作2;}”は、非常に単純明快で必然的なものです。
もっと場合分け(条件分岐)したければ、“if(条件1) {動作1;} else if(条件2) {動作2;} else if(条件3) {動作3;} else {動作4;}”等ですね。
こうして自分のロボットに命を吹き込んでみれば、君はもうフランケンシュタイン(怪物の創生者)であり、鉄腕アトムのお茶の水博士です。
*1 GHz級クロックの電子回路など、技術の発達した現在では、光(電磁波)を用いたレーザー距離計やGPSセンサーも安価に手に入るようになりましたが、生物の感覚器官ではとても追いつけません。視覚が光を利用するのとは別の話ですよ。
*2 音の伝わる速さとして、空気中で340m/秒、水中で1500m/秒を覚えておきましょう。
すなわち、地上と水中で計算式が変わりますが、時間から距離が求まります。
*3 dist/=10; または dist=dist/10; で dist値 1~99[cm] を 0~9(整数) に粗くし、大雑把に扱えるようにしています。
例えば、if(dist==1) と書くだけで 10~19[cm] の範囲を指定することができるようになります。
1.7 <プロ2年目コース『倒立振子ロボット③』>
(姿勢センサー不良で未完成の為、4月挽回予定内容を含みます)
今タームの最終月にして、倒立振子ロボットは終(つい)に日の目を見るのか?
1日目は、この倒立振子ロボットを製作しました。
前後方向にだけ倒れる、左右2輪のリヤカー(大八車)タイプです。
ここで、振り子の特性について、整理します。
振り子と言えば、今は飾りにしか使われなくなった振り子時計を想起しますね。
振り子は、支点から質点(≒おもりの重心)までの棒の長さによって揺れる周期が決まり、意外に、おもりの重さとは無関係です。
この、一定のリズムで振れる性質を“等時性”と呼び、昔の時計の進み具合に利用していました(*1)。
これを逆さに立てた場合(倒立)も同様に、棒が長いほど、倒れるのに時間が掛かるようになります。
ペンは一瞬で倒れますが、箒(ほうき)は1~2秒、テレビで見る倒木や煙突の倒壊には数秒以上を要しますね。
だから、手のひらに箒を立てることはできても、鉛筆が無理なのは、立て直す時間が足りないからです(人間には…)。
このロボットの高さ20cm程度でも、人間には難しい仕業でしょうから、立てたら凄いですね。
クララが立った時に匹敵する感動が味わえそうです。
2日目です。
不安定な足(タイヤ)で立てる原理は、箒と同じです。傾いた方向(前後)に動けば良いのです。
そのためには、今の状態[現在値]を知り、あるべき状態[目標値]との誤差を計算し、その誤差に適切な比例係数[ゲイン]を掛けて、制御量[出力値]を発揮することを高速に繰り返すのです。
ゲイン × 誤差(現在値[入力] - 目標値) = 制御量[出力]
前月で学んだフィードバック制御ですね。常に北を向くように旋回するオムニホイールロボットがそうでした。
北を0°として、方角(角度)のズレ(±)に比例した強さでモーターを正逆回転させれば、強弱の効いた滑らかなフィードバック制御が実現しました。
これを、P(Proportional:比例)制御と呼びます。これが基本です。
しかし、わずかな方角のズレでも素早く戻すようモーターを強力に駆動すると、ブルブルと振動してしまい、いつまでも目標値に収束(しゅうそく)しなくなりました。
1年目で嫌と言うほど経験してきたように、摩擦力が大きなタイヤの回転は、弱いパワーでは停止し易いですので、比例ゲイン Kp を抑えるだけで収束しましたが、振り子の運動は摩擦力が低いのが特徴です。
加えて、垂直付近では、重力による回転トルク(倒す力)がゼロになり、速度(勢い)を抑える外力が消えるため、慣性の法則により、勢い余って反対側に倒れ易くなります。
つまり、P制御だけでは、いつまでもグラグラすることになります(*2)。
そこで、D(Differential:微分)制御を加えます。
これで、速度を抑える作用が働きます(*3)。
現在の(角)速度を割り出し、目標(角)速度ゼロとの誤差に微分ゲイン Kd を掛けて、制御量に加えます。
D制御は、現在値の変化に機敏に応答する特性があるため、意地悪に手で突ついたり、段差等で不意な外力が加わったりして倒れそうな場合でも、素早く立て直す作用に貢献します。
3つ目に、I(Integral:積分)制御も加えます。
テキストで「静止に近い状態で作用する微調整」とはぐらかしていますが、高校数学の積分の概念が難しい故です。
簡単に言えば、微妙なズレを続いている時間分積算し、これに積分ゲイン Ki を掛けて、それを正すように作用させます。
短時間的に算出するP制御やD制御による制御量が、目標値近傍においてゼロになり、長時間的なズレの補正に作用し辛いからです。
これら3つの要素によるフィードバック方式を『PID制御』と呼びます。
最後に、「姿勢ゼロ点設定の調整」なんかも持ち出されて、混乱に拍車を掛けます。
これは、ロボットの重心の違いや、姿勢センサーの固定具合によってP制御やI制御の入力となる倒立角度の検出値に生じる誤差など、個体差を補正するものです。
これがなければ、倒れないには倒れないが、下手な一輪車がバランスを保とうとして、ひたすら前に進むような状態になったりします。
いやー、絶妙な倒立振子ならではの制御ですね。
これでも、まだ、電源電圧によって各種ゲインを調整しなければ、プルプル震えながら立つのがやっとです。
「倒立ロボが、倒立ロボが、立ったー!」と叫びたければ好適な様子ですが。
ところで、モーター端子に大小のコンデンサが半田付けされているのは、モーター駆動の電磁ノイズが姿勢検出値を乱さないようにするためで、初期のモーターには付いておらず、うまく立てずに暴走しがちでした。
「それで、結局、どのプログラムを走らせれば倒立するの?」
というのが多勢の興味でしたが、曲芸はそう簡単には実現できないのですね。
エンジニアリングの一端を垣間見た気がします。
*1 ロボット教室ミドルコース『チクタクロック』で学習しました。
電池で動くインテリア時計の振り子は、ただのフェイクです。
*2 プログラム中のパラメータを色々いじってみると面白いと思いますよ。
*3 高校数学/物理ですが、位置(角度)を時間で微分したものが速度(角速度)になります。
1.8 <プロ3年目コース『二足歩行ロボット③』>
二足歩行の制御シーケンスをプログラムに落とし込み、ボタン一発で自動歩行させる最終月です。
腰と両足首のサーボモーター3個を個別に制御する手動操縦プログラム[BiRobotTest4_libまで]では、
1) 体を右傾させる (左足を浮かせる)
2) 着地した右足首を左に捻る(左半身を進める)
3) 体を左傾させる (右足を浮かせる)
4) 着地した左足首を右に捻る(右半身を進める)
という一連の動作(シーケンス)を繰り返せば前進、逆順で後退できました。
この順をそのままプログラムに記述すれば自動で歩行しますが、もう少し整理して、
a) 腰も足首も捻らず(原点位置で)直立した静止状態を挿入し、
b) 2)と4)の両足首を捻る方向の組合せで、前進・後退・左旋回・右旋回の4動作を切り替える
ことを実現したのが、ボタン一発型の自動歩行プログラム[BiRobotTest5_lib]です。
この機能レベルになると、ある時点ではどうなっており(状態)、何ができて(動作)、次にどうなるか(遷移)をしっかり設計し、プログラム中でも管理する必要がでてきます。
それには、逐次処理的な制御フローを図示するのに向いたフローチャートよりも、
各状態・動作・遷移に注目した制御フローを図示する状態遷移図が向いています。
状態遷移図は、「有限個の状態と遷移と動作の組合せからなる機械モデル」の設計図です。
この機械モデルを有限オートマトン(finite automaton)または有限ステートマシン(finite state machine)と呼びます。
機械モデルの実装はロボットでも、ソフトウェアでも、ピタゴラスイッチでもあり得ます。
何やら小難しい響きに聞こえますが、プログラムが組めない人でも、テレビのリモコン操作を不思議に思ってなければ、裏で流れる制御ソフトの仕業として感覚的に理解していることです。
例えば、「入力切替」で画面モード(状態)を切り替え(動作・遷移)ますね。
さらに、同じ数字ボタンを押しても、地デジではチャンネルが替わり、ビデオ入力では無効になり、ブラウザではカーソルキーとして働くなど、現在の状態によって、可能な動作と遷移先の状態が変わります。
複雑な制御シーケンスや分岐・繰返し構造を場当たり的に記述していくと、バグによる思わぬ動作不良を招き易くなります。
これを、とり得る状態の数(無限にはない)に分解して、各状態における動作と遷移先の状態を規定していけば、比較的簡単に信頼性の高いシステムが設計できるというアイデアです。
状態遷移図(または表)や、より拡張された表記法である統一モデリング言語(UML)等を利用して、様々な製品が設計されています。
さて、プログラム中で状態を管理するには、現在および遷移先の状態値(番号・記号)を記憶しておくための変数を用意します。
このような変数名には、"flag", "mode", "state", "step"等の文字列を入れると良いでしょう。
あとは、状態値に応じて、if文やswitch/case文による分岐ブロック{ }内に、動作(関数呼び出し)や状態値の書き換え(遷移)と、それに必要な条件(無条件なら不要)を記述するだけでも形になります。
独学でプログラミングを始めても、全員が発明しそうな必然の工夫です。
今回の二足歩行プログラムには、超音波センサー等の入力(条件)による自律的な状態遷移はありませんが(*1)、
前述の通り、無線コントローラーのボタン操作(条件)により足首の捻る方向(動作)を変え、4つの歩行モードを切り替えています。
その他、下記のような制御の工夫点がありました。
●繰返し周期の多重化
1つのメインループ loop() 内で、高頻度なサーボモーターの位置更新と、
中頻度なコントローラー操作や超音波センサーからの読出しとディスプレイ更新、
低頻度な音の更新を両立させるテクニックです。
void loop() {
if (CounterA == 0) {
xxx.read_gamepad(); // コントローラ読出[100ms毎]
yyy.ping(); // 超音波センサ計測[100ms毎]
updateDisplay(); // ディスプレイ更新[100ms毎]
if (CounterB == 0) {
updateTone(); // 音の更新[300ms毎]
}
}
updateServo(); // サーボモータ更新[20ms毎]
CounterA++; // 0→1→2→3→4[20ms毎]
if (CounterA == 5) {
CounterA = 0; // 0リセット[100ms毎]
CounterB++; // 0→1→2 [100ms毎]
if (CounterB == 3) {
CounterB = 0; // 0リセット[300ms毎]
}
}
delay(20); // 毎秒50回ループ[20ms毎]
}
●サーボ移動量の緩和
上記でコントローラー操作を100ms毎にしか読み出さないのに、サーボモーター位置を20ms毎に更新するのは動きを滑らかにするためですが、
そのために足首は1/5ずつ、腰は(反動で倒れやすいので)1°ずつに毎回の更新量を制限するテクニックです。
diffLF = (targetLF - currentLF)/5; // 左足首の移動量/5
diffRF = (targetRF - currentRF)/5; // 右足首の移動量/5
currentLF += diffLF; // 左足首サーボモータ角度
currentRF += diffRF; // 右足首サーボモータ角度
servoLF.write(currentLF); // 左足首サーボモータ更新
servoRF.write(currentRF); // 右足首サーボモータ更新
if (currentBD < targetBD) {
currentBD++; // 腰サーボモータ+1°
else if (currentBD > targetBD) {
currentBD--; // 腰サーボモータ-1°
}
servoBD.write(currentBD); // 腰サーボモータ更新
この二足歩行ロボットは、3個と少ないサーボモーターで多様な歩行動作ができるだけでなく、上体を左右に振り、片足を浮かせて両足首を曲げられるので、シーケンス制御のセンス次第では、ダンスのような動きも見せられるでしょう。
胸のディスプレイや演奏力も武器にして、ロビに勝るエンターテイメントロボに仕上げてみてはどうでしょうか。
*1 目玉に見せかけた超音波センサーが付いていますが、計測した距離に応じてメーター表示や鼓動音を変えているだけであり、歩行制御には関与していません。
2. 3月の課題
<スタートアップ(全コース)>
特にありません
<プレプライマリーコース> (プライマリーではありません)
- オリジナル図形プリント
http://robocobo.sakura.ne.jp/blog/HW/RobotPP2303-Q.pdf
<プライマリーコース>
- オリジナル図形プリント
http://robocobo.sakura.ne.jp/blog/HW/RobotP2303-Q.pdf
<ベーシックコース>
- 授業まとめを精読する(概ね3年生以上/低学年は補助の下で)
- オリジナル課題プリント(3面図+設問)
http://robocobo.sakura.ne.jp/blog/HW/RobotB2303-Q.pdf
<ミドルコース>
- 授業まとめを精読する
- オリジナル課題プリント(3面図+設問)
http://robocobo.sakura.ne.jp/blog/HW/RobotM2303-Q.pdf
<アドバンスコース>
- 授業まとめを精読する
- オリジナル課題プリント(見取図+設問)
http://robocobo.sakura.ne.jp/blog/HW/RobotA2302-Q.pdf (2月配信済み)
<プロ1年目コース>
- 授業まとめを精読する(該当テキストページを見ながら)
- 単一距離センサーロボット[avoider/nofall/tablerunner/walltracer]のいずれかを改良し、
ダブル距離セ ンサーロボットとして、より洗練された動きを設計・実装する
例えば、
・壁と壁の間を往復するプロ版“う王さ王”[avoider改]
・左/後退/右から安全な方向を選ぶ [nofall改]
・左/直進/右を選びつつ崖っぷちを沿う [tablerunner改]
・左/直進/右を選びつつ壁伝いに迷路を進む[walltracer改]
<プロ2年目コース>
- 授業まとめを精読する(該当テキストページを見ながら)
<プロ3年目コース>
- 授業まとめを精読する(該当テキストページを見ながら)
3. 2月の解答
<プレプライマリーコース>
http://robocobo.sakura.ne.jp/blog/HW/RobotPP2302-A.pdf
<プライマリーコース>
http://robocobo.sakura.ne.jp/blog/HW/RobotP2302-A.pdf
<ベーシックコース>
http://robocobo.sakura.ne.jp/blog/HW/RobotB2302-A.pdf
<ミドルコース>
http://robocobo.sakura.ne.jp/blog/HW/RobotM2302-A.pdf
<アドバンスコース>
翌テーマ1ヶ月目(来月)に配信します
4. 今後の授業スケジュール
――――――――――【佐藤教室長】――――――――――
[東福間]第1・3土原則<学習ルームでこぼこ>
- 13:30~ ベーシック/プライマリ
- 15:30~ ミドル
- 17:30~ アドバンス
⇒ 4/1, 15, 5/6, 20, 6/3, 17
[東福間プロ]第2・4日原則<学習ルームでこぼこ>
- 10:00~ プロ1年目
- 13:00~ プロ2年目
- 16:00~ プロ3年目
⇒ 4/9, 23, 5/14, 28, 6/11, 25
[中間]第2・4土原則<なかまハーモニーホール>
- 13:30~ ベーシック/プライマリ
- 15:30~ ミドル
- 17:30~ アドバンス/プロ1年目
- 19:00~ プロ2・3年目
⇒4/ 8 第1回 3F会議室2
4/22 第2回 3F会議室4(和室)
5/13※, 27※, 6/10, 24
※5/13, 27はハーモニーホール利用不可の為、代替施設(未定)で開催します
[小倉北]第1・3日原則<ムーブ>
- 10:30~ ベーシック/プライマリ
- 13:00~ ミドル
- 15:00~ アドバンス
- 12:30~ プロ1年目
- 15:00~ プロ2・3年目
⇒4/ 2 第1回 5F小セミナー
4/16 第2回 5F小セミナー
5/7, 21, 6/4, 18
――――――――――【中野教室長】――――――――――
[八幡東]第1・3土原則<レインボープラザ4F>
- 13:30~ ベーシック/プライマリ
- 15:30~ ミドル
- 17:30~ アドバンス
⇒ 4/1, 15, 5/6, 20, 6/3, 17
[小倉南]第2・4日原則<総合農事センター2F>
- 10:30~ ベーシック/プライマリ
- 13:00~ ミドル
- 15:00~ アドバンス
⇒ 4/9, 23, 5/14, 28, 6/11, 25
5. お知らせ
1) 第5回ロボプロ全国大会6/11(日)決定
2021/7/11(日)以来、2年ぶりに下記2部門で開催されます。
■タイムアタックレース部門
■テーマパフォーマンス部門
詳細は4月リリース予定の告知HP等でお伝えします。
【過去の大会】
https://kids.athuman.com/robopro/event/
2) 第13回ロボット教室 全国大会・地区イベント日程
昨年に引き続き、2023年も全国大会・スペシャル地区イベントとして開催が決定しました。
今回はスケジュール概要をお伝えします。
【開催日程】
◆九州地区 8/ 2(水) 福岡市科学館 サイエンスホール
◆全国大会 8/26(土) 東京大学 安田講堂(本郷キャンパス内)
【コンテスト内容】
◆スペシャル地区イベント
①アイデア発表会(全コース)
②改造レース(ベーシック/ミドルコース)
③オンライン参加企画も実施予定!(全コース)
◆全国大会
①アイデアコンテスト(全コース)
②テクニカルコンテスト(アドバンスコース)
【告知・申込】
▶ 4月 スケジュール詳細・コンテスト概要お知らせ
▶ 5月上旬 大会・地区イベントHPオープン、開催要項公開予定
▶ 6月~ コンテストエントリー、観覧申込受付開始予定
【過去の大会】
https://kids.athuman.com/robo/event/
3) 明るさセンサー式LED常夜灯はんだ付け講座 終了
3/21(火・祝)北九州パレスにて、4組の方に参加頂きました。
300℃で熔けたドロドロの金属にドキドキしながら練習を重ね、LED常夜灯の製作本番には全員が成功しました。
型抜きパンチで紙袋に模様の穴を開け、自分だけの提灯(ちょうちん)にして持ち帰りました。
暗くなると自動で灯(とも)り、朝日が射せば消えるでしょう。毎夜が楽しみですね。
4) 入会・進級時キット価格改定[再掲]
原材料費や物流費など、キット原価の上昇を受けた見直しとのことで、
4月以降に入会・進級の方より、キット価格が改定されることになりました。
ご多用のところ恐れ入りますが、何卒ご了承下さい。
《キット価格改定》
ロボット入会 ミドル アドバンス プロ1年目 2/3年目
従来 31,350 23,100 9,900 48,400 34,100
⇒4月~ 33,000 24,750 10,450 51,150 36,300
(値上げ 1,650 1,650 550 2,750 2,200)
【補足】
‐4月スタート入会・進級が確定された方まで従来価格が適用されます。
5) 2月課題 高得点者 []内は教室と学年
◆プレプライマリ【2名平均 図形4.5】
5点…中野[東福間 年長]
◆プライマリ【4名平均 図形4.5】
5点…荒川[小倉北2], 関本[小倉北2]
◆ベーシック【22名平均 図面2.8+設問2.0=4.8】
10点…なし
9点…なし
8点…土屋[小倉北2]
7点…日力[小倉北3], 古川[小倉北3], 矢野[小倉南3]
6点…亀平[八幡東1], 有松[小倉南3], 原[小倉南3]
◆ミドル【11名平均 図面2.7+設問1.3=4.0】
10点…なし
9点…なし
8点…なし
7点…諭[小倉北4]
6点…柴田[小倉北5], 栗本[小倉南3]
東福間・中間・小倉北教室 佐藤 / 八幡東・小倉南教室 中野