Closed Naoki-Hiraoka closed 2 years ago
https://github.com/jsk-ros-pkg/trans_system/pull/780#issuecomment-1256850356
なお、
PeriodicExecutionContextやその子クラスを使っている場合、dtはonExecute(RTC::UniqueId ec_id)
中で
double dt = 1.0 / this->get_context(ec_id)->get_rate();
とすることで取得可能です.
現在、制御周期に関するパラメータは、4箇所に2種類の変数名で記述されています.
exec_cxt.periodic.rate
dt
hrpsys_periodic_rate
(内部でこの値をもとにexec_cxt.periodic.rate
をセット) (ROSが使える環境の場合)exec_cxt.periodic.rate
(ROSが使えない環境の場合)(choreonoidやgazeboやhrpsys-simulator等のシミュレーターの設定や実機との通信といった、iobより先のコードまで考えるとさらに増えますが、ここでは考えないことにします。)
バラバラに管理されている結果、https://github.com/start-jsk/rtmros_common/issues/408 やhttps://github.com/start-jsk/rtmros_tutorials/issues/542#issue-297757344 やhttps://github.com/start-jsk/rtmros_common/pull/1107#issuecomment-864540075 やhttps://github.com/start-jsk/rtmros_tutorials/pull/588#issuecomment-846389972 などで混乱が発生しています。そのため、https://github.com/start-jsk/rtmros_tutorials/issues/542 で提案されているように、制御周期に関するパラメータを1箇所に1種類の変数名で表現するように統一していこうと思います。
具体的には、以下のように統一することを考えています.
exec_cxt.periodic.rate
に統一する. (dt
はhrpsysで付けた名前だが、exec_cxt.periodic.rate
はより上流のOpenRTMで付けた名前 なので)問題がありましたら指摘いただけますと幸いです。