Alpacar(アルパカー)とはAIで技術のパラダイムシフトを体感できる自動運転ロボットカーです。カメラ以外のセンサーは付いておらず、コース、壁、障害物などの物体検出も行っていません。走行時の瞬間の画像を入力、人の操作を出力としたEnd to Endのディープラーニング回帰モデルです。プログラミングだけでなく、ハードウェア組み立て、組み込み技術も含めて学びます。

まず人が操作して画像データと操作データを溜めます。溜まったデータを教師データとしてディープラーニング学習させます。カメラ画像から操作を推論するAIができるため、自動運転が可能となります。
本コンテンツは、前半に組み立て・環境設定・操作・学習・自動運転まで一気に体験まで行い、後半に各技術項目に分かれて仕組みを理解しながら学んでゆきます。
Alpacarは、ハンダ付け一切不要で組み立て可能です。

学べること

部品購入

工具

ただし、ハンダ付けなどの難しい作業は一切ありません。「部品購入」チャプターに記載してある通り、はさみ や ドライバーセット など一般的な工具のみで、家にあるモノで構いません。100円ショップでも購入可能な工具です。

必要な環境

どれも無料

必要なスキル

Alpacarの仕組み

ゲームパッドを操作して走行させると、画像データと操作量データが溜まります。溜まったデータを教師データとしてディープラーニング学習させることで、何らかの画像が入力されると操作量を出力するAIモデルが生成されます。このAIモデルをロボットカーに実装することで、カメラ映像だけでモーター制御値が決まり、自動運転が可能となる仕組みです。

何がパラダイムシフトなのか?

Alpacarでは以下のような従来よくある制御について、コードに一切記述しておりません。

従来であれば、物体検出等を行ったとしても、その後に条件分岐やフェールセーフなど人が考えて制御を記述する必要がありましたが、Alpacarではディープラーニング出力結果をほぼそのままモーター制御に反映しています。100%完璧ではありませんが、大きくコースアウトすることなく、あたかも人が操作しているかのように走行します。また、多少の環境変化にも耐えるロバスト性があることも特徴的です。

他のAIカーに対する優位性

他のAIカーに比べて、汎用的で調達しやすい部品で構成されているため安価であること、コンパクトであるため一般的な家の中でも走行可能であること、技術習得をメインと考えているため回路図やソースコードがシンプルであること、PCなしのスタンドアローン動作が可能であることが特徴です。

Alpacarのねらい

Alpacarはディープラーニングだけでなく、プログラミングとハードウェアの技術を広く浅く使っています。
それぞれの基礎を学び、従来のモノづくりや従来のプログラミングにディープラーニングを実装する具体的な手法と理解を習得できます。特にハードウェア系の人にとっては、ディープラーニングはプログラミングを使って記述するため全く異なる分野だと思われがちですが、ディープラーニングからの出力はアナログ値に近いです。これはハードウェア系に取って非常に親和性が高いと感じています。

ディープラーニングを用いることで圧倒的なコストダウン(工数削減)を実現できる場合があります。実務への応用としては、ディープラーニングで全く新しいモノを生み出すことよりも、コストや工数で諦めていたモノを実現可能にすることに活かせると考えています。Alpacarはこのような新しい時代のものづくりやプログラミングを目指します。

概要

Alpacarを作るのに必要な部品の費用は、配送料とRaspberry Pi(以後ラズパイと略します)を除くと約16,000円です。
費用の大部分は「ラズパイケース」「ラズパイカメラ」「microSDカード」「無線ゲームパッド」「モバイルバッテリー」などの部品が占めており、Alpacar以外の用途にも使い回しができるモノばかりです。

部品に関しては、ラズパイ3の場合とラズパイ4の場合で一部異なるため、分けて説明します。

必要な部品【ラズパイ3の場合】

各1つずつ必要です。詳細は候補のリンク先参照してください。

部品名

第一候補

第二候補

代替品の注意点

Raspberry Pi 3 Model B+

KSY

秋月電子

Raspberry Pi 3 Model Bでも可

Piケース RS V3

KSY

RS

カメラ取付可であること。透明・赤・黒も可

Piカメラ Official V2

KSY

秋月電子

他の部品では未確認

束のジャンパー線オスーメス

KSY

Amazon

15cm~20cm程度

無線ゲームパッド

Amazon

Amazon

BlueToothは対象外

モバイルバッテリー

Amazon

楽天市場

出力数、最大電流、サイズ、重さに注意

microSDカード32GB

Amazon

秋月電子

他の容量では未確認

USBケーブル(使用は1本)

Amazon

-

25cmがベストだが秋月電子でも代用可

面ファスナー

Amazon

ダイソー

一般的なもので代用可

端子台付USBコネクタ

せんごく

楽天市場

2個は不要だがAmazonでも可

4WD Mini Robot Kit

秋月電子

-

代替なし

ミニブレッドボード

秋月電子

-

サイズ、穴数に注意

フルカラーLED

秋月電子

-

カソードコモンであること

LED光拡散キャップ

秋月電子

-

LEDと同サイズであること

抵抗470Ω(使用は5本)

秋月電子

-

470Ω~1kΩ程度

タクトスイッチ

秋月電子

-

小さいスイッチは外れやすい

ジャンパー線オス-メス黒
(使用は1本)

秋月電子

-

電流値、長さに注意

ジャンパー線オス-メス黄
(使用は1本)

秋月電子

-

色違いは接続ミス防止目的

※秋月電子でリンク切れになる場合はブラウザを更新してください。
※ダイソーについてはお近くの店舗で直接購入してください。

必要な部品【ラズパイ4の場合】

各1つずつ必要です。詳細は候補のリンク先参照してください。
※ラズパイ4の場合は、2種類のケースが必要になります。本チャプターの最下部を参照してください。

部品名

第一候補

第二候補

代替品の注意点

Raspberry Pi 4 B/4GB

KSY

秋月電子

2GB・8GBでも可

Piケース OKdo 3ピース

KSY

RS

透明・黒でも可

Piケース RS V3

KSY

RS

カメラ取付可であること。透明・赤・黒も可

Piカメラ Official V2

KSY

秋月電子

他の部品では未確認

束のジャンパー線オスーメス

KSY

Amazon

15cm~20cm程度

無線ゲームパッド

Amazon

Amazon

BlueToothは対象外

モバイルバッテリー

Amazon

楽天市場

出力数、最大電流、サイズ、重さに注意

microSDカード32GB

Amazon

秋月電子

他の容量では未確認

USBケーブルtype C(使用は1本)

Amazon

Amazon

25cmがベスト

面ファスナー

Amazon

ダイソー

一般的なもので代用可

端子台付USBコネクタ

せんごく

楽天市場

2個は不要だがAmazonでも可

4WD Mini Robot Kit

秋月電子

-

代替なし

ミニブレッドボード

秋月電子

-

サイズ、穴数に注意

フルカラーLED

秋月電子

-

カソードコモンであること

LED光拡散キャップ

秋月電子

-

LEDと同サイズであること

抵抗470Ω(使用は5本)

秋月電子

-

470Ω~1kΩ程度

タクトスイッチ

秋月電子

-

小さいスイッチは外れやすい

ジャンパー線オス-メス黒
(使用は1本)

秋月電子

-

電流値、長さに注意

ジャンパー線オス-メス黄
(使用は1本)

秋月電子

-

色違いは接続ミス防止目的

※秋月電子でリンク切れになる場合はブラウザを更新してください。
※ダイソーについてはお近くの店舗で直接購入してください。

必要な工具

各1つずつ必要です。

部品名

購入先例

代替品の注意点

はさみ

ダイソー

一般的なもので代用可

直線定規

ダイソー

一般的なもので代用可

ドライバーセット

ダイソー

一般的なもので代用可だがサイズ指定あり

ラジオペンチ

ダイソー

一般的なもので代用可

ピンセット

ダイソー

一般的なもので代用可

ニッパ―

ダイソー

今回は「はさみ」でも代用可

※プラスドライバーのサイズはNo.0、No.1(M3/M2ネジ対象)、マイナスドライバーの刃幅は2.4mmくらいが良い。
※ダイソーについてはお近くの店舗で直接購入してください。

コース設置部材

完全版

ここではラズパイでAlpacar制御やディープラーニング推論ができるようにインストールを行います。
ラズパイの基本である「Raspberry Piの初期設定」「VNCで遠隔操作」「テキストエディタnano」は理解できている前提で進めます。

完全版

Raspberry Pi側のソースコード配置とGoogle Colabolatoryのソースコード配置を行います。
Google ColabolatoryはPC側の操作を想定しています。

完全版

では、ここから組み立てに入ってゆきます。
分かりやすいように写真をたくさん使い、文章による説明は短めにしています。

はじめに

ロボットカーの箱に入っている説明書とは少し異なる部分もあるので注意

ネジとナットの確認

ロボットカーの箱に入っている以下のネジとナットを確認

※その他の袋には大ネジが入っている(後で使う)

モーター固定

車体にモーターをはめて、小ネジとナットで固定する
ラジオペンチを活用することで締めやすくなる

手順1:モーターと小ネジを挿し込む

モーターの向きに注意。モーターの線が車体の内側になるようにする

手順2:ラジオペンチの先端でナットを掴む

なるべく先端で掴むこと

手順3:ナットを固定してドライバーで回す

使用している工具はプラスドライバーNo.0

全箇所で行う

先程の手順をモーター1個あたりに対して2箇所で実施。全モーター4個全て実施する

モーター基板取り付け

コネクタ付きジャンパー線が挿入されていたと思うが、使わないため両方とも外しておく

基板の穴4箇所に対し、写真の通り2箇所に大ネジと小スペーサーを取り付ける
ピンが4本ある側は、狭くて少しきついかもしれない

裏側の写真。最初は手で締めて、その後プラスドライバーNo.1を使ってきつく締めると良い

残りの大ネジを使って車体に取り付ける
取付方向は上記写真の通り、4ピン×2つのコネクタが左側に来るようにする

裏側の写真。取付位置は左寄せ。

写真の通り、右側のモーターのコネクタをそれぞれ取り付ける

同様に左側モーターのコネクタも写真の通りに取り付ける

タイヤ取付け

ゴムタイヤとホイールを取り出す

ホイールにゴムタイヤをしっかりはめる
ゴムタイヤは手で簡単に伸びる

4セット作る

モーターにタイヤをしっかりと挿し込み、タッピングネジをNo.1のプラスドライバーでなるべく真っ直ぐ締める

全ての箇所に取り付ける

完全版

完全版

完全版

完全版

完全版

環境をインストールして組み上げたアルパカーを、PCとVNCを使って一通り操作します!

完全版

完全版

まさに「実践!アルパカー」で行った内容そのものです。コースを作って走らせてみて下さい。

コースで走行のポイント

完全版

ここから後半開始です。
すでにColaboratoryは使ってきましたが、改めて使い方を学びましょう。

完全版

Pythonとは

Pythonは最近よく使われているプログラミング言語のうちの1つです。

完全版

完全版

完全版

完全版

カメラ映像の入出力、文字列の描画、画像の保存などを主に行います。

ハードウェア

Raspberry Pi用の高精細ビデオカメラ
接続箇所:Raspberry Piボード上の15ピンMIPIカメラシリアルインターフェイス(CSI)コネクタ

完全版

Pygameを活用してGamePadの入力を制御します。

ハードウェア

完全版

GPIOからPWMでモーター制御します。

ハードウェア

完全版

走行時のカメラ画像と操作データを保存する方法を学びます。
これまで学んだ組み込み技術の集大成です。

完全版

完全版

任意の画像を取り扱う

前のチャプターでは「Kerasのデータセットで学習して、Kerasのデータセットで推論」を行っていましたが、ここでは「任意の画像ファイルで学習して、任意の画像ファイルで推論」を行います。
これを実現するためには、画像データの準備及びGoogleドライブと連携が必要になります。

完全版

概要

これまでは「CNN分類」を行ってきましたが、ここからは「CNN回帰」を行います。

完全版

「運転データセット作成」で最後にアップロードしたデータを使ってディープラーニング学習を行います。

完全版

ここまではColaboratoryで静止画に対して1つずつディープラーニング推論していました。
ここではカメラ映像を入力して、リアルタイムにディープラーニング推論します。

完全版

リアルタイム推論結果をモーター制御に反映させ自動運転を完成させます!

総合演習

「リアルタイム推論」の演習解答にモーター制御を加えて、リアルタイム推論による自動運転を完成させてください。これまで学んだコードで対応可能です。

概要

完全版

ここではアルパカーに関するFAQを紹介しています。
不定期でアップデートします。

完全版

コンテンツの変更履歴です。

完全版