Scorbot simulator
Métodos públicos | Métodos privados | Atributos privados | Lista de todos los miembros
Referencia de la Clase IK
Diagrama de herencias de IK

Métodos públicos

void UpdateCopyEffector ()
 
void CCDAlg (Transform D)
 
void CCDAlg (Transform[] trajectory, bool speedDegrees=true)
 
void Move (Transform target)
 
bool TargetInRange (Transform D, bool skipPitch=false)
 
void Home (float duration=1f)
 
void SetD (Transform D)
 
void SetSpeed (int speed)
 
void SetSpeedL (int speed)
 
int GetSpeed ()
 
int GetSpeedL ()
 
List< Vector3 > GetAnglesFromCopy ()
 
List< Vector3 > GetAngles ()
 
Articulation [] GetArticulations ()
 
Transform GetD ()
 
Transform GetE ()
 
Vector3 GetPosFromCounts (List< int > counts)
 

Métodos privados

void Start ()
 
void OnDrawGizmos ()
 
IEnumerator CCDAlgMulti (Articulation[] articulations, Transform[] trayectory, Transform E, bool speedDegrees=false)
 
IEnumerator IKAlg (Articulation[] articulations, Transform D, Transform E, bool speedDegrees=true)
 
IEnumerator MoveCoroutive (Coroutine[] moves)
 
void AlgCDD (Articulation[] articulations, Transform D, Transform E, bool skipPitch=false)
 
float CalculateTimeSpeed (Articulation[] startArt, List< Vector3 > endAngles)
 
float CalculateTimeSpeedL (Vector3 startPoint, Vector3 endPoint, float speedMillimeter)
 
void CCD (Articulation[] articulations, Transform D, Transform E, Articulation R)
 
float CalculateAngle (Vector3 end, Vector3 start, string plane)
 
Vector3 GetLocalPosition (Transform obj, Transform origin)
 
void SetAnglesCopyZero ()
 
void SetAnglesCopyHome ()
 

Atributos privados

ScorbotModel scorbotModel
 
Transform D
 
Transform E
 
Articulation [] articulations
 
Articulation [] art
 
Transform artE
 
int MAX_ITINERATIONS = 1500
 
const float EPSILON = 0.01f
 
bool isProcessing = false
 
int speedMillimeter = 50
 

Descripción detallada

Algoritmo CCD que calcula los ángulo de las articulaciones del Scorbot para llegar a una posición especificada. Según el caso, hace uso de copias de las articulaciones o no.

Autor
Oscar Catari Gutiérrez - E-mail: oscar.nosp@m.cata.nosp@m.ri@ou.nosp@m.tloo.nosp@m.k.es - Universidad de La Laguna
Versión
1.0
Desde
02-05-2019

Documentación de las funciones miembro

◆ AlgCDD()

void IK.AlgCDD ( Articulation []  articulations,
Transform  D,
Transform  E,
bool  skipPitch = false 
)
inlineprivate

Ejecuta el algoritmo CCD para hallar los ángulos que las articulaciones necesitan para llegar a la posición objetivo. No se aplica a la articulación "Roll" ya que no tiene efecto en la posición del efector final.

Parámetros
articulationsArticulaciones
DPosición objetivo
EEfector final
skipPitchMantener el valor de del pitch
Devuelve
void

◆ CalculateAngle()

float IK.CalculateAngle ( Vector3  end,
Vector3  start,
string  plane 
)
inlineprivate

Obtiene el ángulo (Radianes) que forman dos vectores.

Parámetros
endVector fin
startVector inicio
planePlano
Devuelve
Ángulo (Radianes)

◆ CalculateTimeSpeed()

float IK.CalculateTimeSpeed ( Articulation []  startArt,
List< Vector3 >  endAngles 
)
inlineprivate

Calcula el tiempo que las articulaciones tardan en rotar para llegar a una configuraciçon de ángulos final.

Parámetros
startArtArticulaciones
endAnglesÁngulos finales
Devuelve
float Tiempo (seg)

◆ CalculateTimeSpeedL()

float IK.CalculateTimeSpeedL ( Vector3  startPoint,
Vector3  endPoint,
float  speedMillimeter 
)
inlineprivate

Calcula el tiempo que se tarda en llegar de un punto a otro a una velocidad constante. Comando "Speedl"

Parámetros
startPointPosición inicial
endPointPosición final
speedMillimeterVelocidad lineal (mm/seg)
Devuelve
float Tiempo (seg)

◆ CCD()

void IK.CCD ( Articulation []  articulations,
Transform  D,
Transform  E,
Articulation  R 
)
inlineprivate

Aplica el algoritmo CCD para una articulación y la rota.

Parámetros
articulationsArticulaciones
DPosición objetivo
EEfector final
RArticulación actual
Devuelve
void

◆ CCDAlg() [1/2]

void IK.CCDAlg ( Transform  D)
inline

Ejecuta el algoritmo CCD para mover el Scorbot hacia la posición objetivo. Se usa la velocidad normal "Speed".

Parámetros
DPosición final
Devuelve
void

◆ CCDAlg() [2/2]

void IK.CCDAlg ( Transform []  trajectory,
bool  speedDegrees = true 
)
inline

Inicia el algoritmo CCD para mover las articulaciones siguiento la trajectoria especificada a la velocidad normal o lineal. Se usa para los comando "Movel" o "Movec".

Parámetros
trayectoryTrajectoria
speedDegreesVelocidad normal. En otro caso se usa la velocidad lineal
Devuelve
void

◆ CCDAlgMulti()

IEnumerator IK.CCDAlgMulti ( Articulation []  articulations,
Transform []  trayectory,
Transform  E,
bool  speedDegrees = false 
)
inlineprivate

Ejecuta el algoritmo CCD para mover las articulaciones siguiento la trajectoria especificada a la velocidad normal o lineal.

Parámetros
articulationsArticulaciones
trayectoryTrajectoria
EEfector final
speedDegreesVelocidad normal. En otro caso se usa la velocidad lineal
Devuelve
Proceso en segundo plano

◆ GetAngles()

List<Vector3> IK.GetAngles ( )
inline

Obtiene los ángulos de las articulaciones.

Devuelve
List<Vector3> Ángulos

◆ GetAnglesFromCopy()

List<Vector3> IK.GetAnglesFromCopy ( )
inline

Obtiene los ángulos de las copias de las articulaciones.

Devuelve
List<Vector3>

◆ GetArticulations()

Articulation [] IK.GetArticulations ( )
inline

Obtiene las articulaciones del Scorbot.

Devuelve
Articulation[] Articulaciones

◆ GetD()

Transform IK.GetD ( )
inline

Obtiene la posición a la que se quiere llegar.

Devuelve
Transform Posición objetivo

◆ GetE()

Transform IK.GetE ( )
inline

Obtiene el efector final.

Devuelve
Transform Efector final

◆ GetLocalPosition()

Vector3 IK.GetLocalPosition ( Transform  obj,
Transform  origin 
)
inlineprivate

Obtiene la posición de un objeto si se toma como origen de coordenas otro origen.

Parámetros
objObjeto
originOrigen de coordenadas
Devuelve
Vector3 Coordenas

◆ GetPosFromCounts()

Vector3 IK.GetPosFromCounts ( List< int >  counts)
inline

Obtiene la posición del efector final a partir de los conteos de encoder.

Parámetros
countsConteos de encoder
Devuelve
Vector3 Coordenadas

◆ GetSpeed()

int IK.GetSpeed ( )
inline

Obtiene la velocidad (porcentaje) de las articulaciones actual.

Devuelve
int Velocidad (porcentaje)

◆ GetSpeedL()

int IK.GetSpeedL ( )
inline

Obtiene la velocidad lineal actual.

Devuelve
int Velocidad lineal (milimetros/seg)

◆ Home()

void IK.Home ( float  duration = 1f)
inline

Mueve el Scorbot a su posición HOME en el tiempo especificado.

Parámetros
durationDuración (seg)
Devuelve
void

◆ IKAlg()

IEnumerator IK.IKAlg ( Articulation []  articulations,
Transform  D,
Transform  E,
bool  speedDegrees = true 
)
inlineprivate

Ejecuta el algoritmo CCD y mueve las articulaciones a la velocidad normal o lineal.

Parámetros
articulationsArticulaciones
DPosición objetivo
EEfector final
speedDegreesVelocidad normal. En otro caso se usa la velocidad lineal
Devuelve
Proceso en segundo plano

◆ Move()

void IK.Move ( Transform  target)
inline

Mueve el Scorbot a una posición. La posición debe tener la configuración de ángulos ya calculada.

Parámetros
Posicíon(objetivo)
Devuelve
void

◆ MoveCoroutive()

IEnumerator IK.MoveCoroutive ( Coroutine []  moves)
inlineprivate

Ejecuta el proceso de esperar a que acaben un conjunto de procesos en segundo plano.

Parámetros
movesProcesos en segundo plano
Devuelve
Proceso en segundo plano

◆ SetAnglesCopyHome()

void IK.SetAnglesCopyHome ( )
inlineprivate

Mueve (instantaneo) las copias de las articulaciones a la posición HOME.

Devuelve
void

◆ SetAnglesCopyZero()

void IK.SetAnglesCopyZero ( )
inlineprivate

Mueve (instantaneo) las copias de las articulaciones a su posición inicial.

Devuelve
void

◆ SetD()

void IK.SetD ( Transform  D)
inline

Cambia la posición a la que se quiere llegar.

Parámetros
DPosición objetivo
Devuelve
void

◆ SetSpeed()

void IK.SetSpeed ( int  speed)
inline

Cambia la velocidad de las articulaciones del Scorbot.

Parámetros
speedVelocidad (porcentaje 1-100)
Devuelve
void

◆ SetSpeedL()

void IK.SetSpeedL ( int  speed)
inline

Cambia la velocidad lineal actual. 1-300

Parámetros
speedVelocidad lineal (milimetros/seg)
Devuelve
void

◆ TargetInRange()

bool IK.TargetInRange ( Transform  D,
bool  skipPitch = false 
)
inline

Comprueba que una posición es alcanzable por el Scorbot. Se usan las copias de las articulaciones.s

Parámetros
DPosición objetivo
skipPitchMantener el valor del pitch
Devuelve
bool Posición alcanzable

◆ UpdateCopyEffector()

void IK.UpdateCopyEffector ( )
inline

Actualiza la copia del efector final desde la posición Home.

Devuelve
void

La documentación para esta clase fue generada a partir del siguiente fichero: