diff --git a/include/iri_base_algorithm/iri_base_algorithm.h b/include/iri_base_algorithm/iri_base_algorithm.h
index 84967adcbe2784a91935626fd5b5e97053b4391c..afde0e806b188e8407d0acd8b9f640e042969786 100644
--- a/include/iri_base_algorithm/iri_base_algorithm.h
+++ b/include/iri_base_algorithm/iri_base_algorithm.h
@@ -290,16 +290,15 @@ IriBaseAlgorithm<Algorithm>::~IriBaseAlgorithm()
 template <class Algorithm>
 void IriBaseAlgorithm<Algorithm>::setRate(double rate_hz)
 {
-  this->loop_rate_=rate_hz;
+  this->loop_rate_=ros::Rate(rate_hz);
 }
 
 template <class Algorithm>
 double IriBaseAlgorithm<Algorithm>::getRate(void)
 {
-  return this->loop_rate_;
+  return 1.0/this->loop_rate_.expectedCycleTime().toSec();
 }
 
-
 template <class Algorithm>
 void IriBaseAlgorithm<Algorithm>::reconfigureCallback(Config &config, uint32_t level)
 {