Is there any statement anywhere about the goals or objectives, components and requirements of this project? I had a look around and don't see any. Is it worth doing or do the primaries on this project pretty much have the vision of the system. I'm just thinking that if we had a clear idea on what we need then it's a matter of seeing which tool out there comes closest (balanced with its apparent survivability and so on but you get the idea).
Or are we using this discussion to ratify those requirements?

On 8/11/06, Jordi <> wrote:

> Let's take a step back for a moment, and consider what gazebo really
> needs in a XML format. We will have two types of files, one that
> describes the world and one that describes a model. A model is
> collection of bodies connected via joints and zero or more sensors. A
> world is a collection of models along with some global parameters such
> as gravity.
> We don't need collada or X3D to specify the world. Our current format
> is pretty good.


> For the model file, we may not need Collada or X3D. Ogre3d allows us
> to directly load meshes from file. So a body's geometry will now be
> specified by a mesh file. This mesh can be created from almost any 3d
> modeler, such as blender. So a model file will contain the following:
>   1) 1...N bodies, where each body contains a mesh file, and some
> simple properties such as scale, position, color, texture, mass, etc.
>   2) 0...M joints, where each joint connects two bodies together via a
> specific ODE joint type.
>   3) 0...K sensors, where each sensor contains a position on the model
> and a sensor type.


I guess that you are thinking in using external 3D tools to make meshes that
will be referenced from the XML to build the model. The XML file should be
easy enough to be done MANUALLY. It works well, in theory (or with really
really easy models).

As we move to XML models, we lose a lot of interesting information. We lose
the C++ code. You may think this is ok, but let me  provide an example:

>From the carchassis model (pretty simple, uh?)

chassisSize = GzVectorSet(wheelBase, trackWidth - wheelDiam, 0.5);
chassisPos = GzVectorSet(0, 0, frameClear + chassisSize.z / 2);

rearLeftPose = GzPoseSet(GzVectorSet(-wheelBase / 2, +trackWidth / 2,
wheelDiam / 2),
                          GzQuaternFromAxis(1, 0, 0, -M_PI / 2));
rearRightPose = GzPoseSet(GzVectorSet(-wheelBase / 2, -trackWidth / 2,
wheelDiam / 2),
                           GzQuaternFromAxis(1, 0, 0, +M_PI / 2));

frontLeftPose = GzPoseSet(GzVectorSet(+wheelBase / 2, +trackWidth / 2,
wheelDiam / 2),
                           GzQuaternFromAxis(1, 0, 0, -M_PI / 2));
frontRightPose = GzPoseSet(GzVectorSet(+wheelBase / 2, -trackWidth / 2,
wheelDiam / 2),
                            GzQuaternFromAxis(1, 0, 0, +M_PI / 2));

In a XML everything turns to numbers. Numbers like 0.254, 0.208, 1.560 ...

I have pretty bad imagination when it comes to put those positions, rotations,
scales, colors and shapes in a 3D world, so I CAN'T do those XML files by

Too error prone.

So we need a GUI to make these files.

And why not use COLLADA or X3D when they have widespread adoption in 3D

> Our application is specific to robotic
> simulation, we probably don't even have to mess around with a standard
> 3d Model data format - just let Ogre3d take care of loading meshes and
> 3d modelers creating them.

Mostly agree.

We don't have to mess with COLLADA (it's just a tool to help us), Ogre3D and
ODE automagically load it (loading the referred meshes IIRC). X3D should need
some more work if we choose that path.

We will ALWAYS need our very specifics tags in any format we choose, as our
problem is very specific. My point is let other projects help us as much as
possible and focus our development in only those tags, not on the entire XML

So just to repeat myself once more:
Loading one mesh, loads for instance a wheel of a robot, cool.
Loading a COLLADA file, loads every wheel of our robot (and everything else)
with their physical properties.
Loading any of them cost us the same effort, call the load method from Ogre3D.

Jordi Polo

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
Playerstage-gazebo mailing list