自動運転RCカーDonkey Carの走行中のスロットル値、アングル値をWeb画面で参照できるようにしたテレメトリを作ってみた。
左が操舵方向(アングル値)、右がスロットル値をあらわしている。
デバイス側であるDonkey CarはRaspberry Piであり、自律運転という機能上の制約でRaspberry Piへの負担はできるだけ下げておきたいため、通信負荷の低いMQTTを採用した。
ブローカは、テストには eclipse-mosquitto、本番には IBM Watson IoT Platformのライトプラン無料枠で動かしている。
ソースコードは以下のリポジトリを参照のこと。
Donkey TelemetryリポジトリがWebアプリケーション側で、Donkeypart TelemetryがDonkey Car上に搭載するパーツクラスが格納されている。
細かい話はGitHub上のドキュメントを参照のこと。
IoT Platform接続にpahoを使おうと頑張っていたが、IoT Platfromのクセ(仕様)が強いので、めんどくさくなりibmiotfパッケージを使った。
テレメトリの場合はDonkey Carがpublisher側としてパーツを実装すればよいが、運転情報をネットワーク経由で取得する場合はsubscriberとして実装しなくてはならない。
ただ、最新イメージをネットワークへ送信するプログラムも必要なので、外部オートパイロットは、もう少し考えないといけない。
あとIoT Platformではバイナリも送れると書かれているのだけど、ibmiotfパッケージはJSONデータを送るだけの実相しか無いので、イメージデータを送るために専用のMessageクラスやCodecクラスを作らないと駄目だった。ご注意を。
左が操舵方向(アングル値)、右がスロットル値をあらわしている。
デバイス側であるDonkey CarはRaspberry Piであり、自律運転という機能上の制約でRaspberry Piへの負担はできるだけ下げておきたいため、通信負荷の低いMQTTを採用した。
ブローカは、テストには eclipse-mosquitto、本番には IBM Watson IoT Platformのライトプラン無料枠で動かしている。
ソースコードは以下のリポジトリを参照のこと。
[GitHub] Donkey Telemetry
https://github.com/coolerking/donkeypart_telemetry
[GitHub] Donkeypart Telemetry
https://github.com/coolerking/donkeypart_telemetry
Donkey TelemetryリポジトリがWebアプリケーション側で、Donkeypart TelemetryがDonkey Car上に搭載するパーツクラスが格納されている。
細かい話はGitHub上のドキュメントを参照のこと。
IoT Platform接続にpahoを使おうと頑張っていたが、IoT Platfromのクセ(仕様)が強いので、めんどくさくなりibmiotfパッケージを使った。
テレメトリの場合はDonkey Carがpublisher側としてパーツを実装すればよいが、運転情報をネットワーク経由で取得する場合はsubscriberとして実装しなくてはならない。
ただ、最新イメージをネットワークへ送信するプログラムも必要なので、外部オートパイロットは、もう少し考えないといけない。
あとIoT Platformではバイナリも送れると書かれているのだけど、ibmiotfパッケージはJSONデータを送るだけの実相しか無いので、イメージデータを送るために専用のMessageクラスやCodecクラスを作らないと駄目だった。ご注意を。