Paso 5: Control para brazos robóticos
4.1 interacción
Ya que ESPduino está ya incorporada la función del Telnet, podemos realizar la interacción humano-computadora, comprobar el estado de funcionamiento, posición actual, la velocidad de la corriente y así sucesivamente, por Telnet. Al mismo tiempo, podemos establecer el modelo de movimiento para el solo o multi-ejes y ubicación de movimiento.
Cuando ESPduino se conecta al router inalámbrico, PC puede conectarse a la dirección IP de ESPduino herramientas de Telnet (por ejemplo, SecureCRT). El puerto de conexión es de 23, que se muestra en la figura 6.
Por Telnet, podemos controlar el brazo del robot por
los siguientes comandos, que se definen como sigue.
«h»: imprimir la información de ayuda;
"z": deje los axises de retorno a cero ubicación (es decir, la inicial ubicación predeterminada definida en las secciones anteriores), que se definen cuando configura la matriz D-H de brazo robot. Entonces después de la energía, la situación de la objeción es 0 para cada eje, como se muestra en la figura 7.
"p": imprimir el estado actual del robot
brazo, como se muestra en la siguiente imagen. La información incluye estado, ajuste velocidad, ángulo de corriente para cada eje, ángulo de un objeto y matriz de la posición actual para el actuador final.
"d": comprobar o configurar la velocidad de la corriente, de los cuales, el grado de velocidad se define como 1 ~ 10, donde "1" es la velocidad más baja, y "10" es la velocidad más rápida.
"c": mantener la posición actual para el actuador final y luego dejar que actuador mover junto con el eje x, eje y y z en coordenadas Cartesianas, respectivamente. El unite es mm.
"t": mantener la posición actual del actuador y luego dejar que actuador mover junto con el eje x, eje y y z en coordenadas de la herramienta, respectivamente. El unite es mm.
"s": movimiento de un eje. Al principio, cada eje está en la posición cero y el ángulo se define como 0, el ámbito es-90 grados ~ 90 grados. Lo positivo y negativo se decidió por la regla de la mano derecha.
"w": mueva a la ubicación del diseño.
"g": control de la garra (garra). Por ejemplo, g:45 significa dejar la pata abierta en ángulo de 45 grados control servo.
Similar al smart 3 colores LED, código DoArm puede proporcionar configuración web y OTA actualización la función, como se muestra en la figura 7.
4.2 etiqueta e inicialización
Cuando conecte el cable de extensión de servos a la Junta conducida al azar, en primer lugar, debemos permitir que cada eje del robot brazo se corresponde al canal en el tablero impulsado, respectivamente. Luego, confirmar la excursión para la ubicación de cero; por último, confirmar el alcance de movimiento permitido.
(1) confirmar el número de canal en la Junta conducida para cada brazo robótico
Cuando conecte el cable de extensión de servos a la Junta conducida, es muy difícil de distinguir el número correspondiente al número de canal en el tablero. Por lo tanto, simplemente insertamos el cable de extensión de servos a la junta al azar, como se muestra en la figura 8.
Cable de extensión de servos de figura 8 en el tablero por
En el código fuente, permiten la función initParseData() sesgo [6] como {0,0,0,0,0,0}, y las posibilidades de movimiento de cada eje a-90 ° ~ 90 °.
sesgo de distancia para cada eje móvil
flotador de sesgo [6] = {0, 0, 0, 0, 0, 0};
arm.setServoBias (sesgo, 6);
alcance para cada eje de movimiento
arm.setServoRange (-90, 90, -90, 90, -90, 90, -90, 90, -90, 90, -90, 90,);
sea arm.setChannel() el canal de acceso real. Como se muestra en la figura 8, el canal de acceso es 1,3,4,9,11,13, respectivamente, entonces
arm.setChannel (1, 3, 4, 9, 11, 13);
Compilar el código y descargar ESPduino, abrir la interfaz hombre-computadora mediante Telnet, use el comando "s:x, y" para confirmar la relación correspondiente para cada eje. Por ejemplo,
Mediante el uso de "s: 1, 10", que movimiento de eje 5 y luego canal "1" escrito en el 5 º eje;
Mediante el uso de "s:2 10", que movimiento de eje 6 y luego canal "3" de la escritura en el eje 6;
Mediante el uso de "s:3 10", que mover eje 4 y luego canal "4" de la escritura en el 4 º eje;
Mediante el uso de "s:4 10", que movimiento de eje 2 y canal "9" de la escritura en el eje 2 º;
Mediante el uso de "s:5 10", que movimiento de eje 1 y luego canal "11" de la escritura en el eje 1;
Mediante el uso de "s:6 10", que movimiento de eje 3 y canal "13" de la escritura en el eje 3;
Entonces, podemos obtener a la relación correspondiente derecho final entre el eje del brazo robot y el canal bordo conducido, como se muestra en la siguiente función.
arm.setChannel (11, 9, 13, 4, 1, 3);
puesto que la garra es sólo uno, dejarlo insertar un canal inactivo y establecido por
brazo. setGripperChannel ().
establece el número de canal para la pinza
arm.setGripperChannel(14);
(2) confirmar la excursión (para el cero ubicación de cada eje)
Después de confirmar que la relación correspondiente entre el eje y el canal, el código fuente es necesario para volver a compilado y descarga en el ESPduino a funcionar otra vez. Mediante el comando Telnet, podemos confirmar el sesgo de excursión para cada eje.
En primer lugar, la velocidad como el grado más bajo, el comando es d:1, 1
Figura 9 establece el grado más bajo de velocidad
Entonces, usando "s:x, y" dejar que el eje para mover la ubicación de cero. En general, el cero (posición media) es usando o. "s:x, y" para confirmar si el eje se encuentra en lugar de cero. Si no, entonces el comando "s" para dejar este eje a cero ubicación. Por ejemplo, "s: 1, 65" se denota que este eje debe mover 65 grados para obtener la ubicación de cero. En este caso, el comando se muestra como sigue.
excursión para localización media
flotador de sesgo [6] = {65, 5, -8, 5, 0, 0};
arm.setServoBias (sesgo, 6);
Entonces después de la compilación, el brazo del robot será recuperado a la localización cero automáticamente, como se muestra en la figura 10.
Figura 10 DoArm el estado inicial
(3) confirmar el alcance de movimiento de cada eje
Después de la confirmación para cero ubicación, podemos confirmar el alcance de movimiento de cada eje usando "s:x, y" con Telnet la interacción hombre-computadora. Debido a las restricciones, el alcance del ángulo para el servo se encuentra defaultly-90 ° ~ 90 °. En este caso, el alcance de movimiento es el siguiente. Tenga en cuenta que, si el ámbito móvil es superado, entonces el servo sería parado.
alcance de cada eje en movimiento en este caso
arm.setServoRange (-90, 30, -30, 60, -40, 35, -90, 90, -50, 90, -80, 80);
(4) control de agarre
El control de garra es separado de los otros 6 ejes, para que podamos usar el comando "g:x" para el control de la pinza, como se muestra en la figura 11.
(a) posición de pinzas en 0 grados
(b) posición de pinzas en 20 grados
(c) posición de pinzas en 45 grados
Figura 11 control de agarre
control eje 4.3
En la interfaz del Telnet, podemos usar "s:x, y" comando para controlar el eje, donde x denota el eje móvil diseñado, ámbito de aplicación es de 1 ~ 6; y denota el ángulo absoluto, el alcance es el permitido por cada eje con el tipo de flotador. Después de cada acción, el estado actual para el brazo robot puede mostrarse automáticamente.
Figura 12 la salida para el movimiento de un eje
4.4 conjunto de Control
Conjuntamente control denota que los 6 ejes movimiento al mismo tiempo. Tiene 3 modos: 1. continúa el movimiento por la ubicación fija; 2. movimiento de extremo en coordenadas cartesianas; 3. movimiento de final en las coordenadas de la herramienta.
(1) sigue el movimiento de la ubicación fija
Proporcionar los métodos arm.setWaitPosition () y arm.gotoWaitPosition(), que es el lugar fijo e ir a este lugar, respectivamente. En nuestro código fuente, proporcionamos el código para controlar conjuntamente el 9. DoArm puede ser movido por "w:x", donde "x" es 0 ~ 8. Especialmente, el comando "w:9" puede comenzar 9 seguir los movimientos. Este video puede verse en:
http://v.youku.com/v_show/id_XMTQ5ODk0NzEyMA==.html?from=Y1.7-1.2
(2) movimiento de extremo en coordenadas cartesianas
Puede proporcionar el calcReverseKinematics() de función cinemática inversa para calcular la posición diseñado y ángulo inverso para el actuador de fin de brazo robot. Especialmente, la interacción Telnet proporciona el comando junto con x, y, eje z en coordenadas cartesianas; es decir, "c:x, y, z", donde x, y, z denota el aumento a lo largo de con x, y, eje z con unir mm y tipo de flotador.
Por ejemplo, si deja terminar actuador mover 20mm junto con el eje z, el comando es "c:0, 0, 20" y se vuelve "c:0, 0, -20". El brazo del robot se mueve 20mm en posición vertical y luego mover 20mm en la orientación inversa. Por último, el brazo volvería a la ubicación original. En este momento, el lugar es cero. Cuando recibe el comando "c:0, 0, 20", la situación es (0.000,2.358,-11.361,0.000,9.003,0.000); después de esto, si ejecuta el comando "c:0, 0, -20", la situación es (0.000-0.000 0.000, 0.000,-0.000, 0.000), como se muestra en la figura 13.
Figura 13 movimiento en coordenadas cartesianas
(3) movimiento de extremo en coordenadas de la herramienta
Similar a la del movimiento en coordenadas Cartesianas, la diferencia es que el actuador se mueve en las coordenadas de la herramienta (correspondiente a la O6). El comando es "t:x, y, z", donde x, y, z son simple junto con la x, y, eje z con una mm y tipo de flotador.
Por ejemplo, que el actuador final mover 20mm en el estado inicial junto con eje X. El comando es "t:20, 0, 0", y vuelta a la situación original es "t:-20,0,0". Entonces, el actuador final sería en primer lugar mover 20mm junto con eje x y luego devolver 20mm hacia atrás. Podemos analizar los resultados en la interfaz de Telnet. Desde la ubicación inicial 0.000, cuando recibe el comando "t:20, 0, 0", la situación es (0.000,2.358,-11.361,0.000,9.003,0.000); después de eso, si ejecuta el comando "t-20,0,0", la situación es (0.000-0.000 0.000, 0.000,-0.000, 0.000).
Coordenadas de la figura 14 movimiento de la herramienta