|
|
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 () |
| |
|
|
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 |
| |
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
◆ 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
-
| articulations | Articulaciones |
| D | Posición objetivo |
| E | Efector final |
| skipPitch | Mantener 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
-
| end | Vector fin |
| start | Vector inicio |
| plane | Plano |
- 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
-
| startArt | Articulaciones |
| 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
-
| startPoint | Posición inicial |
| endPoint | Posición final |
| speedMillimeter | Velocidad lineal (mm/seg) |
- Devuelve
- float Tiempo (seg)
◆ CCD()
Aplica el algoritmo CCD para una articulación y la rota.
- Parámetros
-
| articulations | Articulaciones |
| D | Posición objetivo |
| E | Efector final |
| R | Articulació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
-
- 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
-
| trayectory | Trajectoria |
| speedDegrees | Velocidad 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
-
| articulations | Articulaciones |
| trayectory | Trajectoria |
| E | Efector final |
| speedDegrees | Velocidad 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()
Obtiene las articulaciones del Scorbot.
- Devuelve
- Articulation[] Articulaciones
◆ GetD()
Obtiene la posición a la que se quiere llegar.
- Devuelve
- Transform Posición objetivo
◆ GetE()
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
-
| obj | Objeto |
| origin | Origen 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
-
- Devuelve
- Vector3 Coordenadas
◆ GetSpeed()
Obtiene la velocidad (porcentaje) de las articulaciones actual.
- Devuelve
- int Velocidad (porcentaje)
◆ GetSpeedL()
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
-
- 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
-
| articulations | Articulaciones |
| D | Posición objetivo |
| E | Efector final |
| speedDegrees | Velocidad 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
-
- 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
-
| moves | Procesos 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
-
- Devuelve
- void
◆ SetSpeed()
| void IK.SetSpeed |
( |
int |
speed | ) |
|
|
inline |
Cambia la velocidad de las articulaciones del Scorbot.
- Parámetros
-
| speed | Velocidad (porcentaje 1-100) |
- Devuelve
- void
◆ SetSpeedL()
| void IK.SetSpeedL |
( |
int |
speed | ) |
|
|
inline |
Cambia la velocidad lineal actual. 1-300
- Parámetros
-
| speed | Velocidad 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
-
| D | Posición objetivo |
| skipPitch | Mantener 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: