====== SIer様向けBUDDYカスタマイズ資料 ====== ===== 概要 =====  SOCIALROBOTICS社の汎用移動ロボットBUDDYは、内製のミドルウェア群を使用して安定した動きを実現してるが、操作・UI系はすべて内部に立てたサーバー、NGINX上で動作するWEB APPで行っている。  標準のAPP [Vehicle] は同様にNGINX上で動作するSystemUIと呼称される共通ライブラリを用いてミドルウェアと通信を行っている。このため、このAPPをカスタマイズすることによってロボットの本体のカスタマイズが可能となっている。さらに、ロボット側のIPアドレスを固定することによって、ローカルエリア内であればHTTPアクセスによってロボットと通信をすることが可能であり、これによって外部システム連携を実現する。また、USB経由でロボットに下位機器を接続することも可能であり、USBを経由した下位機器とAPPが通信をするための中継機能も備えている。 {{ :diagram_overview.jpg?600 |}} ===== ハードウェア ===== BUDDYの棚部は取り外しが可能となっており、自由に付け替えることができる。詳細は以下。 ==== Endeavor環境 ==== [[sier:endeavor:os|Endeavor 動作環境]] ===== APIと顔APP ===== BUDDYの操作UIはNGINX上で動作するWEBアプリであり、そのソースはGitHubにて公開している。 [[https://github.com/sa0219u2io/vehicle|GitHub]] APIの一覧と詳細は以下。 [[sier:api|API一覧]] ===== 外部LAN機器 ===== BUDDYは、上記APIを通じて、LAN経由で操作が可能である。通知の宛先を登録しておけば、ロボットからのPush型の通知として目的地に到着したことや、障害物検知で一時停止したなどの情報を受け取ることもできる。 APIの一覧と詳細は以下。 [[sier:api|API一覧]] ===== 外部USB機器 ===== BUDDYは、上記APIを通じて、BUDDY本体に取り付けたUSB機器と通信することができる。USB機器は汎用コミュニケーション機器であれば接続可能であり、送信はバイナリデータを含むいくつかのフォーマットで可能であり、受信はアプリからポーリングの形でロボットのデバイスキャッシュの取得が可能となっている。 APIの一覧と詳細は以下。 [[sier:api|API一覧]]