OpenRTM-aist (Python): チケット
https://www.openrtm.org/redmine/
https://www.openrtm.org/redmine/redmine/favicon.ico
2018-02-27T01:25:24Z
Redmine for OpenRTM-aist
Redmine
整備 #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>
バグ #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>
バグ #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>