OpenRTM-aist (Python): チケット
https://www.openrtm.org/redmine/
https://www.openrtm.org/redmine/redmine/favicon.ico
2018-04-26T09:07:19Z
Redmine for OpenRTM-aist
Redmine
バグ #4524 (新規): octet型配列を含むデータ型の初期化の問題
https://www.openrtm.org/redmine/issues/4524
2018-04-26T09:07:19Z
n-miyamoto
n-miyamoto@aist.go.jp
<p>sequence<octet>型を含むデータ型を初期化した場合に、sequence<octet>型の変数にはリストが格納される。<br />これはsequence<short>やsequence<double>等、他のデータ型の配列の場合は問題ないが、sequence<octet>型の場合は文字列を格納する必要があるため、このままデータをwriteするとエラーになる。<br />ただ修正は困難だと考えられるため、修正可能であれば修正する。</p>
整備 #4459 (新規): Python 3.6の場合にrtctreeのコネクタ接続処理が例外を出す
https://www.openrtm.org/redmine/issues/4459
2018-02-27T01:25:24Z
n-miyamoto
n-miyamoto@aist.go.jp
<p>Python 3.6でrtctreeでコネクタを接続した場合に、接続自体は成功するが、connect関数が例外を投げる。</p>
<p>以下のようOpenRTM-aistのRTCモジュールと、rtctreeのrtc.RTCモジュールをインポートした場合に、下のprint文はPython 2.7の場合にTrueを出力して、Python 3.6の場合にはFalseを出力する。</p>
<pre>
import rtctree.rtc.RTC
import OpenRTM_aist
import RTC
print((RTC.RTC_OK==rtctree.rtc.RTC.RTC_OK))
</pre>
<p>おそらく、rtctreeのconnect関数実行時に、PortServiceのconnectが返すRTC_OKはOpenRTM_aistのRTCモジュールのものであることが原因。</p>
<p>このため、OpenRTM_aistをインポートせずにrtctreeのみをインポートした場合には問題なく動作できる。</p>
整備 #3043 (新規): ネームサービスに登録する名前のフォーマットに関する改良
https://www.openrtm.org/redmine/issues/3043
2014-03-14T07:46:39Z
n-ando
Noriaki.Ando@gmail.com
<p>C++版 <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="機能: ネームサービスに登録する名前のフォーマットに関する改良 (終了)" href="https://www.openrtm.org/redmine/issues/208">#208</a> r2522相当の変更</p>
<p>ネームサービスに登録する際の名前の指定子に、ベース名(implementaion_id)と番号も個別に指定できるようにする。<br />Manager::formatString 関数に以下の5行を追加。</p>
<p>else if (c == 'c') str = prop["category"];<br /> else if (c == 'i') str = prop["implementation_id"];<br /> else if (c == 'N') {<br />+ size_t n =<br />prop["implementation_id"].size();<br />+ str = prop["instance_name"].substr(n);<br /> }<br /> else if (c == 'h') str += m_config["manager.os.hostname"];<br />rtc.conf内で<br />naming.formats: %h.host_cxt/%i-%N.rtc<br />とすると、<br />ManipulatorPA10-0<br />のような名前でネームサーバに登録される。</p>
整備 #3040 (新規): ネームサービスに登録する名前のフォーマットに関する改良
https://www.openrtm.org/redmine/issues/3040
2014-03-14T01:17:29Z
n-ando
Noriaki.Ando@gmail.com
<p>C++版 <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="機能: ネームサービスに登録する名前のフォーマットに関する改良 (終了)" href="https://www.openrtm.org/redmine/issues/208">#208</a> r2522相当の変更</p>
<p>ネームサービスに登録する際の名前の指定子に、ベース名(implementaion_id)と番号も個別に指定できるようにする。<br />Manager::formatString 関数に以下の5行を追加。</p>
<p>else if (c == 'c') str = prop["category"];<br /> else if (c == 'i') str = prop["implementation_id"];<br /> else if (c == 'N') {<br />+ size_t n =<br />prop["implementation_id"].size();<br />+ str = prop["instance_name"].substr(n);<br /> }<br /> else if (c == 'h') str += m_config["manager.os.hostname"];<br />rtc.conf内で<br />naming.formats: %h.host_cxt/%i-%N.rtc<br />とすると、<br />ManipulatorPA10-0<br />のような名前でネームサーバに登録される。</p>
バグ #2712 (新規): PeriodicExecutionContextオブジェクトがどこかで保持されているためデストラクタが呼ばれない
https://www.openrtm.org/redmine/issues/2712
2013-06-11T15:32:39Z
n-ando
Noriaki.Ando@gmail.com
<p>根本的な原因は,PeriodicExecutionContextオブジェクトがどこかで保持されているため,<br />デストラクタが呼ばれていないことである.<br />この件に関しては別途調査する必要あり.</p>
<p><a class="issue tracker-1 status-5 priority-4 priority-default closed" title="バグ: Ctrl+cにて正常に終了できない(Windows環境) (終了)" href="https://www.openrtm.org/redmine/issues/2703">#2703</a> を参照</p>
バグ #2559 (新規): バッファやコネクタまわりに関しての改善・検討要望
https://www.openrtm.org/redmine/issues/2559
2013-01-07T01:20:11Z
n-ando
Noriaki.Ando@gmail.com
<p>静岡大の清水です。</p>
<p>バッファやコネクタまわりに関しての改善・検討要望です。<br />過日のSI2012で発表した、共有メモリベースの<br />データ通信機能を実装する際に問題となった点です。<br />ご検討頂ければ幸いです。</p>
<p>【問題点】<br />現行のコネクタの実装(InPortPushConnectorを例とします)では、<br />以下の手順で初期化(コンストラクタ内で)がされています。</p>
<p>(1) バッファ生成<br />(2) プロバイダの初期化(InPortProvider::init()のコール)</p>
<p>一般に、プロバイダ(コンシューマも)は特定のバッファとの組み合わせでしか<br />動作しない場合も考えられると思います。<br />すなわち、プロバイダがどのバッファを生成するかを制御できる必要があります。</p>
<p>どのバッファを生成するかは、ConnectorProfileにbuffer_typeを設定することで<br />制御できますが、もしユーザが間違ったbuffer_typeを指定した場合、<br />あるいは何も指定しなかった場合は、プロバイダに適合したバッファが生成されません。</p>
<p>【対応策】<br />この問題は、バッファの生成とプロバイダの初期化の順序を入れ替えることで<br />回避できます。私が実際に変更したコードは以下です。</p>
<p>・オリジナル(一部のみ抜粋)<br />InPortPushConnector(ConnectorInfo info, InPortProvider *provider)
{<br /> m_buffer = createBuffer(info);<br /> m_buffer->init(info.properties.getNode("buffer"));<br /> m_provider->init(info.properties);<br /> m_provider->setBuffer(m_buffer);<br /> m_provider->setListener(info, &m_listeners);<br />}</p>
<p>・変更後<br />InPortPushConnector(ConnectorInfo info, InPortProvider *provider)
{<br /> m_provider->init(info.properties); //<= バッファ生成前にプロバイダのinit()をする<br /> m_buffer = createBuffer(info);<br /> m_buffer->init(info.properties.getNode("buffer"));<br /> m_provider->setBuffer(m_buffer);<br /> m_provider->setListener(info, &m_listeners);<br />}</p>
<p>以上のように変更し、自作プロバイダのinit()内でbuffer_typeプロパティを<br />追加(または上書き)すれば、プロバイダがバッファの種類を完全に制御できます。</p>
<p>ところで、プロバイダのinit()の引数がconst指定になっていないのは、<br />プロバイダがConnectorProfileの情報(コピー)を書き変えても良いということだと、<br />私は判断しましたが、それで問題ないですよね。<br />もし書き換えを許可しないなら、const指定とする必要があります。</p>
<p>以上、よろしくご検討をお願いいたします。</p>
機能 #2363 (担当): logger.clock_type
https://www.openrtm.org/redmine/issues/2363
2012-02-07T02:55:19Z
n-ando
Noriaki.Ando@gmail.com
<p>logger.clock_typeオプションを導入</p>
機能 #2360 (担当): LoggerでClockManagerを使用できるように修正する
https://www.openrtm.org/redmine/issues/2360
2012-02-07T02:45:12Z
n-ando
Noriaki.Ando@gmail.com
<p>LoggerでClockManagerから取得したクロックを使用してタイムスタンプを打てるように修正する。</p>
機能 #2357 (担当): Clock管理クラスを導入する
https://www.openrtm.org/redmine/issues/2357
2012-02-07T02:09:36Z
n-ando
Noriaki.Ando@gmail.com
<p>Clockをグローバルに管理クラスを導入する。</p>
<ul>
<li>シングルトンな ClockManager クラスを導入</li>
<li>内部に幾つかのクロックオブジェクトを保持</li>
<li>getClock(clock type) でクロックオブジェクトを取得</li>
<li>クロックオブジェクトインターフェースはIClock</li>
<li>クロックタイプは system, logical, adjusted の3種類</li>
</ul>
バグ #2206 (新規): 複合コンポーネントの解体時にthreadに関するエラーが発生する。
https://www.openrtm.org/redmine/issues/2206
2011-08-08T09:18:03Z
kurihara
shinji0608@gmail.com
<p>複合コンポーネントを解体する処理の過程で、threadingのjoin()をコールした際に以下のエラーが発生する。<br />ただし、解体時に毎回発生するわけではなく不定期に発生する。</p>
<pre>
Exception RuntimeError: RuntimeError('cannot join current thread',) in <bound me
thod PeriodicExecutionContext.__del__ of <OpenRTM_aist.PeriodicExecutionContext.
PeriodicExecutionContext instance at 0x027A3508>> ignored
</pre>
<p>上記エラーは、Pythonのthreadingモジュール内のjoin()メソッドで、thread.get_ident()をコールし、<br />自身のスレッドのidと、join()の対象となっているスレッドのidが同じ場合に発生する。</p>
機能 #2200 (新規): Python2.7用インストーラの作成
https://www.openrtm.org/redmine/issues/2200
2011-07-27T12:09:41Z
kurihara
shinji0608@gmail.com
<p>Python2.7用のインストーラを作成する。</p>
バグ #2147 (新規): InPort.isNew()とInPort.read()の組み合わせでの問題
https://www.openrtm.org/redmine/issues/2147
2011-06-01T06:09:47Z
kurihara
shinji0608@gmail.com
<p>株式会社セック 小田桐様からの報告</p>
<pre>
並列性の観点から、isNewがTrueを返したとしても、
readが確実に成功するとは限りません。
おそらく0.4系の頃は問題なかったのだと思いますが、1.0で
データポートにConnectorが導入されたため、この問題が出てきました。
isNewがTrueを返した後、readを呼び出す前にポートの接続が切られたら
InPortのself._connectorsの要素が消され、readは失敗してしまうと思います。
</pre>
バグ #2146 (新規): RTObject_impl.readAll()が機能しない。
https://www.openrtm.org/redmine/issues/2146
2011-06-01T06:07:31Z
kurihara
shinji0608@gmail.com
<p>株式会社セック 小田桐様からの報告</p>
<pre>
readAllの実装は
Pythonではうまく機能しないですね…。
PythonのInPortの実装では、readに成功しても、
InPort.__init__のvalue引数に渡したオブジェクト自体は
書き換わりませんので。
readの戻り値をユーザのRTCのクラスに
渡してあげなければならないはずです。
</pre>
整備 #1466 (新規): Python版マニュアルの1.0.0対応
https://www.openrtm.org/redmine/issues/1466
2010-05-12T00:43:23Z
kurihara
shinji0608@gmail.com
<a name="インストールに関する内容"></a>
<h1 >インストールに関する内容<a href="#インストールに関する内容" class="wiki-anchor">¶</a></h1>
<pre>
(3)ソースからビルドする際に、必要パッケージの情報は、動作条件の欄に
概要があり、「参考」としてのリンクになってますが、ある程度明記した記述の
方が良いようにも思えますがいかがでしょう?
(以外と読み飛ばしてしまうことがあったので。)
また、リンクに従い、必要パッケージインストールすると、aptitudeで入れる場
合、そのまま
「sudo aptitude openRTM-aist-python openRTM-aist-python-example」
も実行してしまい、その後にソース版のビルドをしてしまい、重複してしまうこ
とがあります。(あまり考えずにWeb記載情報をコピペして実行することが多い
ので。)
ということもあり、(2),(3)に関連し、個人的な意見としては、
必要パッケージのインストール手順は共通のようなので、節として上部に分けてしまい、
必ずユーザが目を通すようにし、次の節で
「パッケージ版インストール手順の場合」
「ソース版インストール手順の場合」
で場合分けにしてはどうでしょうか?
</pre>
<pre>
「環境変数の設定」も、今の記述では「ソースからのインストール」の記述
の最後に出てきていますが、「パッケージ版インストール」の箇所には
無いようでして、こちらも見失いそうに思えました。
「両方の最後」or「節として別出し」にしてはどうでしょうか。
ついでに、そもそも「パッケージ版インストール」という項目はなく、
「必要パッケージのインストール」で一緒に「OpenRTM-Python」も入っている
ような記述になっているようでして、この辺りも混乱を招く可能性があるかとも
思えています。
</pre>
<a name="Ubuntuにおける注意点"></a>
<h1 >Ubuntuにおける注意点<a href="#Ubuntuにおける注意点" class="wiki-anchor">¶</a></h1>
<pre>
Ubuntu10.04でNameServiceのlocalhostにアクセス出来ない件、
「ML-863」にある内容が10.04も同様のようで、この作業をする
ことで正常に動作しました。気づかずに相当ハマリました・・。
ざっとみてるとWebマニュアルに注意書きは無いように思えたので、
MLだけでなく、こちらにも記述を希望します。
</pre>
<a name="サンプルコンポーネントの説明"></a>
<h1 >サンプルコンポーネントの説明<a href="#サンプルコンポーネントの説明" class="wiki-anchor">¶</a></h1>
<pre>
ついでに、サンプルのAutoControlやCompositeやら、いくつか、Webのサンプル
一覧の説明には出て来ていないものもあるようでしたので、追記漏れのよう
でしたらお願いいたします。
</pre>
整備 #1063 (新規): Unitテストの見直し
https://www.openrtm.org/redmine/issues/1063
2010-01-15T02:10:16Z
kurihara
shinji0608@gmail.com
<ul>
<li>Unitテストのテストケースを見直す
<ul>
<li>抜けているテストケースがないか。(新規追加メソッドも含む)</li>
<li>最後まで問題なくテストが実行されるか。</li>
</ul></li>
</ul>