potblog

技術メモとかガジェットレビューとか

ROSのシステム構成図

センサやアクチュエータを用いる場合のROSのシステム構成図

センサやアクチュエータとPC(ROS)のシステム構成図を以下に示す。

脳みそとなる部分にはPCを用いる。PCはデスクトップ型やノート型、Raspberry Piシリーズなどubuntuの動くものであれば良い。
センサ類は基本的にusbでPCと接続する。組み込み用途のセンサなどusbでデータを送れないセンサは、一旦電子基板で処理してからPCにusbなどで送る。
アクチュエータ類もPCから直接は動かせないので、一度ドライバなどの電子基板を経由して駆動させる。
PCは得られたセンサ類の情報から次に駆動させるアクチュエータの計算を行う。

ARC2017に出場しROSを用いたチームのシステム構成図を示す。

複数のカメラ、役割分担された複数のPCを用いているが、基本的な構成は同じである。

ROSの利用になぜubuntuが必要なのか

ROSが動くOSはwindowsではなくubuntuである。
PCには複数のOSを入れることができ、下図のように起動時にOSを選択することが可能である。

ubuntuの適当な画面のスクリーンショット ああ

windowsubuntuの共通点

  • 「デスクトップ」「ウィンドウ」「メニュー」「アイコン」「ボタン」などが存在し、マウスやキーボードで操作できる
  • webブラウジングや文章作成、動画視聴などが可能

ROSの利用におけるubuntuの必要性

  1. ソースコードが公開されており、環境が整えばだれでも利用・開発できるソフトウェアとしてオープンソースソフトウェア(以下OSS)がある
  2. OSSの一例として人口知能ブームの一員となったgoogle機械学習ライブラリのTensorflowやWebサーバーソフトウェアのapache、ロボット開発ツールの一つであるROSなどが挙げられる
  3. OSSwindowsで実行できる形で配布されていることは少なく、ツールの推奨環境のOSを利用する必要がある
  4. ROSの推奨環境のOSはubuntuであるため、ubuntuを利用する

OSSの利用について

OSSプロプライエタリ(特定の企業や団体が権利を保有し、その具体的詳細を公開していないこと)ソフトウェアのメリット・デメリットを示す

ROSを利用する目的

多種多様なロボットに対して、複雑で外乱に強いロボットの動作の開発を行うため

例えば、単純な「物を拾う」というタスクについて考えてみる。
このタスクでは、あるオフィスアシスタント用のロボットが、ホッチキスを取ってくるように指示された、と想定する。

  • ロボットは指示を理解する必要がある
    • 指示の伝えられる手段は口頭?Web?メール?
  • ホッチキスを探すための計画を立てる必要がある
    • 建物の通りぬけ
    • ホッチキスの判別
  • 元の場所に帰る必要がある
    • 環境地図から経路を算出

このように、複数のタスクをこなすロボットの開発をターゲットにしている。
一つ一つのタスクには有用なアルゴリズムが開発されているかもしれない。
ROSは、このような大規模な協力体制を実現するための特徴を複数持っている。

特徴の一つがトピック通信である。