2017-05-17 21 views
0

/image_pubトピックから単一のイメージを受信するrosパブリッシャ/サブスクライバノードを実行していて、何らかの処理を行い、結果を/ resultsトピックにパブリッシュします。 image_pubのトピックは20Hzで公開されていますが、私のパブリッシャー/サブスクライバノードは12hzで動作しています(私は輝きのあるhz /結果を使用して見つかりました)。スピードを向上させる方法や、20Hzで動作するようにプログラムを教える方法はありますか?開始時には20Hzで動作していました。その後、私はLinuxを昼食にして戻ってきて、私のプログラムを再開しました。今12hzで走っている。私は何度も何度もそれをやり直しましたが、まだ12時に走ります。任意のソリューション..?ROS発行者の速度

答えて

0

イメージ処理が1/20秒より長くかかる場合は、20Hzを達成できない場合があります。それが当てはまらない場合は、以下のメインループは、ジョブに

ros::Rate publish_rate(20); 
while(ros::ok()) 
{ 
    // do some processing 
    publisher.publish(image); 
    publish_rate.sleep(); 
} 

を行いますros::Rateは20Hzのを達成するための時間の適切な量のために眠ることを確認します。 Releaseモード(catkin_make -DCMAKE_BUILD_TYPE=Release)でコンパイルすることをお勧めします。これによりコードの処理速度が向上します。

+0

はい、問題は私のサブスクライバのコールバックにありました。私はORB機能を使用していますが、処理が困難な点が多数検出されています。だから私は機能の数とその作業が制限されています。助けてくれてありがとう :) – usmanarif

関連する問題