OpenRTM-aist: チケット
https://www.openrtm.org/redmine/
https://www.openrtm.org/redmine/redmine/favicon.ico
2018-02-27T06:48:18Z
Redmine for OpenRTM-aist
Redmine
バグ #4463 (担当): omniINSPOAでのオブジェクト非アクティブ化
https://www.openrtm.org/redmine/issues/4463
2018-02-27T06:48:18Z
n-miyamoto
n-miyamoto@aist.go.jp
<p>ManagerServant、RTObjectはomniINSPOA(TAOはIORTable)でアクティブ化しているが、非アクティブ化する処理が存在しない。<br />アクティブ状態でManagerServant、RTObjectをdeleteすると落ちるため修正が必要。<br />ManagerServantについてはdeleteしないため、今のところ問題は発生していないが念のために修正する。</p>
バグ #4451 (解決): examples/Makefile.amへAnalyzerを追加する
https://www.openrtm.org/redmine/issues/4451
2018-02-07T01:26:44Z
n.kawauchi
n.kawauchi@aist.go.jp
<p>r3018 で追加された修正だがその後のマージ処理で抜け落ちたので対応する</p>
機能 #3692 (新規): [FSM4RTC] テストの実装
https://www.openrtm.org/redmine/issues/3692
2016-10-27T02:50:16Z
n-ando
Noriaki.Ando@gmail.com
<p>FSM4RTCに関連して追加した関数、クラスなどについてそれぞれユニットテストを作成し、テストが通ることを確認すること。</p>
機能 #3691 (新規): [FSM4RTC] 多階層複合化対応実行コンテキストを使用したサンプルの実装
https://www.openrtm.org/redmine/issues/3691
2016-10-27T02:48:50Z
n-ando
Noriaki.Ando@gmail.com
<p>多階層複合化対応実行コンテキストを使用したサンプルを実装すること。</p>
機能 #3690 (新規): [FSM4RTC] 多階層複合化対応実行コンテキストの実装
https://www.openrtm.org/redmine/issues/3690
2016-10-27T02:48:40Z
n-ando
Noriaki.Ando@gmail.com
<p>現在の複合コンポーネントでは、階層を1階層しかサポートしておらず、各子コンポーネントの呼び出し順序も、親コンポーネントへ組み込まれた順となり固定的にしか複合化できない。これを、複数の階層で複合化可能になるように変更し、かつ呼び出し順序も、直列・並列実行を可能となるように実装を変更すること<br />呼び出し順序はconfファイルに記述すると、これらの直列・並列あるいは各コンポーネントの呼び出し順序を指定できるように変更すること。</p>
機能 #3689 (新規): [FSM4RTC] データ入力ポートInPortのマルチタイプ入力・マルチバッファ化
https://www.openrtm.org/redmine/issues/3689
2016-10-27T02:48:21Z
n-ando
Noriaki.Ando@gmail.com
<p>既存のOpenRTM-aistの実装では、InPortは特定の型のOutPortとしか接続できず、また、同一型のOutPortが多数接続されている場合でも、InPort内のデータバッファは一つであり、かつ内部APIでデータがどのOutPortから来ているかを区別する方法はなかった。この作業では、InPortは接続(Connector)ごとにバッファを保持し、各OutPortからの到達データはOutPortごとに異なるバッファに格納されるようにすること。また、InPortのAPIに複数のOutPortのどのポートからデータが来たのか、特定のOutPortからのデータを選択的に取り出せる内部APIを追加すること。</p>
機能 #3688 (終了): [FSM4RTC] データポートのPortProfile/ConnectorProfileのプロパティ拡張作業
https://www.openrtm.org/redmine/issues/3688
2016-10-27T02:47:57Z
n-ando
Noriaki.Ando@gmail.com
<p>データポート間を接続する際には、それぞれのポートが持つPortProfileの各種情報を取得しポートがサポートしている機能の情報を取得したうえで、ConnectorProfileのフィールドに必要な情報をセットし、1か所のポートに対して引数を渡しnotify()関数を呼ぶことでポート間の接続が確立される。FSM4RTCでは、PortProfile::properties, ConnectorProfile::properties にセットする値がOpenRTM-aistで決められているものから変更されており、本実装では、この仕様に対応させる作業を実施する。</p>
<p>FSM4RTCでは以下の14種類の標準プロパティが定義されており、PortProfileでは、dataport.fsm_event_name を除くプロパティがセットされている。また、ConnectorProfileでは14種類すべての値に対して、振る舞いを変更するなどの対応が必要となる。</p>
<ul>
<li>dataport.dataflow_type: {push, pull}</li>
<li>dataport.io_mode: {block, nonblock}</li>
<li>dataport.data_type: Data type in IFR</li>
<li>dataport.interface_type: Interface type in IFR</li>
<li>dataport.marshaling_type: marshaling type</li>
<li>dataport.timestamp_policy: {on_write, on_send, on_received, on_read, none}</li>
<li>dataport.write_buffer_length: int</li>
<li>dataport.write_buffer_full_policy: {overwrite, do_nothing, block}</li>
<li>dataport.write_buffer_timeout: [s]</li>
<li>dataport.read_buffer_length: int</li>
<li>dataport.read_buffer_empty_policy: {read_back, do_nothing, block}</li>
<li>dataport.read_buffer_timeout: [s]</li>
<li>dataport.read_buffer_queue_policy: {all, fifo, new}</li>
<li>dataport.fsm_event_name: イベント名</li>
</ul>
<p>なお、実装するにあたり、過去のバージョンとの互換性のため、新旧両方のプロパティに対応させること。<br />これらのプロパティーのうち、dataport.timestamp_policy についてはOpenRTM-aistに該当する機能はないため、新規にInPort/OutPortに実装すること。</p>
機能 #3687 (新規): 「FSM4RTC] PortStatusの変更
https://www.openrtm.org/redmine/issues/3687
2016-10-27T02:47:10Z
n-ando
Noriaki.Ando@gmail.com
<p>Connector関係のクラスやPublisher関係のクラス内で、PortStatusと呼ばれるenum定義の戻り値が利用されているが、これまで、OpenRTM付属のDataPort.idl内でOpenRTM::PortStatus として定義されていたものを、FSM4RTCのDataPort.idl内のRTC::PortStatus に置き換えること。</p>
機能 #3686 (新規): [FSM4RTC] 同期型DataPortを利用したサンプルの作成
https://www.openrtm.org/redmine/issues/3686
2016-10-27T02:46:45Z
n-ando
Noriaki.Ando@gmail.com
<p>上記、同期型データポートの振る舞いを検証できるサンプルを作成し、既存のサンプルと同様の場所へ配置、一緒にコンパイルできるよう、OpenRTM-aistプロジェクトの関連部分を変更すること。</p>
機能 #3685 (新規): [FSM4RTC] 同期型DataPortの実装
https://www.openrtm.org/redmine/issues/3685
2016-10-27T02:45:32Z
n-ando
Noriaki.Ando@gmail.com
<p>FSMに対するイベント通知機構として、既存のデータポートとは異なる同期型データポートを実装する。既存のデータポートやFSM4RTCのデータポートは基本的に非同期型であり、送信側、受信側はそれぞれ相手が読まなくても(書かなくても)書くことができる(読むことができる)データチャネルとなっているが、振る舞いがdeterministicではないため、振る舞いの同一性や確定性を保証・検証することが難しい。<br />別途提供する同期型データポートのインターフェースとその振る舞いに関する仕様に基づいて、同期型データポート実装すること。<br />同期型の大まかな振る舞いとしては、以下のとおりである。</p>
<ul>
<li>受信側が読むまで、送信側は原則としてデータ書き出し操作を完了せずブロックすること</li>
<li>上記の状態において、受信側が読み出した場合、送信側に直ちに読み出しが完了したことを通知し、送信側はブロック状態を解除すること</li>
<li>送信側が書くまで、受信側は原則としてデータ読み出し操作を完了せずブロックすること</li>
<li>上記の状態において、送信側が書きだした場合、受信側に直ちに書き込みが完了したことを通知し、受信側はブロック状態を解除すること</li>
<li>送信側はデータを送信する前に、受信側が受信可能かどうかを知ることができること</li>
<li>受信側が複数ある場合、送信側は受信準備ができているポート1つに対してのみデータを送信すること</li>
</ul>
機能 #3684 (新規): [FSM4RTC] 動的FSMフレームワークの実装
https://www.openrtm.org/redmine/issues/3684
2016-10-27T02:45:10Z
n-ando
Noriaki.Ando@gmail.com
<p>OMG RTC仕様で定義されているFSMコンポーネントを実装すること。Fsmコンポーネント、FsmParticipantコンポーネントおよび、その状態遷移とイベントの関連付けなど、状態遷移型コンポーネントを実装するために必要な機構を実装すること。 </p>
機能 #3683 (終了): [FSM4RTC] 静的FSMフレームワークの実装
https://www.openrtm.org/redmine/issues/3683
2016-10-27T02:44:47Z
n-ando
Noriaki.Ando@gmail.com
<p>Macho<sup><a href="#fn4">4</a></sup>ライクな記述方式を利用したFSMを記述するためのフレームワークを実装すること。実装に当たってはC++版・Java版・Python版の実装サンプルコードを提供するので、それらの実装に倣って新規に実装すること。次項のExtendedFsmServiceから状態の取得やイベントのディスパッチなどが行えるようなインターフェースも有すること。<br />[4] <a class="external" href="http://ehiti.de/machine_objects/">http://ehiti.de/machine_objects/</a></p>
機能 #3682 (担当): [FSM4RTC] ComponentObserver のテスト、サンプルプログラムを作成する
https://www.openrtm.org/redmine/issues/3682
2016-10-27T02:43:45Z
n-ando
Noriaki.Ando@gmail.com
<p>ComponentObserver のテスト、サンプルプログラムを作成する。exampleの下ではなく、ComponentObserverの実装ディレクトリ下にtestディレクトリを作成し配置する。</p>
機能 #3681 (終了): [FSM4RTC] FSMリスナをset/removeする関数等をRTObjectに追加する。
https://www.openrtm.org/redmine/issues/3681
2016-10-27T02:41:47Z
n-ando
Noriaki.Ando@gmail.com
<p>FSM関係のコールバック機構 PreFsmActionListener、PostFsmActionListener、FsmProfileListener、FsmStructureListener をset/remove関数および呼び出し関数をRTObjectクラスに追加する。</p>
機能 #3680 (終了): [FSM4RTC] FSM関連のリスナクラスを作成する。
https://www.openrtm.org/redmine/issues/3680
2016-10-27T02:38:39Z
n-ando
Noriaki.Ando@gmail.com
<p>FSMに関連するリスナクラスを作成する。<br />既存のComponentActionListener同様、PreFsmActionListener、PostFsmActionListener、FsmProfileListener、FsmStructureListener、を実装する。</p>
<ul>
<li>PreFsmActionListener/PostFsmActionListener (XXXはPRE or POST)
<ul>
<li>XXX_ON_INIT</li>
<li>XXX_ON_ENTRY</li>
<li>XXX_ON_DO</li>
<li>XXX_ON_EXIT</li>
<li>XXX_ON_STATE_CHANGE</li>
</ul></li>
</ul>
<ul>
<li>FsmProfileListener
<ul>
<li>SET_FSM_PROFILE</li>
<li>GET_FSM_PROFILE</li>
</ul></li>
</ul>
<ul>
<li>FsmStructureActionListener
<ul>
<li>SET_FSM_STRUCTURE</li>
<li>GET_FSM_STRUCTURE</li>
<li>ADD_FSM_STATE</li>
<li>REMOVE_FSM_STATE</li>
<li>ADD_TRANSITION</li>
<li>REMOVE_TRANSITION</li>
<li>BIND_EVENT</li>
<li>UNBIND_EVENT</li>
</ul></li>
</ul>