logo logo
Inicio arrow Foros...
Thursday, 08 de January de 2009
 
 
English English  Español Español  
Próximos Eventos
10.Jun. 2009

IWANN 2009
Salamanca, Spain
11.Jun. 2009

Toward a Science of Consciousness
Hong Kong, China
14.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
Etiquetas
Análisis Artificial Científicos Conciencia Consciencia Consciencia Artificial Conscientes Consciousness Developer Documentación Documentation Español Howto Investigación Publicaciones Reviews Robotics Robots Robótica Servicios Spanish Studio VPL artificial
Destacados
Conscious-Robots.com Forum  


<< Inicio < Anterior 1 2 Siguiente > Final >>
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Consulta sobre MSRS - 2008/04/23 00:41 Enviado por correo:


Ahora me ha surgido una duda que igual es muy tonta pero que me tiene atascada. Tengo un servicio donde creo un entorno donde se encuentra mi robot (el famoso entornografico), luego tengo otro servicio que se encarga de controlar al robot (prueba). Actualmente este segundo servicio es muy básico porque no consigo que funcione y sólo pido sacar por pantalla el primer elemento de la lectura del laser. A la hora de compilarlos lo hago a través del Command Promt tal como explican en los tutoriales:

dsshost /p:50000 /t:50001
/m:"samplesconfigEntornoGrafico.manifest.xml"
/mamplesPruebaPrueba.manifest.xml"

El caso es que cuando está funcionando, a través del Panel de Control activo un SimpleDashboard para mover el robot. Me conecto a mi ordenador y aparecen "simulateddifferencialdrive" y "simulatedlrf", pero cuando intento mover el robot el Motor siempre está "Off" por mucho que intente conectarme. Como no me veía muy segura de lo que había programado en la parte de control decidí utilizar mi servicio entornografico con los diferentes Tutoriales de Robótica y me han ido apareciendo diferentes problemas.

- por ejemplo con el tutorial 1 (cuando el sensor de contacto se activa tiene que aparecer un mensaje de alarma por pantalla) me aparece el siguiente error:
Partner enumeration during service startup failed.Service will not start: http://schemas.tempuri.org/robotics/tutorials/2006/06/roboticstutorial1.html
Partners specified statically in service implementation class: PartnerAttribute Name:bumper, Contract:http://schemas.microsoft.com/2006/06/contactsensor.html, CreationPolicy:UseExisting Partners specified at runtime, in CreationRequest: Name:http.//schemas.microsoft.com/xw/2004/10/dssp.html:ConstructorService, Contract: http://schemas.microsoft.com/xw/2004/10/constructor.html, Service: dssp.tcp: //abril:50001/constructor/ca2b473a-2ca6-4631-a30e-d44d48c093a1 Name:http.//schemas.microsoft.com/xw/2004/10/dssp.htmlartnerListService, Contract: http://schemas.microsoft.com/xw/2004/10/partnerlist.html, Service:dssp.tcp://abril:50001/roboticstutorial1/dss/partnermanager

- con el tutorial 5 que es el Explorer.manifest.xml. No consigo conectarme al "simulateddifferentialdrive" el motor siempre está en "Off" y tras un rato aparece el siguiente mensaje de error en el Command Promt:
Timeout on Drop operation to service:dssp.tcp://abril:50001/simulatedlrf/741784a4-ebc3-4c69-ad20-f66f9db63167/sicklrf: timeout: http://www.w3.org/2003/05/soap-envelope:Receiver -> http://schemas.microsft.com/xw/2004/10/dssp.html:ResponseTimeout

Creo que me he obcecado tanto que no consigo ver más allá . He estado pensado que si puede haber algún problema por utilizar en el servicio entornografico

using drive = Microsoft.Robotics.Services.Simulation.Drive.Proxy;
using lrf = Microsoft.Robotics.Services.Simulation.Sensors.LaserRangeFinder.Proxy;
using bumper = Microsoft.Robotics.Services.Simulation.Sensors.Bumper.Proxy;

para insertar el robot, mientras que en el servicio prueba utilizo

using drive = Microsoft.Robotics.Services.Drive.Proxy;
using sicklrf = Microsoft.Robotics.Services.Sensors.SickLRF.Proxy;
using bumper = Microsoft.Robotics.Services.ContactSensor.Proxy;

para poder crear los partners.
Realmente no tengo ni idea de que hago mal, así que cualquier idea que me puedas prestar será bienvenida. Muchísimas gracias.

Julia


Post edited by: Raúl, at: 2008/04/24 10:41
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Consulta sobre MSRS - 2008/04/24 10:57 Hola,

Cuando llamas a dsshost en realidad no compilas nada, si no que ejecutas los servicios que ya están compilados previamente (y almacenados en el directorio bin de MSRS como ensamblados dll). La forma que tienes de indicarle al nodo DSS (el ejecutable dsshost) los servicios que tiene que arrancar es mediante el fichero manifest, pero lo que veo en tu mensaje es que usas dos ficheros manifest diferentes. Eso te puede dar problemas. ¿Por qué no construyes un único fichero manifest que especifique todos los servicios que quieres lanzar? En tu caso creo que serían el servicio EntornoGrafico y el servicio Prueba. Entonces tu manifest sería algo como:

Code:

  <?xml version="1.0" ?> <Manifest      xmlns="http://schemas.microsoft.com/xw/2004/10/manifest.html"     xmlns:dssp="http://schemas.microsoft.com/xw/2004/10/dssp.html" > <CreateServiceList>   <ServiceRecordType>        <dssp:Contract>http://www.julia.com/2008/04/EntornoGrafico.html</dssp:Contract>   </ServiceRecordType>   <ServiceRecordType> <dssp:Contract>http://www.julia.com/2008/04/Prueba.html</dssp:Contract>   </ServiceRecordType>        </Manifest>



Los identificadores de contrato que pongas en el manifest tienen que coincidir con los que tienes en tu código.

También, si quieres usar el Dashboard de MSRS, puedes incluirlo en tu manifest para que se arranque junto con tus servicios:

Code:

   <ServiceRecordType>         <dssp:Contract>http://schemas.microsoft.com/robotics/2006/01/simpledashboard.html</dssp:Contract>    </ServiceRecordType>



Los errores que pones en tu mensaje suelen deberse a que MSRS no encuentra los servicios que tiene que arrancar en base a lo que le has puesto en el manifest.. Así que puedes repasar tu fichero manifest pot si hay algo mal. Además, puedes probar a arrancar tu misma los servicios desde el interfaz Web de MSRS (igual que haces con el Dashboard). Puedes arrancar el nodo DSS haciendo Inicio -> Programas -> MSRS 1.5 -> Run DSS node y luego buscar tus servicios y arrancarlos desde la GUI WEB. Ten en cuenta que desde que compilas un servicio este aparece disponible en el nodo DSS local (basta con que estén las dlls correspondientes a tu servicio en el directorio bin).
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Consulta sobre MSRS - 2008/04/24 11:05 Se me ha pasado contestarte a lo de los partners..

Por lo que dices, eso puede ser un problema también. Las referencias que haces a los proxies creo que están bien. Sin embargo en el servicio de simulación (EntornoGrafico) no tienes que definir partners para driver, lrf, bumper, etc. Sólo tienes que crear los servicios, como por ejemplo:

Code:

  drive.Contract.CreateService(ConstructorPort,      Microsoft.Robotics.Simulation.Partners.CreateEntityPartner(                     "http://localhost/" robotBaseEntity.State.Name) );



Pero no necesitas declarar un partner usando [partner].. En tu otro servicio sí que tienes que hacerlo para llamar a las operaciones de estos servicios...

No sé si me he explicado.. ¿Creabas partners a drive, lrf y bumper en tu servicio EntornoGrafico??

Saludos,
Raúl.

Post edited by: Raúl, at: 2008/04/24 11:06
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Julia
Usuarios

Senior Boarder
Mensajes: 17
graphgraph
Karma: 3  
Re:Consulta sobre MSRS - 2008/04/24 19:27 Hola!!

He probado arrancando los servicios desde el panel de control y pasa una cosa muy rara. Independientemente de cual sea el primero, al arrancar el segundo se duplican todos los elementos del entorno (paredes y objetos) y entonces sucede igual que cuando pones dos objetos pisandose en una simulación, que uno de ellos comienza a vibrar y termina volcando. Intentaré probar con un único manifest como indicas en tu mensaje a ver si no pasan estas cosas raras, pero es independiente que yo defina el nuevo manifest en uno u otro servicio o hay que definirlo en los dos?
Respecto a lo de los partners, yo sólo los defino en el servicio prueba. En el servicio EntornoGrafico hago las declaraciones
using drive = Microsoft.Robotics.Services.Simulation.Drive.Proxy;
using lrf = Microsoft.Robotics.Services.Simulation.Sensors.LaserRangeFinder.Proxy;
using bumper = Microsoft.Robotics.Services.Simulation.Sensors.Bumper.Proxy;
sólo para insertar el robot en la simulación.

Ya que estoy un poquito perdida en la programación en C# me podrías recomendar alguna bibliografía para ponerme al día teniendo en cuenta que tengo un nivel medio tirando a bajo...

Muchisímas gracias por tanta paciencia.

Julia
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Consulta sobre MSRS - 2008/04/25 17:19 pero es independiente que yo defina el nuevo manifest en uno u otro servicio o hay que definirlo en los dos?

Pues si llamas a DssHost y le pasas como parámetro un único archivo manifest, es ese manifest en el que tienes que poner todos los servicios que quieres que arranquen.

Por cierto, para crear un manifest puedes usar el manifest editor (Inicio -> Programas -> Microsoft Robotics Studio 1.5 -> Microsoft Dss Manifest Editor). A lo mejor te resulta útil. Yo confieso que nunca lo he usado...

También cuando arrancas los servicios desde la GUI puedes seleccionar que manifest usar para lanzar ese servicio (o no elegir ninguno).

Lo que comentas de que se ejecutan los servicios dos veces no sé de que puede ser.. Por lo que dices, parece que se ejecuta dos veces el servicio EntornoGrafico.. Pero no tengo idea por qué será.. ¿Lo declaras como partner en tu servicio prueba? Si es así, a lo mejor lo lanza automáticamente si usas el parámetro:

CreationPolicy = PartnerCreationPolicy.UseExistingOrCreate

en la directiva [Partner]...

Con respecto a lo de C#, quizás te venga bien echar un vistazo a estos cursos:

Cursos Online de .NET y C Almohadilla

También te pueden servir los siguientes enlaces:

Introducción a los Iteradores en C#

Nuevas características de C# 2.0

¡Suerte!
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Julia
Usuarios

Senior Boarder
Mensajes: 17
graphgraph
Karma: 3  
Re:Consulta sobre MSRS - 2008/04/26 20:52 Hola otra vez!

He estado trabajando con lo de crear un único manifest, pero sigue dándome problemas. El fallo que me sale es muy parecido a los que ya te comente en el primer mensaje, te lo escribo a continuación a ver que te parece:

Code:

 Partner enumeration during service startup failedService will not start:http://schemas.tempuri.org/2008/04/prueba.html Partner specified statically in service implementation class: PartnerAttribute Name:Bumper,Contract:http://schemas.microsoft.com/2006/06/contractsensor.html,CreationPolicy:UseExisting PartnerAttribute Name:DriveContract:http://schemas.microsoft.com/robotics/2006/05/drive.html,CreationPolicy:UseExisting Partners specified at runtimein CreateRequest: Namehttp://schemas.microsoft.com/xw/2004/10/dssp.html:ConstructorService,  Contracthttp://chemas.microsoft.com/xw/2004/10/constructor.html, Servicedssp.tcp://abril:50001/constructor/2e4c769-c9eb-4a11-b56b-cbfe6c9e2b16 Namehttp://schemas.microsoft.com/xw/2004/10/dssp.html:PartnertListService, Contracthttp://schemas.microsoft.com/xw/2004/10/partnerlist.html, Servicedssp.tcp://abril:50001/prueba/dss/partnermanager Namehttp://schemas.tempuri.org/2008/04/prueba.html:Drive, Contracthttp://schemas.microsoft.com/robotics/2006/05/drive.html, Servicedssp.tcp://abril:50001/simulateddifferentialdrive/02a62d5d-3fbd-4120-8d3a-96a546ff805f/drive



Este error sale mientras que se está cargando el manifest de entornografico. Una vez que ya ha aparecido en el Command Prompt el mensaje de que el manifest prueba se ha cargado completamente. Tengo que hacer algún tipo de inicialización de los Partners drive y bumper??

Un saludo

PD:Gracias por los links

Post edited by: Raúl, at: 2008/04/28 12:47
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Julia
Usuarios

Senior Boarder
Mensajes: 17
graphgraph
Karma: 3  
Re:Consulta sobre MSRS - 2008/04/26 20:56
no se que ha pasado pero no se entiende nada del mensaje de error, lo voy a adjuntar como txt para que puedas hecharle un vistazo
File Attachment:
File name: Error.txt
File size:1153 bytes


Mensaje editado por: Julia, el: 2008/04/26 20:58
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Consulta sobre MSRS - 2008/04/28 13:12 No sé por qué te estará dando ese error

Puedes echar un vistazo a la salida de consola de MSRS por si te sale algún error previo que indique cual es el problema. A veces, en la ventana de comando que lanzas el nodo DSS sólo sale el mensaje de error que has mandado, pero en el Console -> Output, sale más información que te puede resultar útil. (sólo tienes que abrir un navegador cuando has lanzado tu servicio e ir a la interfaz Web de MSRS y seleccionar Console -> Output).

En principio no tienes que hacer ninguna inicialización con los partners, de hecho no tienes que declarar partners en el servicio EntornoGrafico, lo que haces es crear los servicios asociados a las entidades de simulación:

Code:

 drive.Contract.CreateService(ConstructorPort,  Microsoft.Robotics.Simulation.Partners.CreateEntityPartner(  "http://localhost/" robotBaseEntity.State.Name) );



El único partner que declaro yo es el motor de simulación:

Code:

 // 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();



Si has declarado partners también para drive y bumper eso puede provocar el error, pero de todas formas mira a ver que te sale en el console output..
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Julia
Usuarios

Senior Boarder
Mensajes: 17
graphgraph
Karma: 3  
Re:Consulta sobre MSRS - 2008/04/28 18:37 Hola

lo he vuelto a probar para ver que me sale en "Console Output Service" y el único error que aparece es el siguiente:

System.TypeLoadException: No se puede cargar el tipo 'Microsoft.Robotics.Servivces.ContactSensor.' del ensamblado 'RoboticsCommon, version = 1.5.507.0, Culture=neutral, PublicKeyToken= ...' en System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) en System.Reflection.Assembly.GetType(string name, Boolean throwOnError) en Microsoft.Dss.Service.Constructor.ConstructService.Process()


Lo he vuelto a repasar otra vez los dos servicios y las definiciones están bien hechas, exactamente como me indicas en el último mensaje. Espero que este error te diga algo para encontrar el fallo porque lo que es a mí...no tengo ni idea de que hacer para solucionarlo

Muchas gracias
Un saludo
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Consulta sobre MSRS - 2008/04/29 11:51 La verdad es que no entiendo por qué te da ese error... Debe ser alguna tontería que se nos está pasando.. Lo único que veo raro es que sobra una v en el mensaje de error que has mandado:

Microsoft.Robotics.Servivces.ContactSensor

Pone servivces en vez de services

Si has declarado así el bumper en tu código no puede encontrar la clase porque el espacio de nombres no coincide con lo que hay en RoboticsCommon. Otra cosa que puedes mirar es que la referencia a RoboticsCommon esté bien metida en tu proyecto de Visual Studio.. De momento no se me ocurre nada más, pero si pienso en otra cosa te lo digo por si acaso.. Siento no ser de mucha ayuda..

Mensaje editado por: Raúl, el: 2008/04/29 11:56
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
<< Inicio < Anterior 1 2 Siguiente > Final >>
Titulares RSS
 Conscious Robots RSS FeedFuente RSS de Conscious Robots





¿Recuperar contraseña?
¿Quieres registrarte? Hazlo aquí
Mensajes en el Foro
 
Top! Top!