こんにちは、プラスプラスの真山です。
そもそもRobot Operating System(ROS)ってどういうものなのでしょう?
Robot Operating System(ROS)
ROSは 米国のロボットベンチャー企業であるWillow Garage社が開発を開始し、Open Robotics が開発・メンテナンスしているロボットソフトウェアプラットフォームです。
ソフトウェア開発者のロボット・アプリケーション作成を支援するライブラリとツールを提供しています。
具体的には、ハードウェア抽象化、デバイスドライバ、ライブラ、視覚化ツール、メッセージ通信、パッケージ管理などが提供されています。ROSはオープンソースの一つで、BSDライセンスによりライセンス化されています。
ROSの目的は, ロボット工学分野の研究・開発におけるコードの"再利用"をサポートするというものがあります。
ROSの特徴
分散プロセス
ノードと呼ばれる実行可能な最小単位のプロセスにより、全体の機能が実現される。各ノードは独立して並列的に動作し、双方向のデータ通信が可能。
パッケージ管理
同じ目的で作成された複数のノードは、まとめてパッケージとして管理される。パッケージの利用、共有、修正、再配布はどれも簡単にできる。
公開リポジトリ
開発されたパッケージは、GitHubなどの開発者のリポジトリを通して公開される。ただし、各パッケージには適切なライセンスが付いている。
APIの整備
ROS とは無関係に開発されたプログラムも、ROSで提供されるAPIを使えば、簡単にROSで利用できるプログラムに変更できる。
多数のプログラミング言語をサポート
ROS が提供するクライアントライブラリによってPython、C++、Lisp などの一般に広く利用されている言語から、Java、C#、Lua、Rudy などの個別のアプリケーション開発に特化した言語まで、様々な言語を利用することができる。このため、自分がよく使うプログラミング言語を使って、ROSの開発ができる。
これらの特徴から、ROSではソフトウェアの共同開発が容易であり、さらにコードの再利用が活発になり、ロボット研究が加速すると言われています。
まとめ
要するに、
様々なプログラミング言語を使い ノード という実行ファイルを作って パッケージ でまとめて管理や実行ができ、複数のシステム間で共通のノードが使用できる。(一個作れば名前を変えて再利用可能!言語の連携も自由自在!)
そのパッケージは(ライセンスによって)世界中に公開・使用ができ、公式ROSパッケージは約4000個以上あるらしい。(非公式なら約4600個)
そして開発者を助ける豊富な開発ツールによって、データの可視化・デバッグ・記録・再生などが簡単に行える。
というロボット開発にはとても便利な機能が備わっています。
因みにSoftBankのPepperくんもROSで作られているみたいです。よく喋るアイツ、すごいですね〜!
次回からは実際にROSをインストールしてみます。