ogaworksogaworksやってみる。Car、JetBotといった機械学習を使った自走ラジコンが盛り上がっているようです。Car」を走らせてみた!というわけで、機械学習(TensorFlow.js)とScratchをつなげる拡張機能ML2Scratchでも似たようなことができないか、お正月休みに試してみました。Lモーターで移動する構造にしました。動作的には、「左折」と「右折」の組み合わせで、前進・後退と方向転換をしています。今回、ML2Scratchでは以下の2パターンのラベル付けをしました。床の上に障害物がない状態)板の模様や角度、光の当たり方が違った色々な見え方の床を含めるように意識しながら100枚弱ラベル付けしました。方向転換が可能な範囲で端に障害物がちらっと映る画像も含めました。このラベルと同様と判断された場合は、車両を前進させます。床の上に障害物がある状態)障害物を検知して避ける場合用に学習させます。画像の上部に床以外の何かが映った状態です。こちらもだいたい100枚弱ラベル付けしました。このパターンと判断された場合は、(車体の幅が大きくてそのまま方向転換したら障害物に引っかかるので)一旦車両をバックさせてから左折させています。手間をかけるなら、「障害物が右側にある」「障害物が左側にある」を別々に学習させて、回避動作を左右に分けてもいいと思います。EV3をコントロールする拡張機能が元々有るので、それを使いました。モーターを動かすために用意されているブロックには「こちら向きに○秒間回す」といったものしかありません。回転数や角度の指定、回しっぱなしなどができません。EV3自体は色々なことができるだけに、拡張機能自体はちょっと物足りない感じです。これと、ML2Scratchを組み合わせてざっとこんな感じになりました。方向転換時は内輪を逆回転させるようにすれば、後退する必要なくもう少し奥まで突っ込めるのかな?とか、もう少しうまく制御できそうですが、まずは動かしてみるということで。障害物なし、有りで各100枚弱のラベル付けによる学習ですが、意外にうまく障害物を避けながら自走してくれました。ほほーと思ったのは、障害物の学習画像に含まれていなかった障害物(例えばこの場合は学習していないカラーボックス)でも、しっかり「障害物あり」と判断して避けたのには感動しました。今回は、車両の上にPCをドカッと載っけて走りましたが、AndroidスマホがWifi接続でPCのカメラにできるそうなので、それを使えば、PCは切り離してもっとシンプルな機械学習車両が組み立てられそうです。Scratchは公式の拡張機能や独自拡張を組み合わせると、できることがどんどん増えるから、なかなか奥が深いですね。2007.12.18カードが届きました。うちも、そろそろ年賀状の準備をはじめるかな。2009.08.0910年前に取ったパスポートの期限が3日前に切れてたことに、さっき気付きました。2007.05.07秋葉原~目黒約14Km。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。WordPress.。