Programar en Microsoft robotic studio - 2010/04/20 17:51Hola a todos, soy nuevo en estos temas y llevo varios dias buscando información para poder realizar la simulación de un robot con microsoft robotics studio y ando bastante perdido. Por un lado no se como puedo introducir la entidad de mi robot(lo tengo en dwg y tampoco me deja convertirlo en .obj) y como poder realizar la programación de los sensores de seguir linea y el detector de obtaculos que es por infrarrojos(en el programa solo veo el que es por sonido). Si sabeis alguna pagina de donde sacar información os estaria muy agradecido. Gracias por todo, Juan
The administrator has disabled public write access. Please, register to participate in the
forum.
Para modelar tu robot en el simulador (Visual Simulation Environment) de Robotics Developer Studio necesitas:
1.- Tener un modelo de la malla que define la forma física del robot. Necesitas que la malla esté en formato .Obj. Probablemente puedas usar Blender para convertir la malla que tienes ahora a Obj. Una vez que tengas la malla, tienes que crear una nueva entidad para el simulador (es decir, derivar una clase de VisualEntity).
2.- Además de crear la nueva entidad para el entorno de simulación, tendrás que tener los servicios necesarios asociados con los sensores y controladores del robot.
En general, para familiarizarte con RDS lo ideal es que te leas la documentación sobre CCR y DSS y sigas los tutoriales. Concretamente, te propongo esta guía de iniciación.
En concreto, para crear tu robot simulado puedes seguir este tutorial:
-> Custom Simulated Entities (Aunque necesitarás estar ya familiarizado con RDS para poder seguirlo de forma efectiva).
Respecto a la programación del controlador, puede usar los sensores y los actuadores de los que dispongas. En RDS dispones de un sensor de infrarrojos simulado, así que puedes usarlo para incorporarlo al modelo de tu robot y programar el comportamiento de seguir líneas. Saludos, Raúl.Raúl Arrabales Moreno. conscious-robots.com/raul
The administrator has disabled public write access. Please, register to participate in the
forum.
nillo´s
User Junior Boarder
Posts: 8
Karma: 1
Re:Programar en Microsoft robotic studio - 2010/05/17 17:21Gracias por tu respuesto y perdona por la tardanza en contestarte. Ya tengo la malla y he conseguido introucir mi robot en el entorno Basic simulation. Ahora lo que estoy intentando es hacer una especie de laberinto con algun elemento metido en él. El problema que veo es que cada vez q intento introducir un elemento 3d, como una mesa, sofa, puerta....lo saco del sketchup7 y los convierto en obj, y luego en .bos, pero cuando intento introducirlos me da error y no aparece nada en pantalla. Para las paredes estoy utilizando el floorplan entty, q la verdad es algo peñazo y a veces se m mueven los muros Si puedes echarme una mano te lo agradeceria muxo, Bye
The administrator has disabled public write access. Please, register to participate in the
forum.
Raúl
Moderator Moderator
Posts: 591
Karma: 10
Re:Programar en Microsoft robotic studio - 2010/05/23 10:39¿Qué error te da? Recuerdo que nosotros tuvimos que cambiar bastantes parámetros en SketchUp y en blender a la hora de generar mallas OBJ que fueran totalmente compatibles con RDS.
La verdad es que ese trabajo no lo hice yo, así que no recuerdo exactamente los parámetros necesarios.. Me suena que una de las opciones importantes es generar la malla uniendo siempre vértices adyacentes. En Blender creo que también era necesario guardar el objeto usando la función guardar escena (y no guardar objeto, como uno pensaría intuitivamente).
De todas formas puede que el error que comentas no tenga nada que ver con el formato del obj y que sea otra cosa relacionada con la entidad.
Por cierto, si quieres generar un laberinto puedes usar directamente el código del MazeSimulator que genera un laberinto a partir de un bmp en dos dimensiones (eso sí, no te aseguro que sea más fácil de usar que el floorplant Aquí lo tienes:
The administrator has disabled public write access. Please, register to participate in the
forum.
nillo´s
User Junior Boarder
Posts: 8
Karma: 1
Re:Programar en Microsoft robotic studio - 2010/05/28 10:08Hola, no se si se ha publicado mi respuesta, pero por si no ha sido asi te comento que ya me sale el robot y tengo hecho una escenita mediante muros(las paredes son cubos alargados). El problema es que no consigo definir las caracteristicas de mi robot, ya que el public class que aparece en este artículo: http://msdn.microsoft.com/es-es/magazine/cc546547.aspx no se donde introducirlo, si es en "entities" o en el mismo proyecto de visual studio 2008 que tengo.A ver si me puedes hechar una mano. Un saludo desde Santander, Juan
The administrator has disabled public write access. Please, register to participate in the
forum.
nillo´s
User Junior Boarder
Posts: 8
Karma: 1
Re:Programar en Microsoft robotic studio - 2010/05/30 11:32Hola de nuevo, te explico mejor el asunto:como te comenté estoy haciendo una entidad nueva llamada robot, en mi proyecto en visual studio tengo dos clases, una llamada robot(donde tengo definido elementos como el cielo, la tierra, unas mesas, conos y el robot) y otra llamada simrobot(que es una public class donde tengo metido los parámetros como altura, radio de las ruedas.... como viene dicho en la página web que te puse en el post anterior). Despues de tener problemas con el XNA, en la llamada a lo que es la forma de la entidad: CreateService(drive.Contract.CreateService(ConstructorPort, Microsoft.Robotics.Simulation.Partners.CreateEntityPartner("http://localhost/" + robotBaseEntity.State.Name)));
me da los siguientes errores: Error 1 El nombre 'drive' no existe en el contexto actual Error 2 El nombre 'mowayBaseEntity' no existe en el contexto actual
La verdad, e seguido los pasos de esa web y me he kedao trabado. A ver si me puedes hechar una mano. Bye
The administrator has disabled public write access. Please, register to participate in the
forum.
Como te decía en el otro post, en entities.cs no puedes modificar nada.
En error relativo a drive, te da porque no tendrás definido ese alias en tu código fuente, que normalmente se refiere al contrato del servicio de dirección del robot. Por ejemplo:
Code:
using drive = Microsoft.Robotics.Services.Drive.Proxy;
(mira los tutoriales de robótica. Creo que esto tiene que venir explicado).
Lo de mowayBaseEntity no sé que es... ¿Un error en el nombre de un objeto??Raúl Arrabales Moreno. conscious-robots.com/raul
The administrator has disabled public write access. Please, register to participate in the
forum.
Ahora yano me da errores en el codigo, pero me salen 2 errores de proxy que la verdad no tengo ni idea del porque. Estoy mirando por internet y debe ser algo del dssnewservice, pero estoy bastante perdido la verdad. Aqui te mando los errores en un archivo, a ver si sabes is tiene que ver con esto y si sabes alguna paqgina donde verlo me dices. He visto esto en el foro: http://www.conscious-robots.com/es/robotics-studio/robotics-studio-howto-como-hacer-/como-crear-un-
contrato-gen.html
The administrator has disabled public write access. Please, register to participate in the
forum.
Raúl
Moderator Moderator
Posts: 591
Karma: 10
Re:Programar en Microsoft robotic studio - 2010/07/13 16:55Hola, los errores de proxy que comentas pueden ser debidos a que RDS no puede generar el proxy para tu servicio porque los tipos de datos que has definido en el estado no son serializables..
El tema es que para cada servicio que escribes, cuando lo compilas se crea un proxy. Este proxy se encarga de serializar el estado de tu servicio para que se pueda transmitir por la red (gracias a esto puedes distribuir los servicios en varios nodos).
También tienes que tener cuidado en este sentido con marcar los miembros públicos del estado del servicio con los atributos [DataMember] y [DataContract]Raúl Arrabales Moreno. conscious-robots.com/raul
The administrator has disabled public write access. Please, register to participate in the
forum.