If you are trying to run a gazebo experiment on a headless machine (e.g. a virtual machine), you are likely to encounter the following error:
Gazebo needs a defined display to render images. To run on a headless machine, you can use Xvfb
, which runs all graphical operations in virtual memory, without displaying anything on a screen.
To install Xvfb on your machine:
To run an experiment using Xvfb:
xvfb-run
, named xvfb-run-nrp
, shall be used. It takes care of correctly stopping the launched processes.The problem will be indicated by logs that look like this:
Increase the timeout by adding the following option to the engine configuration:
or disable the timeouts:
It is possible that after making changes to NRP Core source code, shifting to another branch or pulling from the NRP Core git repository upstream, you see a "symbol lookup error" when building NRP Core next time. This happens after the signature of a function which is used in tests changes, even though tests have been updated correctly to reflex the changes in the source code. Concretely, the resulting error is of the form:
The error is caused by GoogleTest looking up installed NRP Core libraries instead of the freshly built ones. The easiest way to overcome this error is to delete the NRP Core install folder. If you have for example installed NRPCore at "/home/${USER}/.local/nrp" as recommended, just delete this folder and build NRP Core again. The error should disappear.