Des robots. Deuxième partie. Balançoire ailée

Avertissement. Les robots sont des types très fiables. Le robert moyen d'une marque normale peut fonctionner comme un putain pendant des années sans interruption, ne nécessitant que de courtes pauses pour les contrôles de maintenance et d'étalonnage. Tout ce qui suit est uniquement une conséquence du fait que nous essayons de forcer ces gars à faire ce à quoi ils ne sont pas habitués. Bien sûr, il convient de noter que nous essayons de le faire dans le cadre de manuels, mais, apparemment, nous nous engageons dans une telle jungle où la fonction semble être écrite, mais en même temps elle n'est pas complètement élaborée. À cet égard, nous saisissons toute la joie qui sera discutée plus loin dans le texte. Longue lecture.



image



Bienvenue dans la deuxième partie du ballet Marleson.



Temps partiel.



Dans le premier, nous avons parlé de la façon dont, en général, la maladie se rencontre sur le territoire de la Fédération de Russie, nous discuterons aujourd'hui de ce qui se passe lorsque vous montez très loin sous la jupe de Robert.

J'insérerai dans la citation pour souligner - mes plus sincères excuses au Khabravchanin qui a écrit un message sous mon précédent post sur le kawasaki et les universaux de Saint-Pétersbourg. Je suis vraiment désolé, et ma convivialité n'est pas une excuse pour appuyer sur le bouton "se plaindre" au lieu du bouton "répondre". C'est exclusivement mon insouciance, et je n'ai même pas eu le temps de me souvenir de votre surnom pour m'excuser. Si cela ne vous dérange pas, frappez au PM pour que je puisse m'excuser en personne. Je suis sûr que seule la modestie vertueuse vous a empêché de franchir cette étape, avec le commentaire «Que diable!» Hier.
Eh bien, nous n'avons pas encore commencé - j'ai accumulé beaucoup d'informations hétéroclites. Il y aura un article sur l'entrée dans la profession, il y aura la programmation de microcontrôleurs, il y aura des miracles dans l'organisation et la gestion du processus de développement, etc. À cet égard, les hubs, dans lesquels le matériel sera publié, flotteront afin de ne pas joncher les domaines thématiques avec des informations non pertinentes.



Maintenant allons-y! (c) Youri Gagarine.



Que faisons-nous?



Comme nous l'avons évoqué dans la première partie, Roberts est idéal dans des situations de "fouille d'ici pour déjeuner", lorsque les opérations sont standardisées et qu'il tourne le même programme en boucle.



image



Mais que faire si ce n'est pas le cas? Que se passe-t-il si nous devons fabriquer un petit lot, environ 200 pièces? Chargez le complexe pendant une semaine. Et après une semaine - mettez un autre produit là-dedans. Il n'y a qu'un seul moyen de sortir - pour comprendre les programmes avec des poignées, via la télécommande. J'ai souligné l'inconvénient de ce rite sacré dans le dernier article.



Aggravons. Mais et si - un seul produit?



Prenons comme exemple les aimablement fournisvakhramovexemple avec le fraisage de la coque du bateau. Pas fort dans la construction navale (enfin, à l'exception des micropanels de soudage, qui dans la construction navale portent un tel nom Gulliver uniquement pour la moquerie - ce sont des imbéciles sur plusieurs mètres et pesant des centaines de kg), mais je peux supposer les savoirs traditionnels suivants:



  1. Nous avons dans un modèle CAO de la coque du bateau.
  2. Nous avons un cube de taille non figurative fait de quelque chose qui est fraisé.
  3. Nous voulons pousser sur le bouton, et pour que le logiciel crée de la magie, et le robot lui-même à partir du cube (ou parallélépipède) a fraisé et vérifié quelque chose pour nous.


En fait, le problème est simple pour nous (cela n'a pas été résolu spécifiquement). Il y a un modèle 3D, il y a un blank et un robert sur le système de mouvement. Nous devons créer un programme pour cela dans la machine, contrôler sa mise en œuvre en temps réel, exécuter le scanner et comparer les attentes et la réalité et peaufiner quelque chose, eh bien, voila.



Nous parlerons de la programmation, des nuances de l'analyse 3D, du problème inverse de la cinématique, de la formation des programmes de contrôle, des scanners et des caméras bien plus tard. Il est clair que cette tâche n'est pas anodine, et nous, barbotant des larmes de bonheur avec notre manche, nous plongons dans le processus. Mais, comme une jeune fille absurde, Robert relève fièrement sa trompe, et demande:



- Pourquoi toute l'attention portée à ces programmes? Pourquoi ne faites-vous quelque chose que là-bas? Et moi dans tout ça? Qu'est-ce qu'ils m'ont fait en vain?

Eh bien, cela jette un tas de fonctionnalités. Dont nous allons parler.



Singularité



La première chose qui nous attend sur le chemin de la communication avec Robert. Le fait est qu'un programme pour un programme à une main peut être écrit en deux types principaux de coordonnées: cartésiennes et jointes. Le premier est la position XYZ et les rotations autour de chacun des axes. Le second est une indication des angles d'installation de chacun des axes auxquels la condition de mise en place du coffre dans l'espace est remplie. Les premiers sont traduits dans les seconds et retournés assez correctement à l'intérieur du contrôleur lui-même. C'est une autre affaire si vous, décidant accidentellement que c'est définitivement la même histoire, décidez de travailler en cartésien. Bonjour bipolaire singulier!



En général, une singularité est un état d'esprit d'un ami de fer, dans lequel la vitesse du moteur le long de l'un des axes dépassera celle du constructeur. Ce n'est pas tout à fait clair, je vais essayer d'expliquer.



image



Lorsque Robert déplace sa main du point A au point B, il a deux options. Ou - réglez uniformément la vitesse de tous les moteurs. Dans ce cas, la vitesse de chaque moteur particulier est égale à l'angle de rotation requis d'un axe particulier, divisé par le temps qu'il faut pour exécuter le mouvement. Si ce mode est sélectionné, le robot, se déplaçant entre les points, écrit de beaux arcs. C'est dommage, mais dans le processus de ce mouvement, il ne conduit pas en ligne droite, mais de la manière qui lui convient. En conséquence, nous avons une chance non illusoire de venir avec un coffre à un produit / murs / autres comme lui.



Le mouvement linéaire garantit qu'il roule en ligne droite. Mais en même temps, les moteurs à des intervalles de temps différents doivent fonctionner à des vitesses différentes. Et maintenant, si cette vitesse dépasse celle que les moteurs peuvent extraire physiquement de leur âme sinueuse, le robot écrit «singularité». Et c'est tout. Le programme s'arrête.



La situation est légèrement meilleure dans les cas où les coordonnées sont spécifiées dans les joints plutôt que dans les cartésiens. Je ne comprends pas très bien pourquoi le contrôleur réagit aux points dans les joints un peu différemment des points cartésiens - peut-être est-ce dû à la logique de conversion des coordonnées en coins. Mais en général, «peut-être» est une phrase magique en robotique, cela aide beaucoup dans le travail et est utilisé comme plantain universel.



Néanmoins, même un mouvement linéaire entre les points, qui sont écrits dans des coins au lieu de coordonnées, ne garantit pas que cela obligera le robot à les suivre. Fanuk a fait une instruction spéciale pour cela, et Yaskawa déclare généralement que leurs robots ne jouent pas la singularité. Les deux approches ne fonctionnent pas. Avec yaskava - si vous pensez à l'essence de ce phénomène - cela ressemble à une tentative de contournement de la physique. Le panneau de contrôle ne montre pas vraiment l'inscription «singularité», mais en même temps il informe sur les excès de vitesse sur un axe. En quoi est-ce différent d'une singularité? Rien. Les fanooks ont une équipe spéciale. WIRSJ, si ma mémoire est bonne (c'était il y a longtemps et n'a pas fonctionné, alors ils ont oublié). Hé bien oui. Le robot continue de rouler. Ce n'est que dans le processus de mouvement qu'il "malaxe une brosse dure", faisant un mouvement avec les joints d'extrémité, si appréciés des programmeurs lors de la frappe - pour tordre le poignet.Les conséquences de l'agitation, si Robert a un cutter ou une tête laser à la main, sont très drôles, mais effrayantes. Par conséquent, le singulier doit être pris en compte.



Ethernet



image



Disons que nous avons compris cette histoire. Disons que nous avons compris les nuances de l'enregistrement du UP dans les coins des articulations dans le funuk et les impulsions dépendant du modèle dans le Yaskawa. Et maintenant, nous devons pousser le programme dans le robot. Vous pouvez, bien sûr, prendre une clé USB et un ouvrier qui défilera fièrement avec Robert, mais parlons-nous de l'automatisation dans sa forme la plus pure? Par conséquent, nous devons envoyer un programme à un ami de fer. L'accès direct à la mémoire est absent en tant que classe, mais nous, inquiets, nous sommes retrouvés avec une chose telle que FTP. Il semble que tout soit cool, connectez-vous et partez. Mais non. Le robot ne peut être qu'un client.



En fait, cette fonction est utilisée pour récupérer un UE dans la corbeille de fichiers du réseau d'entreprise, le charger dans le robot et l'exécuter. Un robot est une chose très moderne, car la quantité de mémoire qu'il contient est calculée en mégaoctets, et les barons cubains avalent des larmes de désespoir, comptant le coût de 1 octet et regardant le bac à sable de leurs enfants avec de la poudre blanche. À cet égard - il ne fonctionnera pas de stocker mille UP sur Robert - la mémoire dira «oh tout». Et si nous avons beaucoup de programmes, ayez la gentillesse d'utiliser la télécommande pour grimper dans le fichier plus lâche et hourra: juste quelques minutes, et lui, en pompant le programme sur Dial-up, rapportera qu'il est prêt à travailler.



Eh bien, si le chaos ne peut être vaincu, il doit être mené. Nous obligerons Robert à télécharger le fichier via FTP. Pourquoi a-t-il besoin de spécifier le nom du fichier (enfin, ou toujours placer un fichier avec le même nom dans un dossier), entreprise. Que faut-il pour cela? Écrivez un programme pour Robert, qui attendra en arrière-plan une commande pour charger et charger le programme. Et puis faites-le. Pour ce faire, Yaskawa nous propose d'acheter un environnement de développement et de gérer le sandbox interne qui exécute les programmes écrits en C. En termes de syntaxe, c'est, bien sûr, C, mais avec les constructions tout n'est pas si évident et très faible (car nouveau, jusqu'à 2 ans) est documenté. Et le support technique est en Deutschland, et il n'est pas pressé de fournir une assistance.



Fanuc n'est pas allé loin ici. Vous devez également acheter un environnement de développement, tout en achetant une option. Dans funook, chaque éternuement est une option. La liste de cette joie est vraiment impressionnante, et le coût peut provoquer des allergies comptables au jaune. Mais - chacun gagne comme il le peut.



Écrit, lancé. Cela fonctionne même. Times 5. Et puis jure sur le manque de mémoire, parce que vos programmes sont longs - c'est putain. Trois fois. Nous maudissons, nous allons finir d'écrire la suppression. Debazhim. Et à un moment donné, Robert cesse de répondre sur le réseau. Et tout pourquoi? Et parce qu'il garde la connexion et ne sait pas comment se reconnecter. Le serveur a-t-il ralenti? Veuillez redémarrer la nourriture. Mettez un point d'arrêt? Dosviduli, redémarrage de la nourriture. Au cours de notre travail, nous n'avons jamais trouvé un moyen de ressusciter la connexion du côté de Robert, et le clic sonore du commutateur était une nécrologie pour chaque session de débogage.



Débogué, terminé et essuyé la sueur du travail? Robert est en position, le cube est prêt pour le limage, la fraise tourne et affûte les dents par anticipation? Hourra? Êtes-vous sûr?



Précision



image



Les coordonnées des points sont spécifiées avec une précision de 1 millième de mm. Robert peut marcher avec une précision de cent mètres carrés. Hypothétiquement. Plus moins. Mais toujours impressionnant! Mais quelle est cette précision?



Cette précision concerne la répétabilité. La récurrence de l'arrivée de Robert en un point de l'espace est 100 mille fois. Mais si soudainement vous décidez de déplacer Robert de 1000 mm, ce ne sera pas 1000 mm. Pas dans la vie. Au moins sur la valeur normale de Robert, et non sur la valeur de l'aéronef. Pourquoi?



Le fait est que Robert a un modèle virtuel en lui. Il ne sait pas comment, comme un terminateur, considérer ses tripes sur l'affichage à l'intérieur du crâne, mais il utilise cet ensemble de nombres caractérisant la taille de chaque articulation pour passer du cartésien aux articulations. En fait, pour Robert, les coordonnées cartésiennes ne sont qu'un jeu inconnu, dont le nom est «pure abstraction». Tout ce que le conducteur à l'intérieur du contrôleur peut faire est de faire tourner chacun des 6 moteurs de Robert à un certain angle. Et pour passer du cartésien aux joints, on utilise les constantes mêmes qui indiquent les tailles des joints. Et à l'usine, où ils versent, affûtent et voient les détails des futurs oppresseurs de la race humaine, il y a aussi des tolérances. Imaginez maintenant quel genre d'erreur le déplacement de la taille de l'un des joints de, disons, 0,5 mm peut entraîner.



Il s'avère donc que le contrôleur considère tout correctement, mais se base sur des données inexactes. Sur la roue libre d'un mètre, nous avons prévu un écart de 1,5 mm pour un fanook complètement nouveau, jamais familier avec les murs. Il y a même des gars spéciaux qui viennent et, au moyen de manèges complexes avec des équipements de mesure dans toute la zone d'accessibilité, font soit des tables de correction, soit - ils corrigent ces valeurs dans les abats de Robert. Encore une fois, dans l'application classique, cela n'est pas nécessaire - l'opérateur a amené le robot à plusieurs points, a vérifié la précision et lui a demandé de répéter cela pendant les 5 prochaines années. Les erreurs ne jouent aucun rôle ici - le robot perd sa capacité à se développer, peu importe la quantité que vous y versez, juste après avoir quitté l'usine. Et pour plier la géométrie d'un morceau de fer, il faut qu'il soit trop secoué ... Je ne pense pas qu'il pourra fonctionner en principe après de telles charges. Mais nous en avons besoinet ce problème doit être résolu.



Retour d'information



... est complètement absent. Si vous voulez demander à Robert ses coordonnées actuelles, la position des moteurs ou la ligne du programme exécutable, l'oiseau oblomingo arrive et commence joyeusement à laisser entendre qu'il serait bien de continuer à fumer des manuels et d'apprendre la programmation. Il est nécessaire - écrivez.



Cela ne me dérange pas - mais je ne semble pas vouloir recevoir un passeport et les clés de l'appartement de Robert. Cela semble être une chose standard. Bien que, en général, je ne sois pas au courant de la logique des créateurs de ces restrictions, qui ont transformé Ethernet en un pont à sens unique - il est fort possible que cela soit lié à la sécurité.



J'ai décidé ainsi



image



Une autre caractéristique est un bogue trouvé sur les deux fabricants. Dites-moi, druh, comment se fait-il que si J6 est tordu à -210, et que je vous demande de tourner à +240 degrés, vous le faites sur le chemin le plus court et crachez des erreurs? C'est ainsi que vous commencez à communiquer avec lui face à ce malheur. Robert, avec une indication exacte de la valeur en joints, ne va pas -210-> 0 -> + 240, mais tourne simplement de -210 sur le côté, soit +240. On obtient en fait -380 (ce qui équivaut à +240) - et voilà, la limite de l'erreur, la galaxie est en danger.



De plus, il n'y a pas de schéma clair - parfois de -185 à +180, il roule correctement, et parfois de -165 à +175, il peut décoller dans la mauvaise direction. Pourquoi cette foutue optimisation n'est pas claire, mais le programme doit être écrit en insérant un point où l'axe est mis à zéro. Et si, selon le processus technique, vous l'avez augmenté de ± 180, ajoutez ± 90, car sinon, il explosera à nouveau le long du chemin le plus court. Valable pour les 4e et 6e axes.



Chamanisme



image



Les administrateurs système ont-ils un tambourin? Ils sont faibles! Le conducteur robotique n'apparaît pas devant le visage du morceau de fer sans l'arroser d'eau bénite, sans se pendre aux pattes de poulets et de lapins, sans mettre un crâne de buffle sur sa tête et sans libérer les shurikens yaki d'une dizaine de fers à cheval.



J'ai cessé d'être surpris par la règle des «sept problèmes - une réinitialisation». Cet interrupteur m'est déjà devenu cher, un chien. Je ne suis pas surpris des réponses «pourquoi» et «parce que». Mais certaines choses continuent de fonctionner. Par exemple, un étalonnage avec un système de suivi des soudures, après quoi Robert peut commencer à conduire sur le côté. Ou des sauvegardes qui ne s'étendent pas. Ou les commentaires "le prochain% CrapName% a volé." Ou des filets de chemin natifs fonctionnant de manière absolument aléatoire. C'est devenu la norme.



Au lieu d'une conclusion



Je n'appelle pas pour évaluer mes paroles comme pleurnicher. Comme "oh, comme il est difficile de vivre avec eux." Malgré leurs bizarreries, ces animaux très drôles apportent beaucoup de joie. Et briser les épines de fonctions mal documentées et arracher des miracles sur des choses apparemment standard ne dit qu'une chose: lors du développement du Roberts, ces problèmes n'ont pas reçu l'attention voulue. Et dans l'ensemble, ce dont dépend votre utilisation quotidienne fonctionne très bien.



L'émergence de nouvelles technologies conduira inévitablement au fait que Roberts deviendra plus amical envers le développeur, et la danse actuelle avec un tambourin deviendra progressivement une chose du passé. Ils changent cependant pas aussi vite que nous le souhaiterions. En termes de conservatisme, ils galopent en avance sur l'évolution des requins, mais ne suivent pas le rythme des réformes du parlement britannique. Vous avez juste besoin d'attendre, et aujourd'hui - apprenez à contourner ces restrictions ennuyeuses et ces bizarreries mignonnes.



La prochaine fois, nous parlerons du seuil d'entrée dans la profession, puis nous examinerons les caractéristiques de la mise en œuvre de l'importation de modèles à partir de systèmes de CAO sur .NET. Ou - les nuances du balayage de surface. Tout - sur l'exemple d'un bateau à partir d'un cube. Nous devons le supprimer.



All Articles