Raúl
Moderator
 Moderator
| Posts: 425 |  | Karma: 6
|
Re:crear nueva simulacion - 2008/05/26 14:55
Hola, El método LocalToWorld es parte de la definición de VisualEntity por lo que respecta al motor de simulación. Sin embargo, no es parte del código fuente que Microsoft ha hecho público (ellos lo han definido como "Internal" en su código). Microsoft ha reconocido que esto es un bug, ya que se pretende que tú puedas partir del código que hay en entities.cs, pero claro si no te dan acceso a parte de la definición no puedes.
El método LocalToWorld devuelve una matriz que se usa para convertir coordenadas del sistema de referencia local al sistema de referencia del mundo simulado basado en la posición y la orientación de la entidad.
El código fuente es el siguiente:
| Code: | internal xna.Matrix WorldToLocal
{
get
{
return xna.Matrix.Invert(LocalToWorld);
}
}
internal xna.Matrix LocalToWorld
{
get
{
xna.Matrix localToWorld = xna.Matrix.CreateFromQuaternion(TypeConversion.ToXNA(State.Pose.Orientation));
localToWorld.Translation = Position;
if (Parent == null || (_parentJoint != null && _parentJoint.InternalHandle != IntPtr.Zero))
{
return localToWorld;
}
else
{
return localToWorld * Parent.LocalToWorld;
}
}
}
|
Si te estás basando en el simulation tutorial 4, (el brazo Kuka), puede que evites este error comentando la sentencia if que hay debajo de este comentario:
"Update arm position & orientation ..."
Ese if sólo es necesario cuando se mueve el editor del simulador..
También puedes mirar a ver si ya han solucionado este bug en la version CTP del Robotics Developer Studio 2008..
Raúl Arrabales Moreno. conscious-robots.com/raul |