Ros service-call SetVisualProperties overrides old changes


February 18, 2021, 1:50 PM

I haven't encountered this kind of behavior for NRP 3.0.5 and NRP 3.1.0.

The report is related to calling a ros service /gazebo/set_visual_properties to set colors for the model's link.

Reported Bug

The reporter claims that calling the aforementioned ros-service multiple times in quick succession for different links in the same model does not set the color for all callings except the last call.


To test the reported bug, I wrote a script to call ros-service /gazebo/set_visual_properties for different links in rapid succession.


Here videos for NRP 3.0.5

Here videos for NRP 3.1.0

Here is the files used for testing purpose.

Fabrice Morin
February 18, 2021, 4:48 PM

Thanks. Could it be that it works in your case because the simulation is not running, or not intensive? Maybe the user is applying those changes on the fly during a load-heavy simulation on a weak machine, and the computational load slows down the execution, which in turn triggers the faulty behavior… So to be on the safe side, can you modify the function as the user suggested. “Wait for change to happen before exiting from service call“?

February 19, 2021, 8:27 PM

I reproduced the issue. The issue appears when I call ros-service with python script in quick succession.[There is no problem when calling with bash-script]

To fix the issue I added a while loop to wait until the color is implemented.

Do you think It is a good solution ?

I haven’t come up with any other solution?

Ugo Albanese
February 22, 2021, 3:29 PM

Let’s continue the discussion on bitbucket .