Robots. La segunda parte. Columpio alado

Descargo de responsabilidad. Los robots son tipos muy confiables. El robert promedio de una marca normal puede funcionar como un maldito durante años sin interrupciones, requiriendo solo breves descansos para las verificaciones de mantenimiento y calibración. Todo lo siguiente es únicamente una consecuencia del hecho de que estamos tratando de obligar a estos muchachos a hacer lo que no están acostumbrados. Por supuesto, debe tenerse en cuenta que estamos tratando de hacer esto dentro del marco de los manuales, pero, aparentemente, nos estamos adentrando en una jungla donde la función parece estar escrita, pero al mismo tiempo no está completamente desarrollada. En este sentido, aprovechamos toda la alegría que se discutirá más adelante en el texto. Longread.



imagen



Bienvenidos a la segunda parte del ballet Marleson.



Tiempos parciales.



En el primero, hablamos sobre cómo, en general, la enfermedad se encuentra en el territorio de la Federación de Rusia, hoy hablaremos de lo que sucede cuando se sube muy por debajo de la falda a Robert.

Insertaré en la cita para resaltar: mis más profundas disculpas al Khabravchanin que escribió un mensaje en mi publicación anterior sobre kawasaki y los universales en San Petersburgo. Lo siento mucho, y mi facilidad de uso no es una excusa para presionar el botón "quejarse" en lugar del botón "responder". Esto es puramente mi descuido, y ni siquiera tuve tiempo de recordar tu apodo para disculparme. Si no le molesta, llame al PM para que pueda disculparme en persona. Estoy seguro de que solo una modestia virtuosa te impidió dar este paso, con el comentario “¡Qué diablos!” Ayer.
Bueno, aún no hemos empezado, he acumulado mucha información variada. Habrá un post sobre el ingreso a la profesión, habrá programación de microcontroladores, habrá milagros en la organización y gestión del proceso de desarrollo, etc. En este sentido, los hubs, en los que se publicará el material, flotarán para no ensuciar las áreas temáticas con información irrelevante.



¡Ahora vámonos! (c) Yuri Gagarin.



¿Que estamos haciendo?



Como comentamos contigo en la primera parte, los Roberts son ideales en situaciones de "escarbar de aquí para almorzar", cuando las operaciones están estandarizadas y gira el mismo programa en un bucle.



imagen



Pero ¿y si no lo es? ¿Qué sucede si necesitamos hacer un lote pequeño, como 200 piezas? Carga el complejo durante una semana. Y después de una semana, ponga otro producto allí. Solo hay una salida: calcular programas con asas, a través del control remoto. Destaqué el inconveniente de este sagrado rito en el último artículo.



Vamos a agravar. Pero, ¿y si ... un producto?



Tomemos como ejemplo la amablemente proporcionadavakhramovejemplo con el fresado del casco del barco. No es fuerte en la construcción naval (bueno, a excepción de los micropaneles de soldadura, que en la construcción naval llevan el nombre de Gulliver únicamente para burlarse, son tontos por varios metros y pesan cientos de kg), pero puedo asumir la siguiente declaración de trabajo:



  1. Tenemos en algún modelo CAD del casco del barco.
  2. Tenemos un cubo de tamaño no figurativo hecho de algo que se muele.
  3. Queremos presionar un botón y que el software cree magia, y el propio robot de un cubo (o paralelepípedo) molió algo para nosotros y lo verificó.


En realidad, el problema es sencillo para nosotros (esto no se resolvió específicamente). Hay un modelo 3D, hay un espacio en blanco y un Robert en el sistema de movimiento. Necesitamos crear un programa para ello en la máquina, controlar su implementación en tiempo real, ejecutar el escáner y comparar la expectativa y la realidad y pulir algo, bueno, listo.



Hablaremos de programación, los matices del parsing 3D, el problema inverso de la cinemática, la formación de programas de control, sobre escáneres y cámaras mucho más tarde. Está claro que esta tarea no es baladí, y nosotros, untando lágrimas de felicidad con la manga, nos sumergimos en el proceso. Pero, como una joven absurda, Robert levanta con orgullo su probóscide y pregunta:



- ¿Por qué tanta atención a estos programas tuyos? ¿Por qué solo haces algo ahí? ¿Y que hay de mi? ¿Qué, me hicieron en vano?

Bueno, arroja un montón de características. De la que hablaremos.



Singularidad



Lo primero que nos espera en el camino de la comunicación con Robert. El hecho es que un programa para una mano se puede escribir en dos tipos principales de coordenadas: cartesianas y conjuntas. El primero es la posición XYZ y las rotaciones alrededor de cada uno de los ejes. El segundo es una indicación de los ángulos de instalación de cada uno de los ejes, en los que se cumple la condición para la colocación del maletero en el espacio. Los primeros se traducen a los segundos y regresan bastante correctamente dentro del propio controlador. Es otro asunto si usted, accidentalmente decide que esta es definitivamente la misma historia, decide trabajar en cartesiano. ¡Hola bipolar singular!



En general, una singularidad es un estado de ánimo de un amigo de hierro, en el que la velocidad del motor a lo largo de cualquiera de los ejes superará a la constructiva. No está del todo claro, intentaré explicarlo.



imagen



Cuando Robert mueve su mano del punto A al punto B, tiene dos opciones. O bien, establezca la velocidad de todos los motores de manera uniforme. En este caso, la velocidad de cada motor en particular es igual al ángulo de rotación requerido de un eje en particular, dividido por el tiempo que toma ejecutar el movimiento. Si se selecciona este modo, el robot, moviéndose entre los puntos, escribe hermosos arcos. Es una lástima, pero en el proceso de este movimiento, no conduce en línea recta, sino de la forma que le conviene. Como resultado, tenemos una oportunidad no ilusoria de llegar con un baúl a un producto / paredes / otros como él.



El movimiento lineal asegura que se mueva en línea recta. Pero al mismo tiempo, los motores deben funcionar a diferentes velocidades en diferentes intervalos de tiempo. Y si esta velocidad excede la que los motores pueden sacar físicamente de su alma sinuosa, el robot escribe "singularidad". Y eso es todo. El programa se detiene.



La situación es ligeramente mejor en los casos en que las coordenadas se especifican en articulaciones en lugar de cartesianas. No entiendo muy bien por qué el controlador reacciona a los puntos en las articulaciones de manera un poco diferente a las cartesianas; tal vez esto se deba a la lógica de convertir coordenadas en esquinas. Pero en general “quizás” es una frase mágica en robótica, ayuda mucho en el trabajo y se usa como plátano universal.



Sin embargo, incluso el movimiento lineal entre puntos, que están escritos en esquinas en lugar de coordenadas, no garantiza que esto obligue al robot a seguirlos. Fanuk hizo una instrucción especial para esto, y Yaskawa generalmente afirma que sus robots no juegan la singularidad. Ambos enfoques no funcionan. Con yaskava, si piensa en la esencia de este fenómeno, parece un intento de eludir la física. El panel de control no muestra realmente la inscripción "singularidad", pero al mismo tiempo informa sobre la superación de la velocidad en algún eje. ¿En qué se diferencia esto de una singularidad? Nada. Los fanooks tienen un equipo especial. WIRSJ, si mi memoria no me falla (fue hace mucho tiempo y no funcionó, así que se olvidaron). Bueno, sí. El robot sigue conduciendo. Solo en el proceso de movimiento se "amasa un cepillo rígido", haciendo un movimiento con las articulaciones de los extremos, tan amadas por los programadores al escribir, para girar la muñeca.Las consecuencias de saludar, si Robert tiene un cortador o un cabezal láser en la mano, son muy divertidas, pero aterradoras. Por tanto, hay que tener en cuenta el singular.



Ethernet



imagen



Digamos que descubrimos esta historia. Digamos que descubrimos los matices de registrar el UP en las esquinas de las articulaciones en el funuk y los pulsos dependientes del modelo en el Yaskawa. Y ahora tenemos que introducir el programa en el robot. Por supuesto, puede llevar una unidad flash y un trabajador que desfilará con orgullo con él ante Robert, pero ¿estamos hablando de automatización en su forma más pura? Por lo tanto, necesitamos enviar un programa a un amigo de hierro. El acceso directo a la memoria está ausente como clase, pero nosotros, inquietos, nos quedamos con algo como FTP. Parece que todo está bien, conéctate y listo. Pero no. El robot solo puede ser un cliente.



De hecho, esta función se utiliza para recoger un UE del contenedor de archivos de la red empresarial, cargarlo en el robot y ejecutarlo. Un robot es una cosa muy moderna, porque la cantidad de memoria en él está calculada en megabytes, y los barones cubanos tragan lágrimas de desesperación, contando el costo de 1 byte y mirando el arenero de sus hijos con polvo blanco. En este sentido, no funcionará almacenar mil UP en Robert, la memoria dirá "oh todo". Y si tenemos muchos programas, tenga la amabilidad de usar el control remoto para meterse en el archivo más suelto y hurra: solo un par de minutos, y él, bombeando el programa en Dial-up, informará sobre la preparación para el trabajo.



Bueno, bueno, si el caos no puede ser derrotado, debe ser liderado. Obligaremos a Robert a cargar el archivo a través de FTP. ¿Por qué necesita especificar el nombre del archivo (bueno, o colocar siempre un archivo con el mismo nombre en una carpeta), negocio. ¿Qué se necesita para esto? Escriba un programa para Robert, que esperará en segundo plano hasta que un comando cargue y cargue el programa. Y luego hazlo. Para ello, Yaskawa nos ofrece comprar un entorno de desarrollo y lidiar con el sandbox interno que ejecuta programas escritos en C. En términos de sintaxis, esto es, por supuesto, C, pero con las construcciones todo no es tan obvio y muy débil (porque es nuevo, hasta 2 años) está documentado. Y el soporte técnico está en Deutschland, y no hay prisa por brindar asistencia.



Fanuc no ha ido muy lejos aquí. También necesita comprar un entorno de desarrollo, al mismo tiempo que compra una opción. En funook, cada estornudo es una opción. La lista de esta alegría es realmente impresionante, y el costo puede causar alergias contables al amarillo. Pero todo el mundo gana lo que puede.



Escribió, lanzó. Incluso funciona. Times 5. Y luego maldice la falta de memoria, porque sus programas son largos, es una mierda. Tres veces. Jurando, vamos a terminar de escribir el borrado. Debazhim. Y en algún momento, Robert deja de responder a través de la red. ¿Y todo por qué? Y porque mantiene la conexión y no sabe cómo reconectarse. ¿Se ha ralentizado el servidor? Reinicie la comida. ¿Poner un punto de ruptura? Dosviduli, reinicio de alimentos. En el transcurso de nuestro trabajo, nunca encontramos una manera de resucitar la conexión del lado de Robert, y el clic sonoro del interruptor fue un obituario para cada sesión de depuración.



¿Depurado, terminado y enjugado el sudor del parto? Robert está en posición, el cubo está listo para limar, el cortador está funcionando y está afilando los dientes con anticipación. Hurra ¿Estás seguro?



Exactitud



imagen



Las coordenadas de los puntos se especifican con una precisión de 1 milésima de mm. Robert puede caminar con una precisión de cien metros cuadrados. Hipotéticamente. Mas menos. ¡Pero sigue siendo impresionante! Pero, ¿cuál es esta precisión?



Esta precisión tiene que ver con la repetibilidad. La recurrencia de la llegada de Robert a un punto del espacio es 100 mil veces. Pero si de repente decides mover a Robert 1000 mm, esto no será 1000 mm. No en la vida. Al menos en el valor normal de Robert, y no en el de un avión de ala. ¿Por qué?



El caso es que Robert tiene un modelo virtual dentro de él. No sabe cómo, como un terminador, considerar sus entrañas en la pantalla dentro del cráneo, pero usa este conjunto de números que caracterizan el tamaño de cada articulación para convertir de cartesiano a articulaciones. De hecho, para Robert, las coordenadas cartesianas son solo un juego desconocido, cuyo nombre es "abstracción pura". Todo lo que el conductor dentro del controlador puede hacer es girar cada uno de los 6 motores de Robert en un cierto ángulo. Y para convertir de cartesiano a articulaciones, se utilizan las mismas constantes que denotan los tamaños de las articulaciones. Y en la planta, donde vierten, afilan y vieron los detalles de los futuros opresores de la raza humana, también hay tolerancias. Ahora imagine qué tipo de error puede traer el desplazamiento del tamaño de una de las articulaciones de, digamos, 0,5 mm.



Entonces resulta que el controlador considera todo correctamente, pero se basa en datos inexactos. En la rueda libre de un metro, pretendíamos una extensión de 1,5 mm para un fanook completamente nuevo, nunca familiarizado con las paredes. Incluso hay tipos especiales que vienen y, a través de recorridos complejos con equipos de medición en toda la zona de accesibilidad, hacen tablas de corrección o corrigen estos valores en las entrañas de Robert. Nuevamente, en la aplicación clásica esto no es necesario: el operador llevó el robot a varios puntos, verificó la precisión y le pidió que lo repitiera durante los próximos 5 años. Los errores no juegan un papel aquí: el robot pierde su capacidad de crecer, sin importar cuánto le eche, inmediatamente después de salir de la fábrica. Y para doblar la geometría de una pieza de hierro, es necesario agitarla tanto ... No creo que pueda funcionar en principio después de tales cargas. Pero lo necesitamosy este problema tiene que resolverse.



Retroalimentación



... está completamente ausente. Si quieres preguntarle a Robert por sus coordenadas actuales, la posición de los motores o la línea del programa ejecutable, llega el pájaro oblomingo y comienza a insinuar felizmente que sería bueno seguir fumando manuales y aprender a programar. Es necesario - escribe.



No me importa, pero parece que no quiero recibir un pasaporte y las llaves del apartamento de Robert. Parece ser algo estándar. Aunque, en general, es posible que no esté al tanto de la lógica detrás de estas restricciones, que convirtieron a Ethernet en un puente unidireccional, es muy posible que esto esté relacionado con la seguridad.



Lo decidí



imagen



Otra característica es un error encontrado en ambos fabricantes. Dime, druh, ¿cómo es que si J6 está torcido a -210, y te pido que gires a +240 grados, lo haces por el camino más corto y escupes errores? Así es como comienzas a comunicarte con él cuando te encuentras con esta desgracia. Robert, con una indicación exacta del valor en las articulaciones, no va -210-> 0 -> + 240, sino que simplemente gira de -210 al lado, que es +240. De hecho obtenemos -380 (que es igual a +240) - y listo, el límite del error, la galaxia está en peligro.



Además, no hay un patrón claro: a veces de -185 a +180 se conduce correctamente y, a veces, de -165 a +175 puede despegar en la dirección incorrecta. Por qué esta maldita optimización no está claro, pero el programa debe escribirse insertando un punto en el que el eje se pone a cero. Y si, de acuerdo con el proceso técnico, lo subiste por ± 180, entonces agrega ± 90, porque de lo contrario explotará nuevamente por el camino más corto. Válido para 4º y 6º eje.



Chamanismo



imagen



¿Los administradores del sistema tienen pandereta? ¡Son débiles! El conductor robótico no aparece frente a la cara de la pieza de hierro sin rociarla con agua bendita, sin colgarse de las patas de pollos y conejos, sin poner un cráneo de búfalo en la cabeza y sin soltar yaki shurikens de una docena de herraduras.



Dejé de sorprenderme por la regla de "siete problemas, un reinicio". Este interruptor ya se ha vuelto querido para mí, un perro. No me sorprende el “por qué” y el “porque” respuestas. Pero algunas cosas siguen funcionando. Por ejemplo, una calibración con un sistema de seguimiento de soldadura, después de la cual Robert puede comenzar a conducir hacia un lado. O copias de seguridad que no se expanden. O los comentarios "el próximo% CrapName% ha volado". O empalmes de ruta nativos absolutamente aleatorios. Esto se ha convertido en la norma.



En lugar de una conclusión



No llamo para evaluar mis palabras como lloriqueos. Como "oh, qué difícil es vivir con ellos". A pesar de sus peculiaridades, estos animales muy divertidos traen mucha alegría. Y atravesar las espinas de funciones mal documentadas y arrebatar milagros en cosas aparentemente estándar solo dice una cosa: cuando se desarrolló el Roberts, estos problemas no recibieron la debida atención. Y, en general, de lo que depende su uso diario funciona muy bien.



La aparición de nuevas tecnologías conducirá inevitablemente al hecho de que Roberts se volverá más amigable con el desarrollador, y el baile actual con una pandereta se convertirá gradualmente en una cosa del pasado. Sin embargo, cambian no tan rápido como nos gustaría. En términos de conservadurismo, están galopando por delante de la evolución de los tiburones, pero no a la velocidad de las reformas del parlamento británico. Solo tiene que esperar y, hoy mismo, aprenda a evitar estas molestas restricciones y adorables rarezas.



La próxima vez hablaremos sobre el umbral para ingresar a la profesión, y luego consideraremos las características de la implementación de la importación de modelos desde sistemas CAD en .NET. O - los matices del escaneo de superficies. Todo: en el ejemplo de un bote de un cubo. Tenemos que cortarlo.



All Articles