De momento en comentado y listo, porque he tenido un pequeño problema con la otra partición donde he instalado la CTP 2008, pero espero solucionarlo y probarlo, a ver que pasa.
The administrator has disabled public write access. Please, register to participate in the
forum.
Siguo con mi codigo para la simulación de mi brazo robótico. Y siguo con mis problemillas. El otro día se me ocurrió investigar sobre los dibujos de la simulación (los .obj) porque quería crear los mios propios (para evitar problemas los copíe en otra carpeta y trabajé sobre estos últimos) peor hoy he intentado arracar la simulación del KUKA y me da problemas. Me arranca el dashboard pero al iniciar la ventana del simulador desaparece sin poder ver nada. El error es debido a un argumento fuera de rango; aquí te va el error.
Code:
Error: System.ArgumentOutOfRangeException: Resource size must be greater than zero.
Nombre del parámetro: sizeInBytes
en Microsoft.Xna.Framework.Graphics.VertexBuffer..ctor(GraphicsDevice graphicsDevice, Int32 sizeInBytes, ResourceUsage usage, ResourceManagementMode resourceManagementMode)
en Microsoft.Robotics.Simulation.MeshLoader.RenderableShape.RefreshDeviceMesh(GraphicsDevice device)
en Microsoft.Robotics.Simulation.Engine.VisualEntityMesh.OnResetDevice(Object sender, EventArgs e)
en System.EventHandler.Invoke(Object sender, EventArgs e)
en Microsoft.Xna.Framework.Graphics.GraphicsDevice.Reset(PresentationParameters presentationParameters)
en Microsoft.Robotics.Simulation.Engine.SimulationEngine.FindTheDevice()
en Microsoft.Robotics.Simulation.Engine.SimulationEngine.Draw(GraphicsDevice device, Double appTime, Double elapsedTime)
en Microsoft.Robotics.Simulation.Engine.SimulationEngine.Application_Idle(Object sender, EventArgs e)
en System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
en System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
en System.Windows.Forms.Application.Run(Form mainForm)
en Microsoft.Robotics.Simulation.Engine.SimulationEngine.StartRenderLoop()
Source: http://casa:50000/simulationengine
Code site: Void StartRenderLoop()() at line:0, file
El caso es que también investigé en el codigo del servicio y ahora me aparece en el icono de las dll´s un cículo rojo que no se que es lo que significa.
La ignorancia.
The administrator has disabled public write access. Please, register to participate in the
forum.
Raúl
Moderator Moderator
Posts: 443
Karma: 6
Re:crear nueva simulacion - 2008/05/30 14:35Pues yo no he visto nunca ese error, pero por lo que dices tiene pinta de lo siguiente:
El proyecto de Visual Studio que estás usando tiene definido como recurso un objeto (un archivo .obj por ejemplo) y no lo puede cargar correctamente. ¿Seguro que no has modificado ni movido el obj original del Kuka? Parece que el servicio no puede encontrar el archivo cuando se ejecuta y por eso da el error..
Ahora mismo no recuerdo muy bien cómo se cargaban los Obj para mostrarlos y asociarlos a una entidad de simulación, pero es algo que tengo que mirar con un compañero de trabajo en los próximos días, así que probablemente te pueda decir algo más útil.. A ver si la semana que viene puedo echarlo un vistazo..Raúl Arrabales Moreno. conscious-robots.com/raul
The administrator has disabled public write access. Please, register to participate in the
forum.
laso_d
User Expert Boarder
Posts: 37
Karma: 4
Re:crear nueva simulacion - 2008/05/30 21:35Es la causa más probable del error, puede ser que reescribiera algún archivo sin darme cuenta.
Respecto a los .OBJ yo también estoy mirando cosas (como verás no solo poco fructíferas sino que encima erroneas ). No es algo primordial para el proyecto pero sería interesante poder colocar nuestro propio dibujo (el del KUKA es simple y resultón pero es un poco churro).
El caso es que en la páguina de ABB se puede uno descargar el modelo en 3D del robot(en formato AUTOCAD, IGES, etc..) y se me ocurrió la idea de poderlo hacer. Me bajé los ficheros en AUTOCAD (por familiaridad con el soft) y como no se puede exportar a .OBJ un conversor que convierte a más de 500 archivos. Por si alguien es como yo y trabaja en AUTOCAD el conversor se llama 3D Object Converter (abajo teneis el link) y para pasar a .OBJ hay que elegir la opcion "Blender's Videospace 3D Dialect" del menú "File-BatchConverter-Export Format" y a funcionar. El problema es que el soft no es gratuito .
Ya tengo preparado mi projecto de Visual para mi simulación pero tengo un problema. Te explico; tengo por un lado un projecto con la entidad del brazo y por otro la simulación (al estilo de SimulationTutorial4 y el SimulatedLBR3). El caso es que he creado mi propia entidad para mi brazo robótico llamada "Irb2000Entity" y a la hora de utilizarla en mi simulación
Code:
Irb2000Entity entity = new Irb2000Entity(position);
// Name the entity
entity.State.Name = "Irb2000";
// Insert entity in simulation.
SimulationEngine.GlobalInstancePort.Insert(entity);
me aparecen tres errores señalando la primera y ultima línea del codigo que te he dejado
Code:
Error 1 No overload for method 'Irb2000Entity' takes '1' arguments C:Microsoft Robotics Studio (1.5)samplesAbbSimulatedAbbSimulatedAbbSimulatedAbb.cs 126 36 SimulatedAbb
Error 2 The best overloaded method match for 'Microsoft.Robotics.Simulation.Engine.SimulationEnginePort.Insert(Microsoft.Robotics.Simulation.Engi
ne.VisualEntity)' has some invalid arguments C:Microsoft Robotics Studio (1.5)samplesAbbSimulatedAbbSimulatedAbbSimulatedAbb.cs 132 13 SimulatedAbb
Error 3 Argument '1': cannot convert from 'Robotics.AbbSimulation.Proxy.Irb2000Entity' to 'Microsoft.Robotics.Simulation.Engine.VisualEntity' C:Microsoft Robotics Studio (1.5)samplesAbbSimulatedAbbSimulatedAbbSimulatedAbb.cs 132 56 SimulatedAbb
He revisado el código y solo se me ocurre pensar que es debido a aquel error que venía de un bug de microsoft y que arreglé comentando las lineas (pienso esto porque esta parte del codigo hace referencia al vector3 y el tipo vector3 es el argumento del método (position es de tipo vector3) no porque tenga muy claro que es por esto)
Este es el principio de la parte comentada (no te copio todo porque es bastante)
Code:
//if (SimulationEngine.GlobalInstance.SimulatorMode == SimulationEngine.SimModeType.Edit)
//{
// // WorldSpace position of arm entity
// xna.Vector3 armPositionWS = Position;
// if (Parent != null)
// {
// armPositionWS = xna.Vector3.Transform(armPositionWS, Parent.LocalToWorld);
// }
Gracias de antemano.
The administrator has disabled public write access. Please, register to participate in the
forum.
¿Tienes definido un constructor en tu entidad que toma el tipo del que sea la variable "posición"?
Por ejemplo, yo para mi sonar simulado tengo esto:
Code:
/// <summary>
/// Initialization constructor
/// </summary>
/// <param name="localPose"></param>
public SonarEntity(Pose localPose)
{
// create a new instance of the sonar pose so we dont re-use the raycast reference
// That reference will be updated regularly
BoxShapeProperties box = new BoxShapeProperties("Sonar", 0.5f,
localPose,
new Vector3(0.1f, 0.1f, 0.1f));
_sonarBox = new BoxShape(box);
State.Assets.Effect = "LaserRangeFinder.fx";
}
Veo que el brazo Kuka simulado que viene con MSRS toma un Vector3:
Pues creo que por primera vez tengo buenas noticias. Por fin he conseguido que mi simulación funcione, ya conseguí arreglar el problema de mi servicio. Para empezar, te diré que borré todos los archivos y empezé de cero.
El problema del constructor es que no tenía las referencias correctas a mis archivos donde tengo creada mi entidad de brazo robótico.
Code:
using Robotics.SimulatedIrb2000;
using Robotics.SimulatedIrb2000.Proxy;
luego MSRS no sabía cual de las clases de los dos using utilizar, que lo he arreglado así
Code:
Robotics.SimulatedIrb2000.Irb2000Entity entity = new Robotics.SimulatedIrb2000.Irb2000Entity(position);
Y fenómeno, ya puedo ver mi simulación. Ahora mi siguiente paso será eliminar el grado de libertad que me sobra pero creo que ya sé por donde van los tiros.
Tengo un "if" por ahí que modificaré porque creo que es el que bloquea, limita o libera los grados:
Code:
if (_joints.Count < i + 1)
{
JointAngularProperties commonAngular = new JointAngularProperties();
commonAngular.TwistMode = JointDOFMode.Free;
//commonAngular.TwistDrive = new JointDriveProperties(
// JointDriveMode.Position,
// new SpringProperties(500000, 100000, 0),
// 1000000);
commonAngular.TwistDrive = new JointDriveProperties(
JointDriveMode.Position,
new SpringProperties(100000, 1f, 0),
0);
jointInstance = PhysicsJoint.Create(new JointProperties(commonAngular, null, null));
// joints must be names
jointInstance.State.Name = "Joint" + i.ToString();
Joints.Add(jointInstance);
}
Muchas gracias por todo, una muy muy gran ayuda. Vemos algo de luz. Saludos.
The administrator has disabled public write access. Please, register to participate in the
forum.
Raúl
Moderator Moderator
Posts: 443
Karma: 6
Re:crear nueva simulacion - 2008/06/26 18:01¡Me alegro mucho que al final vaya saliendo!! Poco os he ayudado yo... La verdad es que ya no os queda mucho más por hacer para tener una simulación decente del ABB... Ya me contaréis como os va. ¡Ánimo y suerte!Raúl Arrabales Moreno. conscious-robots.com/raul
The administrator has disabled public write access. Please, register to participate in the
forum.
salva
User Junior Boarder
Posts: 6
Karma: 1
Re:crear nueva simulacion - 2008/09/05 00:04Hola creo que he creado un nuevo tema en el foro, lo siento me equivoque.... Esto deberia ir aqui.. Copio y pego el mensage
Hola, no se si es tematica de este foro o que, pero llevo dias buscando documentacion, ejemplos (en castellano) que me ayuden a entender la programacion mediante Microsoft robotics (Como crear manifiestos, como crearme mi entorno, mis servicios...) Si alguien a trabajado con ABB 140 ó el Fanuc LR MATE 200i B y microsoft robotics studio y me puede aportar algun ejemplo o alguna url se lo estare muy agradecido. De antemano gracias... Me gusta mucho el trabajo que haceis aqui animo y a seguir...
Disculpad las molestias
The administrator has disabled public write access. Please, register to participate in the
forum.
salva
User Junior Boarder
Posts: 6
Karma: 1
Re:crear nueva simulacion - 2008/09/05 00:04Hola creo que he creado un nuevo tema en el foro, lo siento me equivoque.... Esto deberia ir aqui.. Copio y pego el mensage
Hola, no se si es tematica de este foro o que, pero llevo dias buscando documentacion, ejemplos (en castellano) que me ayuden a entender la programacion mediante Microsoft robotics (Como crear manifiestos, como crearme mi entorno, mis servicios...) Si alguien a trabajado con ABB 140 ó el Fanuc LR MATE 200i B y microsoft robotics studio y me puede aportar algun ejemplo o alguna url se lo estare muy agradecido. De antemano gracias... Me gusta mucho el trabajo que haceis aqui animo y a seguir...
Disculpad las molestias
The administrator has disabled public write access. Please, register to participate in the
forum.