PythonによるRTコンポーネント講座(その3)
先に言っておきます。早稲田大学の菅氏のサイトからパクッてます。警告が来たら即消します。まあ、僕のサイトが万が一にも見てもらえる可能性はないとは思いますが。サンプルプログラムはここです。
えーとですねえ。C++だろうとPythonだろうとやることはほとんど同じです。
Eclipseを起動してください。最初にようこそとかいうのが出ますが上の×押して消してくださって結構です。次に右上のパースペクティブを開くというところからその他をクリックしてください。
それからRTCLinkをクリックします。その後、左上のファイルからOpen New Template Editorをクリックします。真ん中上にTemplate Editorが出ます。
コンポーネントを作成します。Template Editorの設定は
Programming language selection | Python | |
モジュール定義 | Module name | PeriodicConsoleOut |
Module description | Periodic Console Out Component | |
Module version | 0.0.1 | |
Module vender | あなたの名前 | |
Module category | TEST | |
Component type | COMMUNICATIVE | |
Component's activity type | PERIODIC | |
Number of maximum instance | 1 | |
Output directory | 適当なフォルダを指定してください. |
とします。見ての通りパクッてます。C++をPythonに変えただけの手抜きです。警告が来たらこのページは消えます。
これでGenerateすると指定したフォルダに
PeriodicConsoleOut.py
README.PeriodicConsoleOut
が作られます。
あとはプログラムの編集です。94〜96行目の#を消してください。そして以下のようにしてください。
def onExecute(self, ec_id):
print "Hello RT Component!"
return RTC.RTC_OK
まだ、実行はしません。以下の内容のrtc.confを同じフォルダに作成してください。これで1秒間に10回onExcuteが実行されます。
corba.nameservers: localhost:2809
exec_cxt.periodic.rate:10
ようやく実行します。C:\Program Files\OpenRTM-aist\0.4\binのrtm-namingを実行してください。
そのあと、Eclipseの右上のAdd name Serverをクリックします。
ネームサーバのアドレスにはlocalhost:2809と入力します。そのあとPeriodicConsoleOut.pyをダブルクリックして実行します。これで、以下のようになります。
このあと、ファイルからOpen New System Editorをクリックして、PeriodicConsoleOut0|rtcをドラッグしてエディタまでもっていきます。
あとはエディタのPreiodicConsoleOut0を右クリックしてActiveを選択すると周期的に文字が出力されます。終わるときは再び右クリックしてDeactiveして、文字を出力したウインドウの×を押すだけです。右クリックでExit押しても終了しないのは僕だけでしょうか?
あと、vista使ってる人でできない人がいたらここに書いてることをしたらできるかもしれませんし、パソコンが壊れるかもしれません。