私は、各コールバック関数の後に特定の計算を実行するプログラムをROSで作成しています。私のコールバック関数は、基本的にトピックにサブスクライブし、特定の計算を実行するために使用される変数の値を設定します。私が購読しているトピックは、30Hzの周波数を持っています。だから、30Hzのレートで動作する私のプログラムにはwhileループがあります。ループは、次のコードに幾分類似している:ros :: spinOnce()が特定の数のコールバックをコールバックキューから呼び出す方法はありますか?
while (ros::ok())
{
ros::spinOnce(); //this should set a certain variable "a"
perform_computation(); //this performs computation on the variable "a"
looprate.sleep(); //this runs at 30 Hz
}