Nirtec Studio Forum

General Category => Machines Simulator => Topic started by: SergioF on November 07, 2023, 01:10:10 PM

Title: Brazo Robot + Garra
Post by: SergioF on November 07, 2023, 01:10:10 PM
Buenas!!

He creado un UDC que es un robot (con cinemática inversa) y sobre él he puesto un punto builder en el extremo del robot para seleccionar entre diferentes garras (también son UDCs).
El problema viene en que al ser dos UDCs distintos, si intentamos mover el robot la garra no la seguirá.
Hemos intentado emparentarlos entre sí metiendo uno dentro de otro en la escena, pero no se puede hacer esta acción entre UDCs. 

¿Existe alguna forma de solucionar este problema?

Un saludo.
Sergio
 
Title: Re: Brazo Robot + Garra
Post by: EasyPLC_Master on November 07, 2023, 08:39:22 PM
Hola Sergio,

Los UDC son entidades independientes dentro de la simulación, la comunicación con otros componentes se realiza a través de los valores de las I/Os analógicas y digitales. Y se utilizan los parámetros como valores numéricos para configurar sus propiedades.

En la próxima versión se permitirá acceder a los componentes de un UDC de tal manera que se pueda realizar la operación que solicitas. Estará disponible en breve.
Title: Re: Brazo Robot + Garra
Post by: SergioF on November 08, 2023, 10:16:28 AM
Perfecto!! Muchas graciias  ;)

Aprovechando el hilo, me he dado cuenta que al poner un UDC con cinemática inversa en la escena (un robot), crearle unas rutas y guardar el proyecto. Al volver a abrirlo, las rutas desaparecen y hay que volver a hacerlas.

Si las configuras de antemano en el UDC Editor si las mantiene cuando lo sacas a escena. Pero si no las has programado y lo haces en la escena directamente, no se guarda dicha información.

¿Esto esta asi planteado por alguna razón?
Title: Re: Brazo Robot + Garra
Post by: EasyPLC_Master on November 09, 2023, 03:16:29 PM
No acabo de comprender el problema.
¿Te refieres a utilizar un componente de tipo Inverse Kinematics en un UDC para moverlo a las posiciones de las rutas preconfiguradas de este componente?
Si es así, he verificado y si que guarda bien las rutas programadas.
No te entiendo a que te refieres con:
Si las configuras de antemano en el UDC Editor si las mantiene cuando lo sacas a escena. Pero si no las has programado y lo haces en la escena directamente, no se guarda dicha información

En un UDC con un componente IK solo se pueden programar las rutas en el editor del UDC, no se puede hacer directamente en la escena.

¿Puedes explicarlo o enviarme un ejemplo?

Gracias  ;) 
Title: Re: Brazo Robot + Garra
Post by: SergioF on November 10, 2023, 10:13:02 AM
Vale.

Lo que estaba haciendo en el UDC es mediante script programar un parameter que cuando es true active ConfigRoutes() y asi poder realizar las rutas del robot directamente en escena, adaptándonos a cada situación, ya que desde el UDC no se como luego van a ir los otros componentes con lo que deberá interactuar.

Gracias
Title: Re: Brazo Robot + Garra
Post by: EasyPLC_Master on November 10, 2023, 07:48:51 PM
No es esa la manera. Debes de utilizar la propiedad Target del IK para moverlo a la posición que te interese en el UDC que tendrás en la escena.
Como ejemplo puedes ver como está hecho el UDC Delta Robot que utiliza este método.
Title: Re: Brazo Robot + Garra
Post by: EasyPLC_Master on November 11, 2023, 08:37:13 PM
Ya está disponible la v.3.21.1 donde se puede acceder a cada uno de los componentes del UDC.
De esta manera usando la función Link() o UnLink() puedes establecer o deshacer relaciones padres-hijos entre los componentes pertinentes.
Echa un vistazo al programa del ejemplo, donde en el código script verás como funciona:

public void Init()
{
ComponentBase gripRob = AR.UDCComponent("Grips");
Grip.Link(gripRob.Space);
}

public void Main()
{

}

public void Physics()
{

}

public void Finish()
{
 Grip.UnLink();
}
Title: Re: Brazo Robot + Garra
Post by: andrer1990 on November 15, 2023, 06:37:32 PM
Hola buenas
Que es el .Space ? dentro ComponentBase hay otros valores a parte de Space? queria entender un poco el codigo ya que no lo encuentro dentro de las ayudas del programa.
Title: Re: Brazo Robot + Garra
Post by: EasyPLC_Master on November 15, 2023, 10:50:35 PM
Está explicado en el Manual del software, también tienes la ayuda en la ventana del Script Editor.
El objeto .Space de todos los componentes contiene los valores de las transformadas en el espacio (posición + orientación + escala).