情報畑でつかまえてロゴ
本サイトは NTTテクノクロスが旬の IT をキーワードに
IT 部門が今知っておきたい最新テクノロジーに関する情報をお届けするサイトです

ROSとドローンの関係について

第2回目となります今回は、ブログのテーマになっている、「ROS」についての解説と、ドローンとの関係性について説明していきたいと思います。

はじめに

こんにちは。NTTソフトウェアの安井です。第2回目となります今回は、ブログのテーマになっている、「ROS」についての解説と、ドローンとの関係性について説明していきたいと思います。

ROSについて

ROSとは、Robot Operating System の略で、ロボット開発のためのソフトウェアの集合です。Operating System という名称であるため、Windows、Linux、Android、iOSを想像する方もいらっしゃるかと思いますが、ROSはUnixベースのOSで動作するミドルウェアの位置づけになります。現在安定して動作するOSは、LinuxディストリビューションのUbuntu となっております。

ROSが提供する主なサービスとして、デバイス制御、プロセス間通信、パッケージ管理などが提供されています。

ROSの特徴として、分散処理方式のミドルウェアであることが挙げられます。分散処理により、機能を分割でき、効率よく処理が可能となります。

ROSの通信モデルについて

ROSには、基本的な通信モデルとして、2つの通信モデルがあります。

Pub/Sub型

ある箱を用意して、そこに今の状態をデータとして送る人と、その状態のデータを受け取とる人によって、動作するモデルになります。

こちらの動作について、ROSの用語では、以下のように定義されています。

用語 用語説明
Topic

ある箱のこと。

メッセージの送受信をリレーします。
Publisher 状態をデータとして送る人のこと。
Subscriber 状態のデータを受け取る人のこと。
Node

Publisher、Subscriber は、Nodeと呼ばれる。

ROSパッケージ内の実行ファイルに該当します。
Publish ある箱へデータを送ること。
Subscribe ある箱からデータを受け取ること。

Pub/Sub型は、基本的に非同期で動作しており、データを送る人は送るだけ、データを受ける人は、そのとき問い合わせたときに格納されたデータを取得するのみです。

また、Nodeは、PublisherとSubscriber の両方の役割を持つ場合もあります。

Pub/Sub型の動作概要

論理的には、Topicを利用した「ブローカー型」と呼ばれる仲介役による通信モデルではありますが、物理的にはTopicはPublisher側の子プロセスとして動作しています。

サービス型

動作の開始/終了や、決まった命令を1回だけ実行したいときなどに動作するモデルになります。

Server-Clientモデルを、Nodeで構成し、Server側のNodeに、実行したい処理(サービス)が格納されています。

サービス型では、Pub/Sub型の非同期処理とは異なり、同期的に処理を行います。

サービス型の動作概要

2つのモデルが存在しますが、ROSではほとんどがPub/Sub型を利用したものが用いられます。また、特徴である分散処理を行うために、roscore と呼ばれるNodeを管理する仕組みが用意されています。

用語 用語説明
roscore Master + rosout + パラメータサーバ
Master ROSのネームサービスとして以下の機能に用いられる。
・NodeやTopicの管理
・Node同士が検索するとき等に利用
・Nodeの名前解決、ログの記録、データの蓄積・操作
rosout ROSにおけるログ出力(標準出力)の機能を持つ。
パラメータサーバ パラメータ(変数)を共有することができる。
ROSの概要

ROSとドローンの関係

なぜ、ドローンにROSなのか。
ROSは、OSSとなっており、デバイスドライバと呼ばれるデバイスとの接続をサポートしてくれる機能が、多くのデバイス向けに用意されています。ドローン用にも用意されているものもあり、新しい製品向けにも、様々なユーザによって作成されています。
このドライバを利用することにより、開発者はドローンの差異をあまり意識せずに開発を進められることが、ドローン技術の成長を加速させていく可能性を持っていることが、ROSを利用する理由としてあげられます。
また、こちらのデバイスドライバを利用し、ROSの特徴である分散処理を活かすことで、協調飛行なども一からすべて実装するよりは、容易に実装できることが可能となることも、ROSを利用する理由にあげられます。

ROSとドローンの関係

このように、細かい飛行制御が可能となるため、規制の整備や事故の回避にも応用できるのではないかと、考えています。

おわりに

今回はROSの解説を含め、概念的なことをご紹介しました。 ドローンをROSで制御する、と言えば簡単ですが、いくつか課題が存在します。 次回以降では、その課題やドローンを制御するために提供されているSDKについても、解説していく予定です。次回もご購読いただけると幸いです。
著者プロフィール
安井 政人
安井 政人
新しい技術や、スキルの習得を好み、幅広い分野に柔軟に対応できるオールマイティなシステムエンジニア。 最近ではドローンやロボットの技術に注目し、業務を通じてNTTテクノクロスのドローン先駆者になるべく、絶賛奮闘中。 プライベートでは三姉妹のパパ。家の中は男一人で少し肩身が狭いですが、逆境にも負けず子育ても頑張っています!!