OpenSplice通信機能の利用

Vortex OpenspliceはADLINK社が開発しているOMG DDS 1.4、DDSI-RTPS 2.3仕様の通信ミドルウェアです。

以下ではOpenRTM-aistのOpenSpliceプラグインのインストール、使用手順を説明します。

C++版

Windows

OpenSpliceの入手

以下からOpenSpliceをダウンロードして適当な場所に展開してください。

RapidXmlの入手

以下からRapidXmlをダウンロードして適当な場所に展開してください。

展開したら新たにrapidxmlフォルダを作成してヘッダーファイル(.hpp)をそこに移動させてください。 この時、展開したパスは以下のようになっています。

 rapidxml-1.13
    |- rapidxml
            |- rapidxml.hpp
            |- rapidxml_iterators.hpp
            |- rapidxml_print.hpp
            |- rapidxml_utils.hpp

OpenRTM-aistのビルド

OpenRTM-aistをビルドする前に、OpenSpliceのrelease.batを実行します。

 %OpenSplice_DIR%\x86.win32\release.bat

CMake実行時にOPENSPLICE_ENABLEオプションをONに設定し、RAPIDXML_DIRオプションにRapidXmlを展開したパスを指定します。

 cmake -DORB_ROOT=C:/workspace/omniORB-4.2.3-win64-vc16 -G "Visual Studio 16 2019" -DOPENSPLICE_ENABLE=ON -DRAPIDXML_DIR=%RAPIDXML_DIR% ..

その他の手順は通常と同じです。

適当な場所にインストールしてください。

インストールするディレクトリはCMAKE_INSTALL_PREFIXのオプションで設定します。

 cmake .. -DCMAKE_INSTALL_PREFIX=C:/workspace/OpenRTM-aist/build/install
 cmake --build . --config Release --target install

動作確認

{インストールしたパス}\2.0.0\Components\C++\Examples\vc16のサンプルコンポーネントを実行します。 RTC起動前にOpenSpliceのrelease.batを実行してください。

以下の内容のrtc.confを作成してください。

 manager.modules.load_path: {インストールしたパス}\\2.0.0\\ext\\transport
 manager.modules.preload: OpenSpliceTransport.dll
 manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice, ConsoleIn0.out?interface_type=opensplice
 manager.components.preactivation: ConsoleOut0, ConsoleIn0

まずOpenSpliceTransport.dllのロードが必要になります。 この設定はmanager.modules.preloadのオプションで設定できます。

次にコネクタ生成時にインターフェース型をopenspliceに設定する必要があります。 コネクタの生成はmanager.components.preconnectオプションにより設定します。 この例ではConsoleOut0コンポーネントのinのポート、ConsoleIn0コンポーネントのoutのポートにそれぞれコネクタを生成しています。

ConsoleInComp.exeConsoleOutComp.exeを実行すると通信ができるようになります。

Ubuntu

OpenSpliceの入手

以下からOpenSpliceをダウンロードして適当な場所に展開してください。

 wget https://github.com/ADLINK-IST/opensplice/releases/download/OSPL_V6_9_210323OSS_RELEASE/PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar
 tar xf PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar 

RapidXmlのインストール

以下のコマンドでRapidXmlをインストールしてください。

 sudo apt install librapidxml-dev

OpenRTM-aistのビルド

OpenRTM-aistをビルドする前に、OpenSpliceのrelease.comを実行します。

 source ${OPENSPLICE_DIR}/x86_64.linux/release.com

CMake実行時にOPENSPLICE_ENABLEオプションをONに設定します。

 cmake -DOPENSPLICE_ENABLE=ON ..

その他の手順は通常と同じです。

適当な場所にインストールしてください。

インストールするディレクトリはCMAKE_INSTALL_PREFIXのオプションで設定します。

 cmake .. -DCMAKE_INSTALL_PREFIX=~/workspace/OpenRTM-aist/build/install
 cmake --build . --config Release --target install

動作確認

{インストールしたパス}/share/openrtm-2.0/components/c++/examplesのサンプルコンポーネントを実行します。 RTC起動前にOpenSpliceのrelease.comを実行してください。

以下の内容のrtc.confを作成してください。

 manager.modules.load_path: {インストールしたパス}/lib/openrtm-2.0
 manager.modules.preload: OpenSpliceTransport.so
 manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice, ConsoleIn0.out?interface_type=opensplice
 manager.components.preactivation: ConsoleOut0, ConsoleIn0

まずOpenSpliceTransport.soのロードが必要になります。 この設定はmanager.modules.preloadのオプションで設定できます。

次にコネクタ生成時にインターフェース型をopenspliceに設定する必要があります。 コネクタの生成はmanager.components.preconnectオプションにより設定します。 この例ではConsoleOut0コンポーネントのinのポート、ConsoleIn0コンポーネントのoutのポートにそれぞれコネクタを生成しています。

ConsoleInCompConsoleOutCompを実行すると通信ができるようになります。

Python版

Windows

OpenSpliceのインストール

まずはOpenSpliceのPythonラッパーライブラリをインストールする必要があります。

適当な場所にビルド済みのOpenSpliceを展開してください。

次に展開したフォルダのHDE\x86_64.win64\tools\python\srcで以下のコマンドを実行するとインストールされます。

 {OpenSpliceを展開したディレクトリ}\HDE\x86_64.win64\release.bat
 python setup.py build
 python setup.py install

Cythonをインストールしていない場合は以下のコマンドを実行してください。

 pip install cython

※上記のsetup.pyによるビルドにはPythonをビルドしたVisual Studioと同じバージョンのVisual Studioがインストールされている必要があります。 Python 2.7ではVisual Studio 2008、Python 3.7ではVisual Studio 2017が必要になります。

OpenRTM-aistのインストール

OpenRTM-aist 1.2等をインストーラーでインストールしておいてください。 OpenRTM-aist Python版のソースコードを入手してください。

以下のコマンドでOpenRTM-aist Python版をインストールしてください。

 python setup.py build
 python setup.py install

動作確認

動作前に以下のコマンドを実行してください。

  {OpenSpliceを展開したディレクトリ}\HDE\x86_64.win64\release.bat

以下のようなrtc.confを作成し、OpenSpliceTransport.pyをロード後、インターフェース型にopenspliceを指定してRTCを起動します。

 manager.modules.load_path: C:\\Python37\\Lib\\site-packages\\OpenRTM_aist\\ext\\transport\\OpenSplice
 manager.modules.preload: OpenSpliceTransport.py
 manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&marshaling_type=opensplice, ConsoleIn0.out?interface_type=opensplice&marshaling_type=opensplice

Ubuntu

OpenSpliceのインストール

まずはOpenSpliceのPythonラッパーライブラリをインストールする必要があります。 以下からOpenSpliceをダウンロードして適当な場所に展開してください。

 wget https://github.com/ADLINK-IST/opensplice/releases/download/OSPL_V6_9_210323OSS_RELEASE/PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar
 tar xf PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar 

次に展開したフォルダのHDE/x86_64.linux/tools/python/srcで以下のコマンドを実行するとインストールされます。

 source ${OPENSPLICE_DIR}/x86_64.linux/release.com
 python3 setup.py build
 sudo su
 # source ${OPENSPLICE_DIR}/x86_64.linux/release.com
 # python3 setup.py install
 # exit

Cythonをインストールしていない場合は以下のコマンドを実行してください。

 sudo apt install python3-pip
 pip3 install cython

omniORB-pythonのインストール

omniORBのPython版をインストールします。

 sudo su
 # echo "deb http://openrtm.org/pub/Linux/ubuntu/ $code_name main" >> /etc/apt/sources.list
 # wget -O- --secure-protocol=TLSv1_2 --no-check-certificate https://openrtm.org/pub/openrtm.key | apt-key add -
 # apt update
 # apt install python3-omniorb python3-omniorb-omg omniidl-python3
 # exit

OpenRTM-aistのインストール

OpenRTM-aist 1.2等をインストーラーでインストールしておいてください。 OpenRTM-aist Python版のソースコードを入手してください。

以下のコマンドでOpenRTM-aist Python版をインストールしてください。

 sudo apt install doxygen
 python3 setup.py build
 sudo python3 setup.py install

動作確認

動作前にrelease.comを実行してください。

以下のようなrtc.confを作成し、OpenSpliceTransport.pyをロード後、インターフェース型にopenspliceを指定してRTCを起動します。

 manager.modules.load_path: /usr/local/lib/python3.6/dist-packages/OpenRTM_aist/ext/transport/OpenSplice
 manager.modules.preload: OpenSpliceTransport.py
 manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&marshaling_type=opensplice, ConsoleIn0.out?interface_type=opensplice&marshaling_type=opensplice

起動時のオプション

C++

rtc.confでOpenRTM-aistのマネージャ起動時に以下のオプションを設定可能です。 ※開発中のOpenRTM-aistでは使用可能ですが、リリースしたバージョンでは未実装の場合があります。

オプション名 設定例 オプション 内容
opensplice.uri file://OpenSpliceQoSExample.xml OpenSpliceのQoS設定ファイルを指定する。
opensplice.profile testProfile QoSのプロファイル名を指定する。
opensplice.participant_qos.name testParticipant ロードするDomainParticipantのプロファイル名
opensplice.participant_qos.entity_factory.autoenable_created_entities YES YES,NO
opensplice.participant_qos.listener_scheduling.scheduling_class.kind SCHEDULE_DEFAULT SCHEDULE_DEFAULT,SCHEDULE_TIMESHARING,SCHEDULE_REALTIME
opensplice.participant_qos.listener_scheduling.scheduling_priority 1
opensplice.participant_qos.listener_scheduling.scheduling_priority_kind.kind PRIORITY_RELATIVE PRIORITY_RELATIVE,PRIORITY_ABSOLUTE
opensplice.participant_qos.watchdog_scheduling.scheduling_class.kind SCHEDULE_DEFAULT SCHEDULE_DEFAULT,SCHEDULE_TIMESHARING,SCHEDULE_REALTIME
opensplice.participant_qos.watchdog_scheduling.scheduling_priority 1
opensplice.participant_qos.watchdog_scheduling.scheduling_priority_kind.kind PRIORITY_RELATIVE PRIORITY_RELATIVE,PRIORITY_ABSOLUTE
opensplice.publisher_qos.entity_factory.autoenable_created_entities YES YES,NO
opensplice.publisher_qos.presentation.access_scope INSTANCE_PRESENTATION_QOS INSTANCE_PRESENTATION_QOS,TOPIC_PRESENTATION_QOS,GROUP_PRESENTATION_QOS
opensplice.publisher_qos.presentation.coherent_access YES YES,NO
opensplice.publisher_qos.presentation.ordered_access YES YES,NO
opensplice.publisher_qos.id testPublisher ロードするPublisherのプロファイル名
opensplice.subscriber_qos.entity_factory.autoenable_created_entities YES YES,NO
opensplice.subscriber_qos.presentation.access_scope INSTANCE_PRESENTATION_QOS INSTANCE_PRESENTATION_QOS,TOPIC_PRESENTATION_QOS,GROUP_PRESENTATION_QOS
opensplice.subscriber_qos.presentation.coherent_access YES YES,NO
opensplice.subscriber_qos.presentation.ordered_access YES YES,NO
opensplice.subscriber_qos.share.enable YES YES,NO
opensplice.subscriber_qos.id testSubscriber ロードするSubscriberのプロファイル名

以下に記述例を記載します。

 opensplice.uri: file://OpenSpliceQoSExample.xml
 opensplice.profile: testProfile

Python

オプション名 設定例 オプション 内容
opensplice.uri file://OpenSpliceQoSExample.xml OpenSpliceのQoS設定ファイルを指定する。
opensplice.profile testProfile QoSのプロファイル名を指定する。
opensplice.publisher_qos.presentation.access_scope
opensplice.publisher_qos.presentation.coherent_access
opensplice.publisher_qos.presentation.ordered_access
opensplice.subscriber_qos.presentation.access_scope
opensplice.subscriber_qos.presentation.coherent_access
opensplice.subscriber_qos.presentation.ordered_access

以下に記述例を記載します。

 opensplice.uri: file://OpenSpliceQoSExample.xml
 opensplice.profile: testProfile

接続時のオプション

C++

データポート接続時のコネクタプロファイルに設定できるオプションは以下の通りです。

オプション名 デフォルト値 オプション 内容
opensplice.topic chatter DDSトピックの名前
opensplice.reader_qos.id ロードするReaderのプロファイル名
opensplice.writer_qos.id ロードするWriterのプロファイル名
opensplice.topic_qos.id ロードするTopicのプロファイル名
opensplice.reader_qos.durability.kind TRANSIENT_DURABILITY_QOS VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS
opensplice.reader_qos.deadline.period.sec 2147483647
opensplice.reader_qos.deadline.period.nanosec 2147483647
opensplice.reader_qos.latency_budget.duration.sec 0
opensplice.reader_qos.latency_budget.duration.nanosec 0
opensplice.reader_qos.liveliness.kind AUTOMATIC_LIVELINESS_QOS AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS
opensplice.reader_qos.liveliness.lease_duration.sec 2147483647
opensplice.reader_qos.liveliness.lease_duration.nanosec 2147483647
opensplice.reader_qos.reliability.kind BEST_EFFORT_RELIABILITY_QOS BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS
opensplice.reader_qos.reliability.max_blocking_time.sec 2147483647
opensplice.reader_qos.reliability.max_blocking_time.nanosec 2147483647
opensplice.reader_qos.reliability.synchronous NO YES, NO
opensplice.reader_qos.destination_order.kind BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
opensplice.reader_qos.history.kind KEEP_LAST_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.reader_qos.history.depth 1
opensplice.reader_qos.resource_limits.max_samples -1
opensplice.reader_qos.resource_limits.max_instances -1
opensplice.reader_qos.resource_limits.max_samples_per_instance -1
opensplice.reader_qos.ownership.kind SHARED_OWNERSHIP_QOS SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS
opensplice.reader_qos.time_based_filter.minimum_separation.sec 0
opensplice.reader_qos.time_based_filter.minimum_separation.nanosec 0
opensplice.reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.sec 2147483647
opensplice.reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.nanosec 2147483647
opensplice.reader_qos.reader_data_lifecycle.autopurge_dispose_all NO YES, NO
opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec 2147483647
opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec 2147483647
opensplice.reader_qos.reader_data_lifecycle.enable_invalid_samples YES YES, NO
opensplice.reader_qos.reader_data_lifecycle.invalid_sample_visibility.kind MINIMUM_INVALID_SAMPLES NO_INVALID_SAMPLES, MINIMUM_INVALID_SAMPLES, ALL_INVALID_SAMPLES
opensplice.writer_qos.durability.kind TRANSIENT_DURABILITY_QOS VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS
opensplice.writer_qos.deadline.period.sec 2147483647
opensplice.writer_qos.deadline.period.nanosec 2147483647
opensplice.writer_qos.latency_budget.duration.sec 0
opensplice.writer_qos.latency_budget.duration.nanosec 0
opensplice.writer_qos.liveliness.kind AUTOMATIC_LIVELINESS_QOS AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS
opensplice.writer_qos.liveliness.lease_duration.sec 2147483647
opensplice.writer_qos.liveliness.lease_duration.nanosec 2147483647
opensplice.writer_qos.reliability.kind RELIABLE_RELIABILITY_QOS BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS
opensplice.writer_qos.reliability.max_blocking_time.sec 2147483647
opensplice.writer_qos.reliability.max_blocking_time.nanosec 2147483647
opensplice.writer_qos.reliability.synchronous NO YES, NO
opensplice.writer_qos.destination_order.kind BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
opensplice.writer_qos.history.kind KEEP_LAST_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.writer_qos.history.depth 1
opensplice.writer_qos.resource_limits.max_samples -1
opensplice.writer_qos.resource_limits.max_instances -1
opensplice.writer_qos.resource_limits.max_samples_per_instance -1
opensplice.writer_qos.transport_priority.value 0
opensplice.writer_qos.lifespan.duration.sec 2147483647
opensplice.writer_qos.lifespan.duration.nanosec 2147483647
opensplice.writer_qos.ownership.kind SHARED_OWNERSHIP_QOS SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS
opensplice.writer_qos.ownership_strength.value 0
opensplice.writer_qos.writer_data_lifecycle.autodispose_unregistered_instances YES YES, NO
opensplice.writer_qos.writer_data_lifecycle.autopurge_suspended_samples_delay.sec 2147483647
opensplice.writer_qos.writer_data_lifecycle.autopurge_suspended_samples_delay.nanosec 2147483647
opensplice.writer_qos.writer_data_lifecycle.autounregister_instance_dela.sec 2147483647
opensplice.writer_qos.writer_data_lifecycle.autounregister_instance_dela.nanosec 2147483647
opensplice.topic_qos.durability.kind TRANSIENT_DURABILITY_QOS VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS
opensplice.topic_qos.deadline.period.sec 2147483647
opensplice.topic_qos.deadline.period.nanosec 2147483647
opensplice.topic_qos.latency_budget.duration.sec 0
opensplice.topic_qos.latency_budget.duration.nanosec 0
opensplice.topic_qos.liveliness.kind AUTOMATIC_LIVELINESS_QOS AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS
opensplice.topic_qos.liveliness.lease_duration.sec 2147483647
opensplice.topic_qos.liveliness.lease_duration.nanosec 2147483647
opensplice.topic_qos.reliability.kind RELIABLE_RELIABILITY_QOS BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS
opensplice.topic_qos.reliability.max_blocking_time.sec 2147483647
opensplice.topic_qos.reliability.max_blocking_time.nanosec 2147483647
opensplice.topic_qos.reliability.synchronous NO YES, NO
opensplice.topic_qos.destination_order.kind BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
opensplice.topic_qos.history.kind KEEP_ALL_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.topic_qos.history.depth 1
opensplice.topic_qos.resource_limits.max_samples -1
opensplice.topic_qos.resource_limits.max_instances -1
opensplice.topic_qos.resource_limits.max_samples_per_instance -1
opensplice.topic_qos.transport_priority.value 0
opensplice.topic_qos.lifespan.duration.sec 2147483647
opensplice.topic_qos.lifespan.duration.nanosec 2147483647
opensplice.topic_qos.ownership.kind SHARED_OWNERSHIP_QOS SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS
opensplice.topic_qos.transport_priority.value 0
opensplice.topic_qos.durability_service.history_depth 1
opensplice.topic_qos.durability_service.history_kind KEEP_LAST_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.topic_qos.durability_service.max_instances -1
opensplice.topic_qos.durability_service.max_samples -1
opensplice.topic_qos.durability_service.max_samples_per_instance -1
opensplice.topic_qos.durability_service.service_cleanup_delay.sec 0
opensplice.topic_qos.durability_service.service_cleanup_delay.nanosec 0

以下に設定例を記載します。

 manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&opensplice.topic=testtopic

Python

オプション名 デフォルト値 オプション 内容
opensplice.topic chatter DDSトピックの名前
opensplice.reader_qos.durability.kind TRANSIENT_DURABILITY_QOS VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS
opensplice.reader_qos.deadline.period.sec 2147483647
opensplice.reader_qos.deadline.period.nanosec 2147483647
opensplice.reader_qos.latency_budget.duration.sec 0
opensplice.reader_qos.latency_budget.duration.nanosec 0
opensplice.reader_qos.liveliness.kind AUTOMATIC_LIVELINESS_QOS AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS
opensplice.reader_qos.liveliness.lease_duration.sec 2147483647
opensplice.reader_qos.liveliness.lease_duration.nanosec 2147483647
opensplice.reader_qos.reliability.kind BEST_EFFORT_RELIABILITY_QOS BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS
opensplice.reader_qos.reliability.max_blocking_time.sec 2147483647
opensplice.reader_qos.reliability.max_blocking_time.nanosec 2147483647
opensplice.reader_qos.destination_order.kind BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
opensplice.reader_qos.history.kind KEEP_LAST_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.reader_qos.history.depth 1
opensplice.reader_qos.resource_limits.max_samples -1
opensplice.reader_qos.resource_limits.max_instances -1
opensplice.reader_qos.resource_limits.max_samples_per_instance -1
opensplice.reader_qos.ownership.kind SHARED_OWNERSHIP_QOS SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS
opensplice.reader_qos.time_based_filter.minimum_separation.sec 0
opensplice.reader_qos.time_based_filter.minimum_separation.nanosec 0
opensplice.reader_qos.autopurge_disposed_samples_delay.sec 2147483647
opensplice.reader_qos.autopurge_disposed_samples_delay.nanosec 2147483647
opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec 2147483647
opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec 2147483647
opensplice.writer_qos.durability.kind TRANSIENT_DURABILITY_QOS VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS
opensplice.writer_qos.deadline.period.sec 2147483647
opensplice.writer_qos.deadline.period.nanosec 2147483647
opensplice.writer_qos.latency_budget.duration.sec 0
opensplice.writer_qos.latency_budget.duration.nanosec 0
opensplice.writer_qos.liveliness.kind AUTOMATIC_LIVELINESS_QOS AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS
opensplice.writer_qos.liveliness.lease_duration.sec 2147483647
opensplice.writer_qos.liveliness.lease_duration.nanosec 2147483647
opensplice.writer_qos.reliability.kind BEST_EFFORT_RELIABILITY_QOS BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS
opensplice.writer_qos.reliability.max_blocking_time.sec 2147483647
opensplice.writer_qos.reliability.max_blocking_time.nanosec 2147483647
opensplice.writer_qos.destination_order.kind BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
opensplice.writer_qos.history.kind KEEP_LAST_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.writer_qos.history.depth 1
opensplice.writer_qos.resource_limits.max_samples -1
opensplice.writer_qos.resource_limits.max_instances -1
opensplice.writer_qos.resource_limits.max_samples_per_instance -1
opensplice.writer_qos.transport_priority.value SHARED_OWNERSHIP_QOS SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS
opensplice.writer_qos.lifespan.duration.sec 0
opensplice.writer_qos.lifespan.duration.nanosec 0
opensplice.writer_qos.ownership.kind SHARED_OWNERSHIP_QOS SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS
opensplice.writer_qos.ownership_strength.value 0
opensplice.writer_qos.writer_data_lifecycle.autodispose_unregistered_instances YES YES, NO
opensplice.topic_qos.durability.kind TRANSIENT_DURABILITY_QOS VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS
opensplice.topic_qos.deadline.period.sec 2147483647
opensplice.topic_qos.deadline.period.nanosec 2147483647
opensplice.topic_qos.latency_budget.duration.sec 0
opensplice.topic_qos.latency_budget.duration.nanosec 0
opensplice.topic_qos.liveliness.kind AUTOMATIC_LIVELINESS_QOS AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS
opensplice.topic_qos.liveliness.lease_duration.sec 2147483647
opensplice.topic_qos.liveliness.lease_duration.nanosec 2147483647
opensplice.topic_qos.reliability.kind RELIABLE_RELIABILITY_QOS BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS
opensplice.topic_qos.reliability.max_blocking_time.sec 2147483647
opensplice.topic_qos.reliability.max_blocking_time.nanosec 2147483647
opensplice.topic_qos.destination_order.kind BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
opensplice.topic_qos.history.kind KEEP_ALL_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.topic_qos.history.depth 1
opensplice.topic_qos.resource_limits.max_samples -1
opensplice.topic_qos.resource_limits.max_instances -1
opensplice.topic_qos.resource_limits.max_samples_per_instance -1
opensplice.topic_qos.transport_priority.value 0
opensplice.topic_qos.lifespan.duration.sec 2147483647
opensplice.topic_qos.lifespan.duration.nanosec 2147483647
opensplice.topic_qos.ownership.kind SHARED_OWNERSHIP_QOS SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS
opensplice.topic_qos.transport_priority.value 0
opensplice.topic_qos.durability_service.history_depth 1
opensplice.topic_qos.durability_service.history_kind KEEP_LAST_HISTORY_QOS KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS
opensplice.topic_qos.durability_service.max_instances -1
opensplice.topic_qos.durability_service.max_samples -1
opensplice.topic_qos.durability_service.max_samples_per_instance -1
opensplice.topic_qos.durability_service.service_cleanup_delay.sec 0
opensplice.topic_qos.durability_service.service_cleanup_delay.nanosec 0

 manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&opensplice.topic=testtopic

その他

OpenSpliceのコンフィギュレーションファイル

OpenSpliceのコンフィギュレーションファイルは環境変数${OSPL_URI}で設定している。

デフォルトでは${OSPL_URI}/etc/config/ospl.xmlが設定されている。

例えば、ドメインIDを変更するためにはospl.xmlの以下の部分を変更する。

 <OpenSplice>
     <Domain>
         <Name>ospl_sp_ddsi</Name>
         <!-- 以下を変更する -->
         <Id>1</Id>
         <SingleProcess>true</SingleProcess>

詳細なログを出力するためには以下の部分を追加する。

    <DDSI2Service name="ddsi2">
        <!-- 以下を追加する -->
        <Tracing>
             <Verbosity>FINEST</Verbosity>
        </Tracing>
        <!-- ここまで -->
        <General>

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2195
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク