2

We are in the process of moving our warehouse simulation from Gazebo to Webots. We would like to set up a "realistic" warehouse environment in Webots. The factory sample already provides a lot of props for this, but we have not yet found warehouse shelf models for Webots.

One option would be to convert the AWS RoboMaker worlds from SDF to Webots: https://github.com/aws-robotics/aws-robomaker-small-warehouse-world

Is there a tool to make this conversion, or do we have to do it manually?

If no automated solution is available, what is the best approach to import the models manually?

1 Answers1

3

Although not automatic, it should be pretty straightforward to re-use the shelf object from this AWS RoboMaker world by simply re-using its meshes to create a Shelf.proto file in your local protos folder:

#VRML_SIM R2023a utf8
# A shelf.

PROTO Shelf [ field SFVec3f translation 0 0 0 field SFRotation rotation 0 0 1 0 field SFString name "shelf" field SFBool locked FALSE # Is Solid.locked. ] { Solid { translation IS translation rotation IS rotation children [ CadShape { url "https://raw.githubusercontent.com/aws-robotics/aws-robomaker-small-warehouse-world/ros1/models/aws_robomaker_warehouse_ShelfD_01/meshes/aws_robomaker_warehouse_ShelfD_01_visual.DAE" } ] name IS name model "shelf" boundingObject Mesh { url "https://raw.githubusercontent.com/aws-robotics/aws-robomaker-small-warehouse-world/ros1/models/aws_robomaker_warehouse_ShelfD_01/meshes/aws_robomaker_warehouse_ShelfD_01_collision.DAE" } locked IS locked } }

Here is what it looks like in Webots: Shelf.proto Here is the sample.wbt world file showing it in Webots:

#VRML_SIM R2023a utf8

EXTERNPROTO "webots://projects/objects/backgrounds/protos/TexturedBackground.proto" EXTERNPROTO "webots://projects/objects/backgrounds/protos/TexturedBackgroundLight.proto" EXTERNPROTO "../protos/Shelf.proto"

WorldInfo { } Viewpoint { orientation -0.11384659601330234 -0.3187749829101217 0.9409683644240309 5.557715208500585 position -5.776529177279546 4.724710358949437 2.980453565305262 } TexturedBackground { } TexturedBackgroundLight { } Shelf { rotation 0 0 1 1.5708003061004252 }

You can also view it in 3D online on webots.cloud.

Note: Using meshes for the bounding object is not optimal, especially in this case where the bounding object could be replaced with a compound object made up of simple boxes, e.g., using a Group node that contains a series of Transform nodes containing a Box node in their Shape node.

Disclaimer: I am a Webots developer working at Cyberbotics.

Olivier Michel
  • 642
  • 5
  • 14