たかくんの成長

大学1年生、たかくんの成長を綴ります。学習記録や学生生活に関することが多いと思われます。

ROS(Robot Operating System)とはなにか

ROSとは

ROSとは,Robot Operating Systemの略で,ロボットの様々な要素を円滑に結びつけて操作できるようにするシステムのことである。様々な要素とは,例えば視覚情報を取得するためのカメラだったり,位置情報を取得するためのセンサーだったり,である。それらを独立にノードという概念で考え,ノードごとに情報をやり取りすることでスムーズに多くの機能を動作させる。

機器間でスムーズに情報を交換できる

ROSの一つのポイントとして,ノード間の情報のやり取りは場所を選ばないということである。どういうことかというと,例えばロボットにつけたカメラが映像を記録したとすると,その情報をWi-Fiを通してパソコンに飛ばし,パソコンのディスプレイに情報を渡すことで映像を確認できるようにしたり,さらにはゲームのコントローラを繋げることで,パソコンのディスプレイを見て,ロボットを遠隔操作することが可能になったりする。スマートフォンで遠隔操作だって,勿論出来る。

オープンソースライブラリ

また,ROSはオープンソースなので,利用できるパッケージが豊富であり,様々な操作を行える。ROSはどんなプログラミング言語で記述することも出来る。C++PythonLispを使うことが多いようだ。似たようなシステムにMRPT, CARMEN, LCM, Player, Microsoft RDSといったものがある。しかし,言語のサポートが不十分な点や,機器間の情報伝達が上手く最適化されていない点などから,ROSの方が優勢であるようだ。ROSは現在,Unix系のOSのみで動作する。

f:id:karia68:20180815121716p:plain

 

参考

ROS/Introduction - ROS Wiki

ROS 101: Intro to the Robot Operating System | Robohub

An Introduction to Robot Operating System | Toptal

Your first robot: Introduction to the Robot Operating System [2/5] | Snapcraft