[openrtm-users 01043] OutPortを持つJava版RTCの生成について

3 posts / 0 new
Last post
root
Offline
Last seen: 3 hours 3 min ago
Joined: 2009-06-23 14:31
[openrtm-users 01043] OutPortを持つJava版RTCの生成について

OpenRTM MLの皆様

お世話になっております。
アイ・テー・シーの村上と申します。

Undefined
root
Offline
Last seen: 3 hours 3 min ago
Joined: 2009-06-23 14:31
[openrtm-users 01044] OutPortを持つJava版RTCの生成について

*途中で送信してしまった為、再送させていただきます。

OpenRTM MLの皆様

お世話になっております。
アイ・テー・シーの村上と申します。

RTC BuilderでOutPortを持つコンポーネントを生成し、
他コンポーネントを繋げるとErrorになってしまいました。

調査の結果、生成された状態では以下のように初期化
されていないためと判明しました。

生成された状態
 m_out_val = new TimedDouble();

正しくは
m_out_val = new TimedDouble(new RTC.Time(0,0),0);

取り敢えず報告まで。

また、C++のサンプルコンポーネントについてですが、
現在exeファイルのみの配布となっていますが、ソース
もあわせて配布していただけると私のような初心者には
良いかと思います。

以上、宜しくお願いいたします。

root
Offline
Last seen: 3 hours 3 min ago
Joined: 2009-06-23 14:31
[openrtm-users 01045] OutPortを持つJava版RTCの生成について

アイ・テー・シー 村上様

お世話になっております。
産総研 片見です

ご報告ありがとうございます。

> RTC BuilderでOutPortを持つコンポーネントを生成し、
> 他コンポーネントを繋げるとErrorになってしまいました。
Errorは、コンポーネント接続して、write() をコールした場合に
発生している思います。

原因としましては、
初期化されていない TimedDouble を write() した場合、
TimedDouble のメンバーに null が含まれているため
マーシャル時にエラーが発生します。
これは、TimedDouble に限らず、
オブジェクトに初期化されていないメンバーある場合には、
マーシャル時にエラーが発生します。

> 生成された状態
>  m_out_val = new TimedDouble();
>
> 正しくは
> m_out_val = new TimedDouble(new RTC.Time(0,0),0);
RTC Builder により生成されるコードですが、
RTC Builder では、
コンポーネントで使用するクラスを
どのような値での初期化するかを
判定することはできないため、
初期化処理はユーザに委ねています。

大変、お手数なのですが、
RTC Builder が生成したコードに
初期化処理を追加するようにお願いいたします。

> また、C++のサンプルコンポーネントについてですが、
> 現在exeファイルのみの配布となっていますが、ソース
> もあわせて配布していただけると私のような初心者には
> 良いかと思います。
ご指摘ありがとうございます。
ご指摘のとおり、
Windowsインストーラではソースコードは配布されません。
しかしながら、
以下 url の「ソースコード・パッチ等」から
ソースコードが入手できますので、
お手数ですが、
そちらからダウンロードして頂きますようお願いいたします。

よろしくお願いいたします。

On Tue, 22 Dec 2009 17:27:27 +0900
Tetsutaro Murakami wrote:

> *途中で送信してしまった為、再送させていただきます。
>
> OpenRTM MLの皆様
>
> お世話になっております。
> アイ・テー・シーの村上と申します。
>
> RTC BuilderでOutPortを持つコンポーネントを生成し、
> 他コンポーネントを繋げるとErrorになってしまいました。
>
> 調査の結果、生成された状態では以下のように初期化
> されていないためと判明しました。
>
> 生成された状態
>  m_out_val = new TimedDouble();
>
> 正しくは
> m_out_val = new TimedDouble(new RTC.Time(0,0),0);
>
> 取り敢えず報告まで。
>
> また、C++のサンプルコンポーネントについてですが、
> 現在exeファイルのみの配布となっていますが、ソース
> もあわせて配布していただけると私のような初心者には
> 良いかと思います。
>
> 以上、宜しくお願いいたします。
>
>

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK