【ROS】ロボットを起動させるRobotOperatingSystem
現在、製造業をはじめとした産業界全体に期待されているのがロボットの存在です。
ロボットは、ご存知の通りコンピュータで制御されています。
そんなロボットを制御しているOSがあるのをご存知でしょうか。
今回はオープンソースになっているオペレーティングシステム、ROSについてご紹介します。
どのようなシステムで、どのような構成で成り立っているのか、見ていきましょう。
Contents [hide]
ROSとはどのようなシステム?
ROSとは、Willow Garageが開発しOpen Source Robotics Foundation(OSRF)というNPOが維持・管理・無料公開しているロボットシステムを設計する為のオープンソースソフトウェアを指します。
オープンソースのため、ロボット工学の研究者・開発者・技術者がROSを研究し汎用性の高いプログラムが書けるよう方法を記事やSNSで公開しています。
従来のロボットのブロックプログラムは規定の動きしか見せない集中管理型がメインでした。
しかし、集中管理型では効率が悪いため、ROSの分散処理方式がロボット開発に向いていると考えられます。
ROSにより提供されるライブラリとツールを使って、汎用性の高いプログラミングがおこなえるようになりました。
ROSを動かす構成を見てみよう
ROSは、先ほど紹介した通り分散処理システムモデルを採用しています。
分散処理ではノードと呼ばれるプログラムが同時並行的に複数のコンピュータ上で実行され、各々がネットワークを介して互いに通信を行いながら処理を進めるため、ロボットの複雑な動きも可能となります。
ノード間ではメッセージと呼ばれる通信が行われており、それぞれが応答し合いながらロボットを制御しています。
また、関連するノードはパッケージによって括られ、管理しやすくなっています。
世界中のユーザーが公開しているソフト
ROSは、世界中の開発者が公開しているノードを括ったパッケージを使い、プログラムコードを書くことが可能になりました。
また、ノード同士での通信(メッセージ)は開発者自身がデータ形式を決定できる仕様となっているので、汎用性が高くなってます。
つまり、ROSを構成するパッケージを組み合わせることによって、実行したいプログラムや機能を容易に組み込めるようになったのです。
この働きによって、ロボットの知識が深くなくてもROSコマンドとROS環境があればロボティクス(ロボット工学)を体験することができるようになりました。
つまり、あらゆる業種を超えたロボット開発が実現できるのです。
あの有名なロボットもROS対応に
実際にROSが使われているもので有名なものを挙げるとすると、“Pepper”が思いつくのではないでしょうか。
ソフトバンクロボティクスのPepperでは、ROSベースにより高品質な知能モジュールやツールの多くをアプリ開発で活用することができるようになりました。
またPepperがROS対応になったことで、サーボのコントロールを設定する事が可能になり急な動きでもバランスを崩して倒れる事が最小限に抑えられています。
ROSツールによりPepper自体の開発が容易になったのはもちろんのこと、性能としても格段も向上しています。
まずはROSの本を使って調べてみよう
ROSのサイトは残念ながら全て英語です。
ですから、今後ROSを学びたいという人は、ROSの参考書を手に入れるとよいでしょう。
無料で閲覧できる参考書もありますので、まずは勉強してみると、ロボットがより身近に感じられるかもしれません。