ROS

 

ROS(ロス)とはロボット用のソフトウェアプラットフォームである。ROSはその名に「Operating System」を含むが、Microsoft WindowsiOSのようなコンピュータオペレーティングシステム (OS) ではなく、既存のOS上で動くミドルウェアソフトウェアフレームワークの一種であり、「メタオペレーティングシステム」 (meta-operating system) とも説明される。

ROSはロボットソフトウェアの共同開発を世界規模で推進することを目指している。スタンフォード大学の学生が開発した「Switchyard」プロジェクトを起源にもち、それを引き継いだアメリカのウィローガレージ社が2007年に本格開発を開始し、2010年に最初のリリース版が公開された。その後、非営利団体「オープンソースロボット財団」(現「オープンロボティクス」)が設立され、ROSの開発を主導する役割が引き継がれた。オープンソースソフトウェアとして開発・公開されており、世界中から多くの人々が開発に参加している。

ROSが動作するOSはUbuntuLinux MintなどのLinuxが中心で、macOSWindowsAndroidでも一部の機能が対応している。ハードウェアの抽象化、低レベルのデバイス制御、汎用的な機能の実装、プロセス間のメッセージ通信パッケージ管理などを行うほか、ソフトウェアの開発や実行などのためのツールやライブラリを提供する。分散コンピューティングシステムとして設計され、ロボットに必要な様々な計算を複数のプロセスで並列的に行う。各プロセスは単独または複数のコンピュータ上で実行可能であり、処理結果を相互に送受信しながら、1つの大きなソフトウェアシステムとして動作する。ROSのソフトウェアは「コアユーティリティ」と「パッケージ」に分かれており、ユーザは使いたい機能のパッケージを選択してインストールすることで、ロボットに必要な各種機能を利用できる。パッケージは自作することが可能で、ROSはC++Pythonをはじめ、LispJavaなど多数のプログラミング言語をサポートしている。

ROSを搭載したロボットは、移動ロボットやロボットアームのほか、ヒューマノイド自動運転車無人航空機(ドローン)、自律型無人潜水機などと様々である。学術研究を主な対象として開発が始まったROSだが、次第に産業用途にも利用範囲が広がり、ROSを搭載したロボットが製品化され市場に登場するようになっている。新たな利用領域に求められる機能を実装するため、ROSの次世代バージョンである「ROS 2」の開発・リリースも始まっている。

SLAM

SLAM

(スラム)とは、自己位置推定と環境地図作成を同時に行うことを言う。

正式名称は、Simultaneous Localization and Mapping。

Lidarなどのセンサを搭載した移動体が走行を行いながら周囲の環境をセンシングすることで、二次元もしくは三次元の環境地図の作成を行う。同時に移動体の移動量の推定を逐次的に行うことで環境地図上での自己位置推定も行われる。カーナビのように既存の地図上でのGPSを用いた自己位置推定とは異なり、地図の存在しない屋内などの環境でも自己位置推定が行える。

位置の推定やマップ作成で利用されるセンサには、レーザーレンジスキャナー(測域センサLidar)、カメラ、エンコーダ、マイクロフォンアレイなどが用いられることが多い。

身近な利用例として、電機系各社が販売するロボット掃除機が挙げられる。この場合、清掃の対象の居室の形状、及びその室内に対する自機位置の検出をすることにより、移動経路及び清掃順路の最適化と、それによる効率化、節電、清掃力の向上、可能清掃面積の拡大等を図ることが出来る。更にPanasonic製ロボット掃除機「RULO」(MC-RS800)等では、スマホアプリに二次元地図を表示することにより、室内の清掃状況や汚染状況の情報を利用者に提供することも成されている。

屋外に於ける利用例として、宅配ドローン制御用の三次元地図を効率的に作成するために、車両に載せ道路を走り情報を集める手法にも利用される。