[openrtm-users 00141] 実時間制御RTコンポーネント

3 posts / 0 new
Last post
root
Offline
Last seen: 1 day 19 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00141] 実時間制御RTコンポーネント

筑波大学の佐藤といいます.

自分はART-Linuxによる実時間制御RTコンポーネントの
作成をしたいのですが,onExecute内のプログラムを
周期実行するためにARTの関数を使い,周期を1msecとしたところ,
実際には1msecで実行できていませんでした.

これはonExecuteの呼び出しの周期が1msecより遅いせいである
と思うのですが,これをもっと早くすることはできないのでしょうか?
もしくは他に解決方法がありましたらよろしくお願いします.

Undefined
root
Offline
Last seen: 1 day 19 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00142] 実時間制御RTコンポーネント

筑波大学 佐藤様

産総研 安藤です

> 自分はART-Linuxによる実時間制御RTコンポーネントの
> 作成をしたいのですが,onExecute内のプログラムを
> 周期実行するためにARTの関数を使い,周期を1msecとしたところ,
> 実際には1msecで実行できていませんでした.
>
> これはonExecuteの呼び出しの周期が1msecより遅いせいである
> と思うのですが,これをもっと早くすることはできないのでしょうか?
> もしくは他に解決方法がありましたらよろしくお願いします.

onExecuteは、ExecutionContextというオブジェクトによって周期実行されています。
ExecutionContextはrtc.confに以下の項目を設定することで、
実行周期を制御することができます。

exec_cxt.periodic.rate: 1000

単位は[Hz]なので、上の例では1ms周期でonExecuteが実行されます。

ただし、リリース版のOpenRTMに付属しているExecutionContextでは
周期実行を単にusleepを使って待ちを入れているだけですので、
おそらく1ms周期を指定してもLinuxのスケジューリング周期の影響により
10ms前後での周期でしか実行されないと思います。

ART-Linuxのを利用する場合は、リアルタイム化されたExecutionContext
に差し替えることによって、onExecuteの実行をリアルタイム化するのが
本来のやり方です。

この方法を用いると、同じコンポーネントを再コンパイルせずに、
リアルタイム化することができます。

近いうちに、ART-Linux用のExecutionContextをWeb上にアップしますので、
今しばらくお待ちください。

root
Offline
Last seen: 1 day 19 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00204] 実時間制御RTコンポーネント

筑波大学 佐藤様
OpenRTM MLの皆様

産総研 安藤です

大変遅くなり申し訳ございません。(もうお忘れかもしれませんが。。。)
Web上にARTLinuxを利用してRTコンポーネントをリアルタイム化する方法を
掲載いたしました。

http://www.is.aist.go.jp/rt/OpenRTM-aist/html/TIPS.html

ご活用いただければ幸いです。

> 筑波大学 佐藤様
>
> 産総研 安藤です
>
> > 自分はART-Linuxによる実時間制御RTコンポーネントの
> > 作成をしたいのですが,onExecute内のプログラムを
> > 周期実行するためにARTの関数を使い,周期を1msecとしたところ,
> > 実際には1msecで実行できていませんでした.
> >
> > これはonExecuteの呼び出しの周期が1msecより遅いせいである
> > と思うのですが,これをもっと早くすることはできないのでしょうか?
> > もしくは他に解決方法がありましたらよろしくお願いします.
>
> onExecuteは、ExecutionContextというオブジェクトによって周期実行されています。
> ExecutionContextはrtc.confに以下の項目を設定することで、
> 実行周期を制御することができます。
>
> exec_cxt.periodic.rate: 1000
>
> 単位は[Hz]なので、上の例では1ms周期でonExecuteが実行されます。
>
> ただし、リリース版のOpenRTMに付属しているExecutionContextでは
> 周期実行を単にusleepを使って待ちを入れているだけですので、
> おそらく1ms周期を指定してもLinuxのスケジューリング周期の影響により
> 10ms前後での周期でしか実行されないと思います。
>
> ART-Linuxのを利用する場合は、リアルタイム化されたExecutionContext
> に差し替えることによって、onExecuteの実行をリアルタイム化するのが
> 本来のやり方です。
>
> この方法を用いると、同じコンポーネントを再コンパイルせずに、
> リアルタイム化することができます。
>
> 近いうちに、ART-Linux用のExecutionContextをWeb上にアップしますので、
> 今しばらくお待ちください。

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