ロボット導入を円滑にするSaaS型サービス

要件定義の精度を高め、社内外関係者への情報共有を効率的に行い、
仕様漏れも無くす工場自動化の要件定義サービスです。

専用ツールはこちら

仕様検討の精度を高め、社内外関係者への情報共有を効率的に行い、仕様漏れも無くす工場自動化の仕様管理サービスです。

専用ツールはこちら


こんにちは!
産業用ロボットの情報を発信しているROBoINです。[◎△◎]

実は、ロボイヌの半分(ロボット部分)はROSで動いているらしいのです。ここだけの話ですが、ROSが何なのか未だにわかっていません。

「Robot Operating System」ですね。「OS」という名前になっていますが、コンピュータのOSとはイメージが違うかもしれません。

近年、ロボット開発の現場ではROS(Robot Operating System)が広く利用されるようになりました。しかし、ロボット開発に携わっていない人にとっては、まだまだ認知度の低いものです。

そこで本記事ではROSとその構成要素について解説します。さらに、複数台のロボットに対応可能なROS2やROSの事例についても紹介しています。

ロボット開発に携わる可能性があるなら、ROSについて学ぶべきでしょう。しかし、ハードルが少し高いかもしれないのでその前に本記事を読み、どのようなものかを知っておくことをおすすめします。

工場自動化・ロボット導入に関してお悩みがあれば、お気軽にROBoINまでお問い合わせください!
多数の企業が参加する弊社独自のコミュニティを駆使して、お悩みに沿った最適なご提案をさせて頂きます。

ROSとは?ロボット開発プラットフォームだった!

ROSとは?

ROS(Robot Operating System)は、オープンソースのロボット制御ソフトウェアおよびロボット開発の基盤となるサービスのこと。ROSはオープンソースなのでプログラムは無償で公開されていて、複製・改造・再配布が可能です。

つまり、ROSはロボット開発ツールやライブラリが含まれているプラットフォームと言っても良いでしょう。

では、なぜROSはオープンソースという形態を取っているのでしょうか。

ROSはオープンソースなので誰でも利用可能!

ROSがオープンソースなのは、ロボットソフトウェアの共同開発を世界規模で推進することを目的としているからです。

ROSを開発したのは、米国企業・Willow Garage(ウィローガレージ)社。ロボット工学分野の研究開発におけるソースコードの再利用を支援するのが目的でした。

ただし、ROSを管理しているのは開発したWillow Garageではなく、非営利団体Open Source Robotics Foundation(オープンソース・ロボティクス財団・OSRF)です。日本国内ではトヨタ社などがOSRFを支援しています。

各ロボットメーカーもROSを利用することができるので、開発コストや開発時間の短縮が可能です。

ROS利用者は年々増加!

ROSは年々利用者が増加しています。その理由はROSがオープンソースというだけではありません。実はコミュニティ活性化に注力しているという理由もあります。

2020年のデータでは、ROSのダウンロード数は約3,900万件でした。2011年(リリースの翌年)のダウンロード数が4,511件だったことを考えると、破竹の勢いで伸びていると言っても過言ではありません。

ダウンロード数が伸びている要因として考えられるのがコミュニティです。日本国内でも『ROS Japan User Group』などのコミュニティやワークショップなどがあり、困ったときには助け合えるというメリットがあります。

ところで、ROSは具体的にどのようなものが含まれているの?

ROSを構成する4つの要素

ROSは次の4つの要素から成り立っています。

  • plumbing(通信)
  • tools(ツール群)
  • capabilities(機能群)
  • ecosystem(エコシステム)

それでは、それぞれについてもう少し詳しく解説しましょう。

【ROSの構成要素】plumbing(通信)

ROSは分散システムを採用しています。分散システムはロボットの処理に向いているとされているシステムです。分散システムではノード間の通信が必要となるので、出版購読型(publish/subscribe)のメッセージ通信基盤を採用。これにより、容易にシステムの構築が可能となりました。

【ROSの構成要素】tools(ツール群)

ROSは分散コンピューティングシステムに関する下記のようなツールを提供しています。

  • 設定ツール
  • 起動ツール
  • 監視ツール
  • ビルドツール
  • 動作環境シミュレータ
  • デバッグツール
  • 可視化ツール
  • ログ取得ツール
  • テストツール
  • 停止ツール

【ROSの構成要素】capabilities(機能群)

ROSは機能群として、

  • 移動
  • マニピュレーション
  • 知覚

などの機能をロボットに実装するライブラリを提供。特に下記の

  • Navigation Stack
  • MoveIt

ライブラリはロボットの有用な機能がまとめられていることから、ROSの2大パッケージと呼ばれています。

【ROSの構成要素】ecosystem(エコシステム)

ROSは、下記のような大規模なコミュニティによって支えられ、日々進化を遂げています。

  • ros.org:大量のROSパッケージを取得し学習できるワンストップサービス
  • ROS Wiki:ROSのチュートリアル
  • ROS Answers:ROSについての質問
  • ROS Dicourse:ROSについての議論
  • RIScon(ROScon JP):年1回のイベント

上記のコミュニティによって、活発な活動が繰り広げられています。

また、2020年のROSconは「ROS World 2020」と名称を変更してオンラインで開催されました。

ところで、ROS2というものがあると聞いたのですが、ROSとは全く異なるものでしょうか?

ROS2とは?新たに実装された機能を紹介

ロボットの技術は日々進化し続けています。また、ロボットの利用状況も日々変化しています。以前はロボットと言えば大手企業が利用する産業ロボットが主流でしたが、現在では中小企業や一般家庭でも利用されるようになりました。

そのような時代の流れから、ROSもROS2へと進化しています。元々、ROSは学術研究から開発が始まりましたが、現在は商用利用が主な目的。したがって、ROS自体も商用利用へとシフトチェンジしなければなりません。それがROS2です。

ROS2では主に次の機能が新たに実装されました。

  1. スクラッチ開発
  2. DDS採用
  3. マスターレス化
  4. リアルタイム制御
  5. 複数台のロボットに対応

それでは、上記の機能について簡単に解説しましょう。

スクラッチ開発

従来のROSは商用利用をするには品質的に難しい状況でした。しかし、スクラッチ開発(1からオリジナルのシステムを開発する)によって、商用利用が可能な品質の製品開発ができるようになっています。

DDS採用

ROS2では通信ミドルウェアとしてDDS(Data Distribution Service)を採用しています。

DDSは米国の国防総省や金融システムで採用され信頼性が実証されている通信ミドルウェアです。

マスターレス化

従来のROSでは、マスターに接続して他のノードを参照するという方式を採用していました。しかし、マスターが単一障害点になるので、ROS2ではマスターレス化を採用。ドメインIDで区別するという方式に変更しました。

マスターレス化によって、単一障害点の排除が可能となります。

リアルタイム制御

従来のROSではリアルタイム制御は特別な仕組みにのみ対応していました。しかし、ROS2ではノードプログラミングでのリアルタイム制御に対応。これにより、一般的なプロセス内で対応することができるようになりました。

さらに、ROS2ではリアルタイムOS(RTOS)との連携もできるように設計されています。

複数台のロボットに対応

従来のROSでは単体ロボットのみ利用可能でした。しかし、ROS2では複数台のロボットに対応が可能

それでは、具体的なROSの使用例を紹介しましょう。

ROSを使用したロボットの事例

ROSを使用した下記2つの事例を紹介します。

  • ロボットに文字を書かせる
  • ブロック取り出し制御

どちらも人間が実施すると非常に簡単な動作ですが、ロボットにとっては難しい作業です。動画を見ながらどのようにROSが利用できるのかを確認してください。

ROSを用いてロボットに文字を書かせる

こちらの動画はペンを使って文字を書く動作を行うROSの事例です。文字を書くという動作は簡単に思えますが、実際は非常に複雑な計算が必要となります。では、ROSを使用すればどのようになるのでしょうか。

動画でご確認ください。

モーションキャプチャによって人が文字を書くのと同じようにロボットが動作します。ROSによって、従来のティーチングとは全く異なるアプローチが可能です。

ROSによるブロック取り出し制御

下記の動画は上部からロボットアームと対象物を撮影し、画像処理を行っています。ROSによって、黄色のブロックを取り出す制御です。

最初に置かれているブロックだけでなく、追加で置かれたブロックも認識して取り出すというプログラムになっています。

ROSを利用するとロボットの開発だけでなく、ロボットの導入も時間短縮ができそうですね!

ROSについてのまとめ

本記事ではロボット開発に欠かせないROS(Robot Operating System)について詳しく紹介しました。それでは、もう一度記事を振り返ってみましょう。

ROSとはロボット開発ツールやライブラリが含まれているプラットフォーム。オープンソースのロボット制御ソフトウェアおよびロボット開発の基盤となるサービスのことです。

ROSを利用することで開発時間の短縮が可能な点が最大のメリットでしょう。

ROSには次の4つの要素がありました。

  • plumbing(通信)
  • tools(ツール群)
  • capabilities(機能群)
  • ecosystem(エコシステム)

また、現在は商用利用を目的としたROS2も開発され、広く利用されています。

ROS・ROS2共に現在ではロボット開発には欠かせないものです。これを機により深く学んでみてはいかがでしょうか。

ロボット開発やROSに関するご相談は、ROBoINまでお気軽にどうぞ!

ROBoINでは、産業用ロボット全般を、お客様へのヒアリング、コンサルティング、市場リサーチ、設計、構築、組立、納品、アフターサポートまで行っております。

記事一覧

ロボット導入を円滑にするSaaS型サービス

要件定義の精度を高め、社内外関係者への情報共有を効率的に行い、
仕様漏れも無くす工場自動化の要件定義サービスです。

専用ツールはこちら

仕様検討の精度を高め、社内外関係者への情報共有を効率的に行い、仕様漏れも無くす工場自動化の仕様管理サービスです。

専用ツールはこちら

TOP