Timing, function and sequence of the gazebo "world update cycle" and the "plugin update cycle"
Hey all,
I got some questions concerning the procedure of the world update cycle and the onUpdate function of plugins, because I couldn't find that information in the gazebo wiki.
How often is the world state updated?
How is it implemented and whats happening in one update cylce (in short)?
Does the onUpdate method of a plugin block the world update cycle?
What happens when there are more than one plugins with an onUpdate method? Are these processed in parallel or sequentially?
How is the interaction between the world update and sensor plugins (like the gazebo_ros_laser or gazebo_ros_openni_kinect) that are running in its own thread? Does the world call them in the given clock pulse set in the sdf to get the sensor data?
Does the existence of a mutex in your onUpdate method, that is used to read or set some global variables, has any influence on the update behaviour between the world and the plugin? Like for the case that the world is running an update cycle and the onUpdate method is still reading the global variables. The same question refers to the call of (short) functions in the onUpdate method.
Does the existence of a shared mutex, used in the onUpdate method and some functions to set and read some global variables, block the onUpdate method in the case that the mutex is locked in one of the functions while the onUpdate methods need the mutex to finish its cycle?
Thanks for your help,
Christoph
Did you ever get an official answers to these questions?