[openrtm-users 00600] 状態の遷移

4 posts / 0 new
Last post
root
Offline
Last seen: 1 day 17 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00600] 状態の遷移

OpenRTM MLの皆様

未来ロボット技術研究センターの清水です。

ものすごく初歩的なことかと思いますが、C++プログラム中にて状態を遷移させる
方法についてで教えていただけますでしょうか?

rtclinkを使えばactive状態からinactive状態等へ遷移することができますが、
例えば、onExcecte実行中にある条件になった場合にonDeactivatedへ遷移するよう
なことを想定しております。

宜しく御願いいたします。

Undefined
root
Offline
Last seen: 1 day 17 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00601] 状態の遷移

静岡大 清水です

> ものすごく初歩的なことかと思いますが、C++プログラム中
にて状態を遷移させる
> 方法についてで教えていただけますでしょうか?

コンポーネント内部からなら、以下のようになるかと思います

ExecutionContext_var ec = this->get_context(0);
ec->deactivate_component(this->getObjRef());

PeriodicExecutionContextなら次の周期で、
ExtTrigならtick()を呼ぶと状態遷移が生じます。

清水

root
Offline
Last seen: 1 day 17 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00602] 状態の遷移

fuRo 清水様、静岡大 清水様

産総研 安藤です

> 静岡大 清水です
>
>> ものすごく初歩的なことかと思いますが、C++プログラム中
> にて状態を遷移させる
>> 方法についてで教えていただけますでしょうか?
>
> コンポーネント内部からなら、以下のようになるかと思います
> 。
>
> ExecutionContext_var ec = this->get_context(0);
> ec->deactivate_component(this->getObjRef());

ありがとうございます。>静岡大清水様

ちょっとだけ補足しますと、get_context(0) の0の部分は本来
ExecutionContext(EC)のIDが入るので0でない場合もあります。
が、現在RTCは通常ECは1個しか持たず、IDは常に0なので、
上記のとおりでOKです。

ただし、onExecuteなど、ec_idを引数にとる関数でget_contextを
呼ぶ場合は、get_context(ec_id) としたほうがより安全です。
将来的には、ec_idが意味を持つ場面も出てくるかもしれませんので、
一応このことを覚えておいていただければ幸いです。

root
Offline
Last seen: 1 day 17 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00603] 状態の遷移

静岡大 清水様
産総研 安藤様

未来ロボット技術研究センターの清水です。

早速のご教授ありがとうございます。

教えていただいた方法で想定しておりました動作を確認いたしました。

ありがとうぞざいました。

Ando Noriaki さんは書きました:
> fuRo 清水様、静岡大 清水様
>
> 産総研 安藤です
>
>> 静岡大 清水です
>>
>>> ものすごく初歩的なことかと思いますが、C++プログラム中
>> にて状態を遷移させる
>>> 方法についてで教えていただけますでしょうか?
>> コンポーネント内部からなら、以下のようになるかと思います
>> 。
>>
>> ExecutionContext_var ec = this->get_context(0);
>> ec->deactivate_component(this->getObjRef());
>
> ありがとうございます。>静岡大清水様
>
> ちょっとだけ補足しますと、get_context(0) の0の部分は本来
> ExecutionContext(EC)のIDが入るので0でない場合もあります。
> が、現在RTCは通常ECは1個しか持たず、IDは常に0なので、
> 上記のとおりでOKです。
>
> ただし、onExecuteなど、ec_idを引数にとる関数でget_contextを
> 呼ぶ場合は、get_context(ec_id) としたほうがより安全です。
> 将来的には、ec_idが意味を持つ場面も出てくるかもしれませんので、
> 一応このことを覚えておいていただければ幸いです。
>

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