The vrx-docker README has instructions to generate practice worlds from yaml files: https://github.com/osrf/vrx-docker/blob/master/README.md#preparing-trials-for-a-task
These instructions current produce an error because the prepare_task_trials.bash script calls generate_worlds.launch which eventually generates a xacro file that references macros that xacro is unable to find. For example, the command
prepare_task_trials.bash stationkeeping
generates a file called stationkeeping0.world.xacro that contains the following lines:
<world name="robotx_example_course">
<xacro:include filename="$(find vrx_gazebo)/worlds/xacros/include_all_xacros.xacro" />
<xacro:include_all_xacros />
<!-- === sydneyregatta_minus_scene === -->
<xacro:sydneyregatta_minus_scene />
However, when xacro is called on this file it is unable to find the macro sydneyregatta_minus_scene, which should have been included by the include_all_xacros macro, which contains the following lines:
<xacro:macro name="include_all_xacros">
<xacro:include filename="$(find vrx_2019)/worlds/sandisland.xacro" />
<xacro:include filename="$(find vrx_gazebo)/worlds/xacros/sandisland_minus_scene.xacro" />
<xacro:include filename="$(find vrx_gazebo)/worlds/xacros/sydneyregatta_minus_scene.xacro" />
None of the xacro files included by this macro can be found anymore. If they are manually added to the stationkeeping0.world.xacro file, it works fine.
This was tested and working earlier this year, so I'm not sure what changed. I know we have repeatedly had problems with this particular design choice. At least once the reason was that the version of xacro updated and changed the way it scoped included files.
I'm still working on a fix, but it would be helpful if someone could verify that they can reproduce the error, just in case I made some mistake in my setup somewhere.
The
vrx-dockerREADME has instructions to generate practice worlds fromyamlfiles: https://github.com/osrf/vrx-docker/blob/master/README.md#preparing-trials-for-a-taskThese instructions current produce an error because the
prepare_task_trials.bashscript callsgenerate_worlds.launchwhich eventually generates axacrofile that references macros thatxacrois unable to find. For example, the commandgenerates a file called
stationkeeping0.world.xacrothat contains the following lines:However, when
xacrois called on this file it is unable to find the macrosydneyregatta_minus_scene, which should have been included by theinclude_all_xacrosmacro, which contains the following lines:None of the
xacrofiles included by this macro can be found anymore. If they are manually added to thestationkeeping0.world.xacrofile, it works fine.This was tested and working earlier this year, so I'm not sure what changed. I know we have repeatedly had problems with this particular design choice. At least once the reason was that the version of
xacroupdated and changed the way it scoped included files.I'm still working on a fix, but it would be helpful if someone could verify that they can reproduce the error, just in case I made some mistake in my setup somewhere.