Uses ros::Rate to enforce software framerate instead of custom time check