便利な通信用ライブラリにYARP(Yet Another Robot Platform) というのがあるけど、日本語のサイトがあまり無い(皆無?)ので改めて勉強がてら分かった事をメモする。
とりあえずOfficial Documentation に飛ぼう。
YARPって何?
ライブラリであり、プロトコルであり、モジュールやデバイスをきれいに分断した状態に保つためのツール(メインは、マルチスレッド/プロセス/CPUのシステムで面倒なデータ通信の面倒を見てくれる便利なものだと思っている)
フリーのオープンソフトウェアであり、ライセンスはGNU GPL。
元々、PCクラスタを使ったロボットを制御するのに便利なツールとして開発された YARPコンポーネントは次の3つの要素で構成されている。
- libYARP_OS - CPUやスレッド間の簡単なデータ転送をサポートするためのOSとのインターフェース。 YARPはOS非依存となるように書かれていて、Linux, Windows, Mac OSX, Solaris上で動く。YARPはACE(ADAPTIVE Communication Environment)ライブラリを使用している。大半はC++で書いてある。
- libYARP_sig - 一般的な信号処理タスク(視覚、聴覚)を行う。OpenCVといった他の一般的なライブラリに簡単に繋がるように配慮してある。
- libYARP_dev - ロボットで一般的に使われるデバイスとのインターフェース。対象デバイスは、カメラ、デジカメ、モータ制御ボードなど。
