Estoy intentando poner dos robots en la una misma simulacion con dos comportamientos distintos, uno que ande aleatoriamente y el otro q tenga q ir a un sitio especifico. No se si es una pregunta evidente pero no lo consigo poner. Lo estoy intentando configurando el manifest, pero no hay manera d q distinga los dos robots, igual es q hay q programarlo todo pero no creo no?
Los atributos para crear los partners los he probado poniendo UseExisting( q esto no esta bien...creo) y como UsePartnerListEntry, de esta forma creo q no le da tiempo a la simulacion para cargar antes de q el servicio busque los partner, no estoy muy segura... Bueno si me puedieras aclarar algo... Muchas Gracias...
PD: al final todavia no hemos comprado nigun adaptador Wifi-serie que comentamos ya que ahora mismo no tenemos la posibildad de usar el Pioneer, nose si lo compraremos al final...
El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Lo que planteas es algo que se puede hacer en Robotics Studio, pero la forma de hacerlo no es evidente y la gente suele tener problemas con esto.
En efecto, parte de la configuración que necesitas hay que hacerla en el fichero manifest. No hace falta programarlo todo, lo que necesitas es distinguir las entidades correspondientes a los robots en el simulador (poniéndoles nombres distintos).
A continuación copio un ejemplo de fichero manifest para tener dos robots Pioneer en la misma simulación y controlados de forma independiente:
Como ves, puedes tener múltiples robots, donde cada robot tiene asignado un servicio Differential Drive separado. Puedes ejecutar múltiples copias del mismo servicio (en este caso el differential drive) simplemente añadiendo varios service records (ServiceRecordType).
En el ejemplo hay dos ServiceRecordType, ambos tienen el mismo contrato, el del Differential Drive, pero como partner tienen cada uno una entidad diferente: el primero P3DXMotorBase y el segundo P3DXMotorBase2.
Este manifest hace que se inicien dos instancias del servicio Differential Drive y cada una de ellas está asociada a una entidad diferente. Los nombres de las entidades que pongas en el manifest deben coincidir exactamente con las entidades que hayas definido en tu entorno de simulación para que todo funcione como esperas.
Creo que no trabajabas con VPL, pero por si acaso, quizás te sirva de ayuda este ejemplo de diagrama VPL que hizo Kyle Johns y tiene un controlador que maneja dos robots:
Tienes que compilar el proyecto para que funcione bien, porque hay un bug en el VPL que hace que funcione mal cuando lo interpretas directamente desde VPL..
Sobre lo del adaptador WiFi he leído en los foros de Microsoft que para poder controlar el robot desde un nodo DSS remoto es necesario que también tengas un nodo DSS corriendo en el ordenador del robot, así que si no podéis hacer eso (instalar MSRS en el PC de abordo), creo que la única alternativa que os queda es la del adaptador WiFi-Serie.. Si me entero de alguien que lo haya probado ya os lo cuento...
Gracias por la respuesta. Sigo con esto y no consigo hacerlo. Estoy haciendo algo mal y no se q es... Consigo tener dos entidades, a cada entidad le asigno un servicio differentialDrive, un laserRangeFinder y bumpers. Una vez definidos esos servicios quiero otros dos servicios como por ejemplo el explorer y el de Karto (navegador SLAM)para cada una de las entidades. Y eso no lo consigo hacer, un robot siempre se le asignan los dos servicios..
Por otro lado en cada uno de esos servicios he probado a poner los atributos CreationPolicyPartner de los partner en UsePartnerListEntry (q creo q tiene q ser asi..) y en UseExisting... Bueno te mando los manifest, y xml de configuracion q estoy usando.. a ver si me puedes echar una mano.. nose si estoy muy confundida o se me escapa algo... Muchas Gracias.
El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Puede ser q cuando ejecuta aparentemente bien, los creationPolicy de los partners estan como UseExisting. Pero de esa manera da la sensacion q se asigna el primer servicio q se crea sin mirar el nombre. Pero cuando lo pongo como UsePartnerListEntry da un error en la ejecucion como si no encontrase los sevicios... Como si todavia no se hubiesen creado.. Nose como resolverlo la verdad...
El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Ya lo he conseguido, estaba confundida, al final lo he hecho usando el Manifest Editor ( q para algo esta claro.. ) La cosa era q los servicios Explorer y KArto navigator tenian como partners los servicios genericos no los de simulacion, por eso cuando se creaban estos servicios cada uno se asignaba el primero q se creaba, por q en el manifest no se le asignaba uno en concreto... Bueno eso creo...
El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador Moderador
Mensajes: 444
Karma: 6
Re:dos robots con dos comportamientos distintos - 2008/05/14 16:20Bueno, pues me alegro que por fin te funcione.. Ayer empecé a jugar yo también con el Manifest Editor para crear el fichero manifest correctamente (hasta ahora siempre lo he hecho a mano, pero lo verdad es que como dices para algo está el editor), lo que pasa es que estaba fuera de viaje y me quedé sin batería en el portátil así que poco probé..
Desde luego parece que el problema puede ser lo que comentas... Pero al final no me queda claro qué manifest has usado. ¿Te importa ponerlo aquí? Tengo interés en probar lo que dices con la CTP de Robotics Developer Studio 2008. Creo que tú estás usando la versión 1.5 de Robotics Studio, ¿no?
Estoy usando un manifest q define el Simulation enviroment(en el cual se definen dos robots) y luego a cada uno se le asignan los servicios para los motores y el laser. Y luego queria definir dos servicios distintos, el explorer de MRS y el Karto.Navigator(q hace una navegacion SLAM)uno para cada robot. Lo q no conseguia era q se asignaran correctamente esos dos ultimos servicios a cada robot. bueno te paso el manifest q nose si me explico mu bien.
Y si yo todavia estoy usando el 1.5.. a ver q tal va con el otro.. Nose si tienes los servicios de Karto, se pueden bajar de su pagina ...