ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

深層強化学習用ロボット作成手順

Ⅰハードウェア組み立て

ハードウェア組み立て

とにもかくにもまずはハードウェアを組み立てよう。

Ⅱソフトウェア設計

ソフトウェア設計
マイコン側(Arduino)とPC側のソフトウェアを設計しようFig.1

Ⅲ 手動で動作確認

手動で動作確認
ロボットちゃんが自分の体や周りの環境を傷つけてしまうかもしれない。
まずは手動でモーターの動作確認して、いけないアングルだったら、マイコン側(Arduino)で問題ない角度に収まるようにコーディングしよう。

if(angle > max_angle)
   angle = max_angle;

ニュートラルポジションを設定

Arudino IDE 2はSerial Plotterから文字を送ることができる。
'a'を送信して、各モータがニュートラルポジションになるようにしよう。

(1)実機で学習とテスト:マイコン側とPC側のコーディング

実機で学習とテスト

マイコン

マイコン側は手動で動作確認したものをベースにPC側から送られてくる値にしたがって、動作するように改変しよう。

PC側

マイコン側に送る値を定義しよう。 Arduino場合シリアル通信がもっとも手軽だけど、通信速度がネックかも...。

①シミューレーションで学習とテスト

Sim2Real
実機で学習することは現実的にかなり時間がかかる。
NVidiaGoogleはシミューレーションで学習してそれをリアルに反映(Sim2Real)させるアプローチを取っている。

参考

深層学習&深層強化学習による電子工作 [第13章]

Fig.1 ソフトウェア作成手順

ソフトウェア作成手順