ros::spin() 或 ros::spinOnce()
ros::spin() 或 ros::spinOnce()两个函数通常出现在ROS的主程序中,区别在于前者调用后不会返回,后者调用后还可以接着执行后面的程序。
区别:
从其英文名字可以看出其中的差异,once表示“一次”
ros::spin()在呼叫后不会再返回,换个说话,就是你的主程序以后的程序就不再执行,而ros::spinOnce()在呼叫后他执行完后,会返回,函数以后的程序还可以被执行。
从以上可以看出,ros::spin()一般不出现在循环体中,如果出现在循环体中,程序执行到这一直呼叫,ros::spinOnce()用法相对灵活。