Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

336
Visualizações
Articulación configurable, la rotación no actúa como se esperaba

Tomé el ejemplo del proyecto Crawler y lo modifiqué para un proyecto personal. Y tengo un gran problema al hacer que funcionen las articulaciones de la parte inferior de las piernas (no se pensó en las piernas superiores).

ingrese la descripción de la imagen aquí

Tuve que aplicar una transformación local como esta, para que todos los objetos estén en la misma dirección. Luego edité el eje en la articulación configurable, solo el eje Z está limitado, los demás están bloqueados. Luego apliqué una rotación de ángulo límite de 90.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

La cuestión es que, en cualquier restricción que use para el eje, cuando aplico un ángulo, sigo teniendo el mismo límite de ángulo. Uso un modelo para predecir entre -1 y 1 una salida para el ángulo, que se asigna en una función para dar 0 o 180 grados.

 public void SetJointTargetRotation(float x, float y, float z) { x = (x + 1f) * 0.5f; y = (y + 1f) * 0.5f; z = (z + 1f) * 0.5f; var xRot = Mathf.Lerp(joint.lowAngularXLimit.limit, joint.highAngularXLimit.limit, x); var yRot = Mathf.Lerp(-joint.angularYLimit.limit, joint.angularYLimit.limit, y); var zRot = Mathf.Lerp(-joint.angularZLimit.limit, joint.angularZLimit.limit, z); currentXNormalizedRot = Mathf.InverseLerp(joint.lowAngularXLimit.limit, joint.highAngularXLimit.limit, xRot); currentYNormalizedRot = Mathf.InverseLerp(-joint.angularYLimit.limit, joint.angularYLimit.limit, yRot); currentZNormalizedRot = Mathf.InverseLerp(-joint.angularZLimit.limit, joint.angularZLimit.limit, zRot); joint.targetRotation = Quaternion.Euler(xRot, yRot, zRot); currentEularJointRotation = new Vector3(xRot, yRot, zRot); }

Pero para las pruebas, todavía no estoy usando la red neuronal, codifico entradas como esta:

 bpDict[leg3Lower].SetJointTargetRotation(0, 0, 1f);

Pero esto es lo que obtengo:

ingrese la descripción de la imagen aquí

En rojo, el movimiento de la pierna (de abajo a la derecha). En azul, la posición original de la pierna. En negro, el "eje" y el límite que se suponía que debía hacer.\

E incluso si juego con el eje, siempre irá a la misma posición cuando aplico 1f (dentro del robot, se supone que está abajo) -1 (plano, se supone que está en el cielo).

¿Me estoy perdiendo de algo?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Me enteré que tenía que modificar el Secondary axis en la junta Configurable. No me gusta esto muy instintivo, pero sí logré hacerlo funcionar dejando el axis en 0,0,-1 y 0,-1,0 en el secondary axis .

No entendí la lógica, pero si llega a esta publicación, intente agregar 1 o -1 en ambos.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda