1
$\begingroup$

I made a simulation of a farm in Webots using the new animals objects released with R2023a.

I first developed my simulation using these instruction to build Webots from sources: https://github.com/cyberbotics/webots/wiki/Linux-installation/ I did that to have access to the animals before R2023a was released.

However, now that R2023a is out, I installed the snap package to continue my project. But the world is completely broken.

The world loads, but the screen is black and the terminal is flooded with errors like that:

ERROR: URL '/snap/webots/24/usr/share/webots/projects/objects/animals/protos/Horse.proto' changed by fallback mechanism. Ensure you are opening the correct world.
ERROR: Skipped PROTO 'Horse' as it is not available at: /snap/webots/24/usr/share/webots/projects/objects/animals/protos/Horse.proto.
ERROR: URL '/snap/webots/24/usr/share/webots/projects/objects/animals/protos/Horse.proto' changed by fallback mechanism. Ensure you are opening the correct world.
ERROR: 'agriProj.wbt':11:1: error: Skipped unknown 'Horse' node or PROTO.
ERROR: URL '/snap/webots/24/usr/share/webots/projects/objects/animals/protos/Horse.proto' changed by fallback mechanism. Ensure you are opening the correct world.

Operating system: ubuntu 22.04

What I have tried so far:

I tried to install Webots with the .deb and also the .tar.bz2 but I had the same issue.

I made a minimal example of just a horse, viewpoint and worldinfo but it is still bugging.

I tried to add a new horse and it works as if the horse from the Webots built from sources is not compatible with the horse from the distributions, which is really strange.

It seems to affect only PROTO, not base node like Transform, Solid, Background ans so on.

Is there something specific to do when switching from sources to released packages?

$\endgroup$

1 Answer 1

0
$\begingroup$

It seems like your Webots installation is looking for the PROTO locally instead of remotely.

Short answer:

-Open agriProj.wbt in a text editor.

-Replace all occurences of webots:// by https://raw.githubusercontent.com/cyberbotics/webots/R2023a/.

-Save the .wbt file

-Open it again in Webots and it should work.

Long answer:

When you install webots from the sources, all the assets (textures, protos,...) are available locally in the Webots folder. However, the assets are not distributed in the released version of Webots to reduce the size of the package (https://cyberbotics.com/doc/blog/Webots-2021-b-release#reduce-package-size).

I think that the protos you are trying to load do not have the right path.

Since R2022b, the keyword EXTERNPROTO is used in worlds to determine where Webots needs to look for a specific asset. If you insert a Horse in a world you will have the line: EXTERNPROTO "https://raw.githubusercontent.com/cyberbotics/webots/R2023a/projects/objects/animals/protos/Horse.proto" at the top of your worldfile.

However, when using webots from sources, there is a special case. As developing from sources is thought for the developpers of Webots, a direct access to the assets is needed to be able to quickly modify and test them. That what the webots:// prefix does: it tells Webots to look in its installation directory.

So what I suspect is that when you built your world in the Webots development environment, you got the webots:// urls written in your world. Then when you try to open it in your snap installation, it will look locally in the snap folder (where there are no assets) instead of downloading them.

To fix this you need to change all the webots:// prefixes by https://raw.githubusercontent.com/cyberbotics/webots/R2023a/ in your world (.wbt) file

In the future, if you want to use features that were not released yet and you want to avoid this issue, I recommend you to use the nightly builds available here: https://github.com/cyberbotics/webots/releases

$\endgroup$
3
  • 1
    $\begingroup$ Thanks, it solves the problem. But as assets are online, does it means that the horse proto will be downloaded everytime I opened the world? $\endgroup$
    – Ellena93
    Commented Dec 8, 2022 at 7:34
  • 2
    $\begingroup$ No, the assets are downloaded only once and then cached locally. (cyberbotics.com/doc/guide/…) $\endgroup$
    – BenjaminD
    Commented Dec 8, 2022 at 7:45
  • $\begingroup$ Hi BenjaminD, please read the meta answer robotics.meta.stackexchange.com/a/1485/37 and the question associated with it. You have been flagged as being a member of a possible voting ring, and we would like to help avoid that in the future. $\endgroup$
    – Mark Booth
    Commented Dec 12, 2022 at 22:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.