Closed chrisdembia closed 1 year ago
In Gazebo, the world is represented in both sdformat and the c++ class gazebo::physics::World
as a container for models and lights. It also has settings for the gravity and magnetic field and coming soon is wind and atmospheric conditions. It also points to a physics engine with numerical parameters like time step.
It has not historically been the case, but recently nesting models within other models has become possible. We did this to make it easier to define individual components (such as a wheel) as separate models and compose them into a larger model (attaching wheels to a chassis).
Here's a link to our design document describing this:
Thanks @scpeters, that is very helpful.
This is sloppy of me but I'm creating a new issue to document a conversation that @aseth1 @klshrinidhi and I had just now about nesting models and a separate "root component."
This picture provides us with just two classes: Component and World. I think it is very clean.
@scpeters, how does Gazebo handle the "environment/world" separately from the models placed in the world? Do you allow nesting models inside other models? Where do you specify the gravity vector, as part of individual models or as part of some root "world" element?