Ⅰハードウェア組み立て
とにもかくにもまずはハードウェアを組み立てよう。
Ⅱソフトウェア設計
マイコン側(Arduino)とPC側のソフトウェアを設計しようFig.1。
Ⅲ 手動で動作確認
ロボットちゃんが自分の体や周りの環境を傷つけてしまうかもしれない。
まずは手動でモーターの動作確認して、いけないアングルだったら、マイコン側(Arduino)で問題ない角度に収まるようにコーディングしよう。
if(angle > max_angle) angle = max_angle;
ニュートラルポジションを設定
Arudino IDE 2はSerial Plotterから文字を送ることができる。
'a'を送信して、各モータがニュートラルポジションになるようにしよう。
(1)実機で学習とテスト:マイコン側とPC側のコーディング
マイコン側
マイコン側は手動で動作確認したものをベースにPC側から送られてくる値にしたがって、動作するように改変しよう。
PC側
マイコン側に送る値を定義しよう。 Arduino場合シリアル通信がもっとも手軽だけど、通信速度がネックかも...。
①シミューレーションで学習とテスト
実機で学習することは現実的にかなり時間がかかる。
NVidiaやGoogleはシミューレーションで学習してそれをリアルに反映(Sim2Real)させるアプローチを取っている。
参考
深層学習&深層強化学習による電子工作 [第13章]