概要

OpenRTM-aistはロボットの機能要素をモジュール化し、その組み合わせによりシステムを構築するためのソフトウェアプラットフォームです。そのモジュールのことをRTコンポーネント(RTC)と呼びます。

一方、OpenOfficeは表計算機能や文書作成機能等をサポートするオフィス統合環境です。

本ソフトウェアはRTミドルウェアを用いたシステムでOpenOfficeの機能を利用するためのRTC群です。

現在は以下のRTCがあります。

OOoCalcRTC

OpenOffice Calcは表計算機能をサポートしています。
OOoCalcRTCはセルの値をデータポートから入出力できます。
このことにより、

  1. 入力データの保存
  2. グラフ表示
  3. あらかじめ作成したデータ列の出力
  4. 入力データを数式により計算した結果を出力

といったことができるようになります。

現在はBasicDataType.idl、ExtendedDataTypes.idlで定義したデータ型をサポートしています。数値、文字列、さらに配列の入出力もできます。

OOoDrawRTC

OpenOffice Drawは図形描画機能をサポートしています。
OOoDrawRTCはDataInPortからの入力により図形の位置、角度を変更することができます。また、DataOutPortから図形の位置、角度の出力もできます。

現在はBasicDataType.idlのデータ型は10種類、ExtendedDataTypes.idlのデータ型は4種類サポートしてます。

OOoWriterRTC

OpenOffice Writerでは文書作成機能をサポートしています。
OOoWriterRTCは文字列の入力、フォントの変更、選択中の文字列の出力ができます。

OOoImpressRTC

OpenOffice Impressではプレゼンテーション機能をサポートしています。
OOoImpressRTCはデータポートからの入力でスライド番号の変更、アニメーションの実行ができます。

OOoBaseRTC

OpenOffice Baseではデータベース機能をサポートしています。
OOoBaseRTCではサービスポートを利用することで作成したデータベースへアクセスしてデータを抽出したデータの取得、入力ができます。





UNOとは

UNOとはUniversal Network Objectsの略でOpenOfficeが利用しているコンポーネントモデルのことです。
UNOのオブジェクトのインターフェースを使うことによりC++、Java、Python等様々なプログラミング言語からOpenOfficeを動かすことができます。

UNOでPythonを使う場合OpenOfficeのScriputing Frameworkで動くモードとPythonプロセスでスクリプトを起動してソケット接続、バイブ接続でOpenOfficeプロセスを動かすモードがあります。UNOを利用することによりPythonプロセスからOpenOfficeプロセスへプロセス間通信をする場合でも透過的にプログラミングできます。

OpenOfficeのScripting Frameworkで動くモードとプロセス間通信を行うモードの速度を比較しました。
Writerに"Hello World"と20回書き込むだけの簡単なプログラムです。

まずは、OpenOfficeのScripting Frameworkで動くモードです。

0.0065337214646
0.00110796204546
0.0010461525138
0.00101311758897
0.00100201282565
0.000919460434217
0.00100536520703
0.000865542967053
0.00108037474037
0.000907866781951
0.000837606455569
0.000799752482508
0.00081155565861
0.000818819151596
0.000921206466185
0.000815815976612
0.000788857243029
0.000795981053458
0.00077314295532
0.000929377895794

単位は全て秒です。次にプロセス間通信を使うモードです。

0.0128026746416
0.00530395622907
0.00596137218557
0.00669072465914
0.00544894672368
0.00636463572884
0.00653553733785
0.00470660377227
0.00605384203858
0.00511405779226
0.00499937841262
0.00738473744568
0.00533852766204
0.00523746733174
0.00632294048545
0.00522210225043
0.00509582921852
0.00771760098001
0.00609868013951
0.00631050873784

このようにプロセス間通信により時間がかかることは明らかです。なので本ソフトウェアはOpenOfficeのScripting Frameworkで動くモードを利用してあります。