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>
整備 #4385 (解決): rpmパッケージのリリース番号表記をC++に合わせて変更する
https://www.openrtm.org/redmine/issues/4385
2017-12-05T09:27:32Z
n.kawauchi
n.kawauchi@aist.go.jp
<ul>
<li>Pythonのrpmパッケージの初回リリース番号表記は、「RLEASE0」となっている。<br />これにより生成されるパッケージ名は「OpenRTM-aist-Python-1.1.2-RELEASE0.fc26.i386.rpm」となる</li>
</ul>
<ul>
<li>C++はdebパッケージと同様の命名で初回リリース番号表記は「0」となっているため<br />生成されるパッケージ名は「OpenRTM-aist-1.1.2-0.fc26.i386.rpm」となる</li>
</ul>
<ul>
<li>rpm命名規則:(パッケージ名)-(バージョン)-(リリース番号).(アーキテクチャ).rpm</li>
</ul>
<ul>
<li>fedroa26環境でインストール済みパッケージ名を見てみると、ほとんどのリリース番号は数字のみとなっている。<br />文字列を含むものもあるが、それも先頭は数字になっている。($ dnf list installed で確認)
<table>
<tr>
<td>bind-libs.i686</td>
<td>32:9.11.1-1.P1.fc26</td>
</tr>
<tr>
<td>python3-iscsi-initiator-utils.i686</td>
<td>6.2.0.874-3.git86e8892.fc26</td>
</tr>
</table></li>
</ul>
<ul>
<li>この結果から、OpenRTM-aist-PythonもC++と同様にリリース番号の定義を「1.2.0-0._distname」の形式にし、<br />パッケージバージョンの更新時は、「1.2.0-1._distname」のように対応する</li>
</ul>
バグ #4352 (解決): rtcprof_python.batがPythonファイルの関連付け設定に関わらず起動できるように対応する
https://www.openrtm.org/redmine/issues/4352
2017-10-30T08:49:36Z
n.kawauchi
n.kawauchi@aist.go.jp
<ul>
<li><a class="issue tracker-2 status-5 priority-4 priority-default closed" title="機能: rtcd_python.bat(.exe)がPythonファイルの関連付け設定に関わらず起動できるように対応する (終了)" href="https://www.openrtm.org/redmine/issues/3473">#3473</a> のrtcd_python.batと同様の対応を行う</li>
<li>パスの指定方法は <a class="changeset" title="[compat,bugfix,->RELENG_1_2] fixed bug." href="https://www.openrtm.org/redmine/projects/openrtm-aist-python/repository/revisions/740">r740</a> でのrtcd_python.batの修正に従う</li>
<li>以上のことから下記のように修正する<br /><pre>
rtcprof.py %*
↓
%~dp0\python.exe %~dp0\rtcprof.py %*
</pre></li>
</ul>
バグ #4191 (解決): SliderComp.py 実行時にエラー状態になる
https://www.openrtm.org/redmine/issues/4191
2017-09-08T15:25:18Z
takahashi
takahashi.saburo@aist.go.jp
<p>大阪電通大の升谷です.いつもお世話になります.</p>
<p>OpenRTM-aist-1.1.2に付属のtkinterを使ったコンポーネントをWindowsで試し<br />ているのですが,動作が不安定です.何か注意すべきことはありますか?</p>
<p>再現条件がはっきりしないのですが,起動してすぐにPythonが異常終了するこ<br />ともあり,動作中にコンポーネントがエラー状態になることもあります.正常<br />に動作している場合もありますが,数回に1度ぐらいの頻度で問題が発生しま<br />す.</p>
<p>試しているのは,</p>
<pre><code>C:\ProgramFiles\OpenRTM-aist\1.1.2\Components\Python\Examples\Slider_and_Motor</code></pre>
<p>にあるSliderComp.pyやTkMotorPosComp.pyです.最初は,これを基にして独自<br />のコンポーネントを作ろうとしていたのですが,上述の問題が起こるので,オ<br />リジナルを試していたところ,オリジナルでも同じ問題が起こっています.</p>
バグ #3983 (新規): RTCのコンストラクタでエラーが発生した場合に起きる不具合
https://www.openrtm.org/redmine/issues/3983
2017-03-10T06:44:28Z
n-miyamoto
n-miyamoto@aist.go.jp
<p>RTCのコンストラクタでエラーが発生した場合、マネージャ終了時に一部のCORBAオブジェクトがディアクティベートされないため異常終了する問題の修正を行う。</p>
バグ #3872 (新規): os.hostname が manager.os.hostname になっている
https://www.openrtm.org/redmine/issues/3872
2017-01-20T04:53:48Z
n-ando
Noriaki.Ando@gmail.com
<p>os.hostname が manager.os.hostname になっている<br />これにより、RTCProfile.properties に os.hostname などが正しく継承されない。</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>