今日の工場は、生産設備の稼働率や品質の向上を図り、多種・多世代・量変動などに対応できる設備作りが必要とされています。しかし、生産ラインではロボットやコントローラ(PLC、画像処理など)や汎用センサなど、様々なベンダによるデバイスが混在しています。また上位系のアプリケーションを開発する場合、情報を取得すべきデバイスに対してのインタフェースの開発も必要となります。機器ごとにインタフェースを開発した場合、開発費用(およそ高額になる)への費用対効果のバランスが崩れてしまいます。
そういった場合に活用されるのがミドルウェアです。ミドルウェアを実装することにより、各機器間の通信を統一化し、統一化されたデータ表現の提供が可能となるため、PLCと上位系アプリケーション(工程管理システムなど)との接続・連携なども可能となり、より最適化されたファクトリーオートメーション、または多種多様な情報連携(IoT)が可能となります。
ミドルウェアとはOSとアプリケーション間の中間処理を行うソフトのことです。FA分野で言えば、PLCのデータをPCで活用する際にPLCデータをPCで利用できる形式にしてくれるミドルウェアなどが存在します。
IoTやミドルウェアの実装により、統合基盤が実現します。メーカにとらわれず、柔軟でかつ効率的な生産設備の設計が可能となります。整備されている統合基盤ネットワークは、あらゆるところでその効果効率を上げます。
代表的なミドルウェアを以下3つ挙げる。
ORiNとは、工場内の各種装置に対して、メーカ・機種の違いを超え、統一的なアクセス手段と表現方法を提供する通信インタフェースです。また、ORiN協議会により制定された工場情報システムのための標準ミドルウェア仕様であり、そのアーキテクチャはロボットのみならず、その他のFA機器、データベース、ローカルファイルなど、幅広いリソースを扱うことができ、FA全体に効果があります。
汎用言語(C#、C++など)に対応しており、パソコンから各種FA機器のコントローラを制御したり、情報収集したりすることが可能となり、ソフトウェア開発の工数削減やソフトウェアの再利用性、さらに保守性の向上が期待できます。
OpenRTM-aistは、ロボットシステムを機械要素ごとにプログラミング作成し(機械要素:RobotTechnorogyコンポーネントと呼ぶ、RTミドルウェアにおけるソフトウェアモジュールの基本単位。以下RTC)、RTCを組み合わせてシステム構築できるソフトウェアプラットフォームです(ソフトウェアプラットフォームとは:ソフトウェアが動作する基盤)。
RTCはC++、Python、Java言語で開発でき、主要OS(Linux/Unix、Windows、Mac OS X)をサポートしています。OpenRTM-aist自体、OS非 依存性、言語非依存性を重視し、CORBAのミドルウェアを用いて実装されます(CORBA:異なる製品間で用いる共通プロトコルIIOPなどで通信を行う、特定OSやプログラミング言語に依存しないミドルウェア)。
なお、オープンソース形式でライセンス配布も可能です。そのため、バグや脆弱性も発見されやすく、いち早く修正対応することができます。メンテナンスがしやすく、技術者の工数を削減できます。
ROSの特徴として、移動・操作・認識などの膨大なライブラリ群の利用機能や、開発者会議・各地での講演会などのコミュニティも充実しています。汎用開発環境、アカデミックユースとして世界のデファクトスタンダードとなっています。