[openrtm-beginners:00362] Python版の独自データ型IDL使用について

夜分遅くに失礼します。
名古屋大工学研究科M1の長澤です.

python版の独自データを取り扱う方法について聞きたくてメールしました.

環境は
win7 64bit, VS2008, Python版OpenRTM-aist1.0.1RELEASE,
C++版OpenRTM-aist1.0.2RELEASE, RTSE+RTCB 1.0.0 r155
を使っています.

作成したいRTCは,SEC社のTOP-URG用RTC(http://www.sec.co.jp/robot/download_rtc.html)
から得られた距離データを,python版openRTMでmatplotlibを使い表示するというものです.

SEC社TOP-URG用RTCは独自データ型を出力するので次のようなIDL(myidl.idl)ファイルを用意し,デベロッパーズガイド応用編に沿ってRTCBでTimedMeasuredData型のInPort(変数名in)を持つpythonコードを作成するところまでは出来ました.

#include "BasicDataType.idl"

struct MeasuredData
{
float startPosition; // start position (degree) ( ex. 0.0 )
float endPosition; // end position (degree) ( ex. 180.0 )
long scanInterval; // スキャン間引き数
long dataGroupingNumber; // まとめるステップ数
sequence distance; // distance data of each position
float dataInterval; // degree interval between data ( ex. 0.5 )
string sensorState; // sensor state ( ex. "NORMAL", "UPDATED" )
};
struct TimedMeasuredData
{
RTC::Time tm; // Timestamp( sec, nsec )
MeasuredData data;
};

しかし作成されたコード中の__init__での_d_inの宣言が
self._d_in = TimedMeasuredData(),0)
となっており,Syntax errorになります.

また試しにself._d_in = TimedMeasuredData()と書き変えてみたのですが次のようなエラーがでます.
NameError: global name 'TimedMeasuredData' is not defined

c++版での独自データ型を持つRTCはデベロッパーズガイドを参考にして作ることが出来たのですが,Python版での独自データ型の取り扱い方があまりよくわかりません.
どなたか教えて頂けるとありがたいです.

未定義

ダウンロード

最新バージョン : 2.1.0-RELESE

統計

Webサイト統計
ユーザ数:3399
プロジェクト統計
RTコンポーネント309
RTミドルウエア35
ツール25
文書・仕様書2

OpenRTM@Github

OpenRTM-aist GitHubサイト

ROS

Robot Operating System

Choreonoid

モーションエディタ/シミュレータ

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

産総研が提供するRTC集

東京オープンソースロボティクス協会