Raspberry Piを使って

ロボットカーを作成しました。

実際に動かすためにやったとこは

ProtoPediaの方に書いてあるので

そちらをご覧ください。

https://protopedia.net/prototype/3058 


作ったソースコードはこちらです。


ここは主に経緯や感想を書いていきます。

元々はLiDARセンサーが気になっていたところ
IoTLTで動かしている方がいました。

このセンサーで何かできないかと
買ったのがきっかけです。

センサーを動かすために
ROSを使って動かしたのですが
ROSと言うロボットを動かすソフトウェアを
全く知らない状態でした。
そして、センサーはロボットの制御のための
一部だと気づきました。。
だったらロボットカーを作りたいと思いました。

書籍を参考にギアボックスなどを購入。
書籍はキャタピラですが、タイヤにしてみました。
【参考書籍】


とりあえずモーターとモータードライバ
タイヤを付けて動かせるようにしました。

モーターでタイヤが動くのを確認して
LiDARセンサーを取り付け
さらにモータードライバを
ブレットボードから基盤にはんだ付けして
見た目もすっきりさせました。


コントローラーで動かせるようにしたのが
こちらの動画です。


ここまでは、
ギアボックスを組み立てたり
配線したりはんだ付けしたりして
自分で動かせるものが
スムーズできて楽しかったです。

問題はここから。。

UnityとROSがつながるなんてすごい!
と思って面白そうなので買ってみました。
【参考書籍】


Unityはclusterのワールドを作ったので
少しわかるかもと思ったんですが。。

書籍のサンプルはシュミレターみたいに
仮想のロボットの車を動かすものです。
これを実際のものに置き換えると
うまく動きませんでした。
さらに、もっとROSを理解しないといけない
みたいで、動かない原因がわからず。
検索しても英語のサイトが
なんとかある感じで情報が少ない。。

Unity用のコードを読んで
少し変えたり、表示させたりして
それでも動かない。。
最終的にスクリプトを自分で書いて
なんとか無理やりUnityのオブジェクトと
RaspberryPiの車の動きを連帯できました。
(作ったスクリプトは1番上のGitHubにあります)

そして、動いたときの動画です。


次はセンサーもUnityに表示させたい思ったんですが。。
今度は動くけど、車自体といっしょに
回ってしまいました。


これもUnity用のコードを少し変えたり
動かしたりを繰り返して、、
最終的に表示してる部分のコードを
変更して、無理やり連帯して
回らないようにしました。

このときの動画です。


次はコントローラーでなく
自動で走行させたいと
ROSのNavigationを入れてみましました。

ただ、トピックからモーターを動かす
プログラムがネットであまりなく
ROSのパラメータも多くよくわからない。。

こちらの方のプログラムをPythonに置きかえて
簡易的にしてなんとか動きました。


自動走行の動画です。


ROSとUnityは難しかったですが
実際のものとPCの表示が連動したり
自動で動いたりして
やっと動いたときは
やっぱり嬉しくて楽しいですね。