logo logo
Home arrow Forums...
Friday, 05 December 2008
 
 
English English  Español Español  
Upcoming Events
10.Jun. 2009

IWANN 2009
Salamanca, Spain
International Work-Conference on Artificial Neural Networks
11.Jun. 2009

Toward a Science of Consciousness
Hong Kong, China
15.Jun. 2009

International Workshop on Machine Consciousness
Hong Kong, China
15.Jun. 2009

The 8th IEEE International Conference on Cognitive Informatics
Hong Kong, China
22.Jun. 2009

IWINAC 2009
Santiago de Compostela, Spain
Work-Conference in the Interplay between Natural and Artificial Computation
Tag Cloud
Architectures Artificial Associations Books Conferences Conscious Consciousness Developer Documentación Documentation Español Machine Machine Consciousness Machines Neuroscience Publications Research Researchers Reviews Robotics Robots Spanish Studio VPL
Spotlight
Syndicate
 Conscious Robots RSS FeedConscious Robots RSS Feed
Conscious-Robots.com Forum  


Julia
User

Senior Boarder
Posts: 17
graphgraph
Karma: 3  
Crear una simulación - 2008/03/06 21:38 Hola!

Estoy con los tutoriales de simulación y quería saber si hay alguna forma de comenzar una simulación desde cero. Por ejemplo para crear un nuevo servicio se utiliza la orden "dssnewservice /namespace:Robotics /serviceerviceNew", pues quería saber si de la misma forma hay algún comando que permita crear una simulación donde, al igual que en los nuevos servicios, tengas una estructura genérica en los archivos generados para que luego se puedan ir añadiendo modificaciones.

Muchas gracias
  The administrator has disabled public write access. Please, register to participate in the forum.
Raúl
Moderator

Moderator
Posts: 434
graph
Karma: 6  
Re:Crear una simulación - 2008/03/07 12:15 Hola.
Sí, puedes fijarte en el código del servicio MazeSimulatorRA:

-> Servicio de Simulación de Laberinto

Para crear un mundo simulado desde cero, puedes crear un servicio nuevo como dices en tu mensaje, y luego tienes que declarar el motor de simulación física como partner de tu servicio. Por ejemplo:

Code:

 // Physics engine instance PhysicsEngine _physicsEngine; // Port used to communicate with simulation engine service directly, no cloning SimulationEnginePort _simEnginePort; // partner attribute will cause simulation engine service to start [Partner("Engine",             Contract engineproxy.Contract.Identifier,             CreationPolicy PartnerCreationPolicy.UseExistingOrCreate)]         private engineproxy.SimulationEnginePort _engineServicePort = new engineproxy.SimulationEnginePort();



Luego en el método Start de tu servicio, inicializas las referencias al motor físico y al puerto del servicio de simulación.

Code:

 // Cache references to simulation/rendering and physics _physicsEngine PhysicsEngine.GlobalInstance; _simEnginePort SimulationEngine.GlobalInstancePort;




En este momento ya puedes empezar a añadir entidades y objetos a tu mundo simulado. Por ejemplo, para añadir el cielo harías esto:

Code:

 // Add a sky using a static texture. We will use the sky texture // to do per pixel lighting on each simulation visual entity SkyEntity sky = new SkyEntity("sky.dds""sky_diff.dds"); _simEnginePort.Insert(sky);



Para añadir el suelo liso, puedes usar esta función:

Code:

 void AddGround() {    HeightFieldShapeProperties hf = new HeightFieldShapeProperties("height field",                 64,     // number of rows                  100,    // distance in meters, between rows                 64,     // number of columns                 100,    // distance in meters, between columns                 1,      // scale factor to multiple height values                  -1000); // vertical extent of the height field. Should be set to large negative values   // create array with height samples   hf.HeightSamples = new HeightFieldSample[hf.RowCount hf.ColumnCount];   for (int i 0hf.RowCount hf.ColumnCounti++)   {       hf.HeightSamples<em> = new HeightFieldSample();       hf.HeightSamples[i].Height = (short)(Math.Sin(0.01));   }   // create a material for the entire field. We could also specify material per sample.   hf.Material = new MaterialProperties("ground"0.8f0.5f0.8f);   hf.TextureFileName _state.GroundTexture;   // insert ground entity in simulation and specify a texture   _simEnginePort.Insert(new HeightFieldEntity(hf_state.GroundTexture)); }



En general, puedes añadir objetos o entidades que ya están definidos en Robotics Studio o crear tus propias entidades y luego añadirlas. Para añadir un bloque como una pared, puedes hacer algo así:

Code:

 BoxShapeProperties cBoxShape null; SingleShapeEntity box null; Vector3 dimensions = new Vector3(x,y,z); // Crear una entidad a partir de una forma (shape) cBoxShape = new BoxShapeProperties(                         100// masa en kilos.                         new Pose(),     // posición relativa                         dimensions);    // dimensiones // Material asignado a la forma cBoxShape.Material = new MaterialProperties("gbox"1.0f0.4f0.5f); // Se crea la nueva entidad a partir de la forma box = new SingleShapeEntity(new BoxShape(cBoxShape),                     new Vector3(x,y,z))); // Dar un nombre único a la entidad box.State.Name "Pared 1"; /* Añadir la entidad al simulador */ _simEnginePort.Insert(box);




En el espacio de nombres [i]Microsoft.Robotics.Simulation.Engine (que está en el archivo SimulatonEngine.dll) están definidas algunas entidades que puedes usar, como el robot Lego NXT Tribot, una cámara simulada, suelo tipo terreno irregular, etc.

Otra opción que tienes para crear un entorno virtual en el simulador, es arrancar el simulador y editar manualmente el entorno (puedes crear entidades en el modo edición).

Para arrancar un simulador básico puedes ejecutar: Inicio -> Progrmas -> Robotics Studio (1.5) -> Visual Simulation Environment -> Basic Simulation Environment

En la ventana del simulador vas a Mode -> Edit.

En el menú entity, puedes añadir y borrar entidades, además de editar sus atributos.

Entonces puedes guardar el mundo que has creado como un fichero XML (File -> Sace scene as). En realidad eso genera dos fichero XML, un manifest y un estado del simulador. Puedes editar el fichero de estado manualmente para cambiar algunas cosas. Luego puedes iniciar el simulador con el mundo que has creado usando el manifest generado, por ejemplo:

Code:

 "C:Microsoft Robotics Studio (1.5)binDssHost.exe" /p:50000 /t:50001 /m:"" Sim-07-Mar-08-11-08-40-AM.Manifest.xml""



Parece un poco lioso, pero si te pones a experimentar con el simulador, verás que no es para tanto.. En cualquier caso, si tienes problemas no dudes en volver a preguntar..

Post edited by: Raúl, at: 2008/03/07 13:50
Raúl Arrabales Moreno. conscious-robots.com/raul
  The administrator has disabled public write access. Please, register to participate in the forum.
Raúl
Moderator

Moderator
Posts: 434
graph
Karma: 6  
Re:Crear una simulación - 2008/04/11 12:31 Ahora que acaban de liberar la CTP de Abril del Robotics Developer Studio 2008 hay una forma más fácil de crear una simulación desde cero. El RDS 08 trae un editor de planos (floorplan entity) que permite definir facilmente paredes, puertas, ventanas, etc.:



Tienes más información en:

-> Disponible Microsoft Robotics Developer Studio 2008 CTP Abril
Raúl Arrabales Moreno. conscious-robots.com/raul
  The administrator has disabled public write access. Please, register to participate in the forum.
Julia
User

Senior Boarder
Posts: 17
graphgraph
Karma: 3  
Re:Crear una simulación - 2008/04/14 17:24 Muchísimas gracias!! He estado trabajando a partir de lo que me explicaste y la verdad es que obtenido buenos resultados. Ahora me pondré a investigar con este sistema porque tiene muy buena pinta.

Un saludo, Julia
  The administrator has disabled public write access. Please, register to participate in the forum.
Raúl
Moderator

Moderator
Posts: 434
graph
Karma: 6  
Re:Crear una simulación - 2008/04/14 17:55 ¡De nada! Ya nos contarás.. Yo todavía no he tenido tiempo de instalar la CTP del Robotics Developer Studio 2008, pero en cuanto lo haga os contaré que tal.. Raúl Arrabales Moreno. conscious-robots.com/raul
  The administrator has disabled public write access. Please, register to participate in the forum.





Lost Password?
No account yet? Register
Last Posts in Forum
 
Top!
Advertising links: Cheap Gas - Loans - Credit Counseling - Loans
Top!