[Opensim-dev] Using ODE for vehicles and ragdolls

nlin (message) nlin.message at gmail.com
Wed Nov 19 07:47:04 UTC 2008


For this kind of approach, the type of data that needs to be passed to ODE
is joint information. Joint information can be divided into 2 types: spatial
and non-spatial.

Spatial joint information is specified by positioning a dummy object in 3D
space and giving it a special name, currently either "hingejoint" or
"balljoint", which correspond to 2 ODE joint types. For instance, the
position and orientation (of the X-axis) in 3D space of an object named
"hingejoint" specifies the hinge anchor and hinge axis, to use ODE
terminology.

Non-spatial joint information currently only includes the joint type and the
bodies that the joint connects, but needs to be expanded to include things
like joint stops, joint ERP/CFM, etc. This information is stored in the name
and description fields of the dummy joint object. The joint type is
specified in the prim name; the bodies that the joint connects are specified
in the description field. All body parts within an assembly must be
uniquely-named to avoid ambiguity in the joint specification.

A new OSSL command changes into physical objects the currently selected
objects. Prims that form parts of the jointed assembly are simply turned
physical as normal. Joints are handled last after all parts have been
created, and the component parts are looked up and linked with an ODE joint.

OpenSim knows nothing about the ODE joint, so it isn't persisted. The joint,
invisible to OpenSim, still exists in ODE and constrains the motion of the
parts connected by the joint. If you delete a body, the joint will still
exist "in limbo" and will not get deleted, since the joints aren't being
kept track of explicitly. There is no way currently to see, change, or even
know about the existence of the joint.

Clearly there are many issues to solve to make this cleaner. I think one of
the first questions to answer is how and where to store joint-related
information. As I said, I'm using a dummy object in 3D space to specify the
joint spatial parameters, and the name/description fields to specify
non-spatial information. I think using the dummy object is a good idea, but
using the name and description fields is not good. I'm not sure about how
best to add custom information to a prim. How about a notecard in the prim
inventory containing some sort of joint configuration information? Would
that be okay, or is there a better way?

Thanks,
N Lin (nlin)

2008/11/19 Frisby, Adam <adam at deepthink.com.au>

>  This is very cool –
>
>
>
> How are you assigning vehicle parameters, etc?
>
>
>
> Adam
>
>
>
> <https://lists.berlios.de/mailman/listinfo/opensim-dev>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20081119/9f95e7ff/attachment-0001.html>


More information about the Opensim-dev mailing list