プラスプラス開発者ブログ

岩手県盛岡市のシステム開発会社「株式会社プラスプラス」の開発者ブログです。

Robot Operating System(ROS)の概要

こんにちは、プラスプラスの真山です。

そもそもRobot Operating System(ROS)ってどういうものなのでしょう?

Robot Operating System(ROS)

ROSは 米国のロボットベンチャー企業であるWillow Garage社が開発を開始し、Open Robotics が開発・メンテナンスしているロボットソフトウェアプラットフォームです。

ソフトウェア開発者のロボット・アプリケーション作成を支援するライブラリとツールを提供しています。

具体的には、ハードウェア抽象化、デバイスドライバ、ライブラ、視覚化ツール、メッセージ通信、パッケージ管理などが提供されています。ROSはオープンソースの一つで、BSDライセンスによりライセンス化されています。

ROSの目的は, ロボット工学分野の研究・開発におけるコードの"再利用"をサポートするというものがあります。

ROSの特徴

分散プロセス

ノードと呼ばれる実行可能な最小単位のプロセスにより、全体の機能が実現される。各ノードは独立して並列的に動作し、双方向のデータ通信が可能。

パッケージ管理

同じ目的で作成された複数のノードは、まとめてパッケージとして管理される。パッケージの利用、共有、修正、再配布はどれも簡単にできる。

公開リポジトリ

開発されたパッケージは、GitHubなどの開発者のリポジトリを通して公開される。ただし、各パッケージには適切なライセンスが付いている。

APIの整備

ROS とは無関係に開発されたプログラムも、ROSで提供されるAPIを使えば、簡単にROSで利用できるプログラムに変更できる。

多数のプログラミング言語をサポート

ROS が提供するクライアントライブラリによってPythonC++Lisp などの一般に広く利用されている言語から、JavaC#Lua、Rudy などの個別のアプリケーション開発に特化した言語まで、様々な言語を利用することができる。このため、自分がよく使うプログラミング言語を使って、ROSの開発ができる。

これらの特徴から、ROSではソフトウェアの共同開発が容易であり、さらにコードの再利用が活発になり、ロボット研究が加速すると言われています。

まとめ

要するに、

様々なプログラミング言語を使い ノード という実行ファイルを作って パッケージ でまとめて管理や実行ができ、複数のシステム間で共通のノードが使用できる。(一個作れば名前を変えて再利用可能!言語の連携も自由自在!)

そのパッケージは(ライセンスによって)世界中に公開・使用ができ、公式ROSパッケージは約4000個以上あるらしい。(非公式なら約4600個)

そして開発者を助ける豊富な開発ツールによって、データの可視化・デバッグ・記録・再生などが簡単に行える。

というロボット開発にはとても便利な機能が備わっています。
因みにSoftBankのPepperくんもROSで作られているみたいです。よく喋るアイツ、すごいですね〜!

次回からは実際にROSをインストールしてみます。

参考文献

www.oreilly.co.jp

www.ohmsha.co.jp

shop.nikkeibp.co.jp