PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HILFE - Ich will roboter-programmierung lernen!



Froma
12.05.2012, 12:50
Hallo!



Ich bin S7 programmierer (Siemens s7) und habe bis dato noch keine kenntnisse in der roboterprogrammierung, allerdings habe ich
tierisches interesse daran, einmal so einen robi selbst zu programmieren. mein arbeitgeber wird mir aber diese möglichkeit so schnell
nicht geben und kurse sind zeitlich momentan auch ein problem, daher muss ich den weg ins forum gehen..

mein einziger kontakt mit dem thema roboter bestand in der vergangenheit immer darin, eine schnittstelle zu der roboter-steuerung
herzustellen und ein paar signale zu rangieren.

nun, meine neugierde lässt mir aber jetzt keine ruhe und so würde ich gerne mehr von der welt der roboter erfahren.

meine ersten fragen in diesem forum sind daher folgende:


1. wie funktionieren roboterprogramme grundsätzlich? ich gehe mal schwer davon aus, dass punkte geteached werden müssen :o und diese werden dann im einfachsten fall, linear angefahren. nur wie sieht das in der praxis im programm bzw. im editor aus.
2. gibt es irgendwie die möglichkeit, z.b. durch einen demo-editor einblick in die programmierung und die syntax zu bekommen, ohne jetzt geld für software auszugeben.

kann man die programmierung überhaupt ohne grundkurse bzw aufbaukurse erlernen?

vielen dank schon mal für alle antworten!
gruss

Hubert.G
12.05.2012, 15:28
Hallo im Forum
In den Roboter von einfach bis komplex sind µC von einfach bis komplex verbaut.
Hier wird überwiegend mit Atmel-AVR-Kontroller gearbeitet, es sind aber auch PIC vorhanden.
In diese µC Programmierung solltest du dich einarbeiten. Die gängigen Programmiersprachen sind, Assembler, C und BASCOM.
Für Assembler und C gibt es kostenlos das AVR-Studio, BASCOM, an Basic angelehnt, gibt es bis zu einer bestimmten Codegröße auch als Demo.
Tutorials gibt es hier:
http://www.mikrocontroller.net/articles/AVR-Tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht
http://www.rn-wissen.de/index.php/Kategorie:Microcontroller

Neutro
12.05.2012, 15:33
Hallo und willkommen im Forum,
da du ja schon einige technische Kenntnisse zu haben scheinst, ist die Sache eigentlich gar nicht mehr sooo schwer, aber fangen wir mal an:

1. Roboter werden in den meisten Fällen von Mikrocontrollern gesteuert, einige sind auch so aufgebaut das sie Daten von einem PC empfangen und dann die befehle nur weiter ausführen.

2. Geeignete Mikrokontroller gibt es haufenweise, im Hobbybereich werden aber gerne P-Controller, oder aber ATMEL AVR Controller genommen. Hier im Forum haben sich wohl die meisten für den AVR entschieden.

3. Als Programmiersprachen eignen sich ASM (schwer zu lernen und für komplexere Programme zu unständlich), C oder BASCOM AVR (leicht zu erlernen).
Die meisten Programme bieten kostenlose Compiler für C an oder Demoversionen für andere Sprachen mit denen man ganz gut arbeiten kann.
Grundsätzlich arbeiten die Programme eine Do-loop Schleife ab und fragen darin Sensordaten, Signalzustände ab und reagieren darauf entsprechend, aber das hängt alles von der Programmierung ab, jeder programmiert anders, viele unterschiedliche Lösungen führen zu Ziel.

4. Bevor du an die programmierung eines Roboters gehst solltest du erstmal auf einem Testboard das Programmieren erlernen.
Programmieren kann man grundsätzlich selbständig erlernen mit Hilfe von Büchern oder tut´s aus dem www.

5. Einen Roboter zu bauen erfordert auch eine Menge an mechanischen Fertigkeiten und Zugang zu div. werkzeugen und Maschienen (CNC Fräse).

Entscheide dich also erstmal für eine Controllerfamilie und eine passende Programmiersprache, dann kannst du Schritt für Schritt deine Projekte angehen, für Fragen sind wir natürlich immer offen.

VG
Neutro

Calis007
13.05.2012, 08:38
Eine von vielen Programmierumgebungen kannst Du Dir gratis holen:
http://www.arduino.cc/

Ist nicht die einzige kostenlose, aber ich find Arduino (sowohl die Hardware - ATMEL AVR Controller - als auch die Programmierumgebung) zum Einstieg in die Roboter/Microcontroller-Programmierung ganz brauchbar :)

Ansonsten kommt's klarerweise drauf an, was genau Du unter Roboter verstehst.
Einen Punktschweissroboter und einen autonom fliegenden Quadrocopter kann man nicht so direkt vergleichen :p

Staind
13.05.2012, 09:31
Hallo,

ich denke mal du willst wissen, wie man Industrieroboter programmiert, also die von Kuka, ABB, Adept.... soetwas wirst du hier in diesen Forum nicht lernen.
Diese haben jeweils ihre eigene Programmiersprache.
Ich denke in diesen Forum bist du besser aufgehoben http://www.roboterforum.de/roboter-forum/

Froma
13.05.2012, 09:50
klasse!
schon mal vielen dank an alle, die tips und links helfen mir für den anfang schon mal sehr weiter!
ich wusste ja, dass ich hier in diesem forum gut aufgehoben bin...;)

@Calis007:
ich denke eher an die programmierung eines punktschweissroboters, von mir aus auch ein robi mit einer einfachen greifer einheit, etc.
danke für den link, ich denke mit dieser umgebung kann ich im augenblick schon was anfangen.
du könntest mir nur noch mal vorweg eine frage zu meinem verständnis beantworten.

wie defininiert man dann die punkte, die der roboter anfahren soll und wie greift man darauf im programm zu?
ich habe gesehen dein link bietet ein getting-started,aber ich hatte noch nicht die zeit alles genau zu durchforsten, evtl wirds darin ja
erklärt, aber vllt kannst du mir darüber auch kurz auskunft geben!?

Mxt
13.05.2012, 10:20
Hallo,


klasse!
schon mal vielen dank an alle, die tips und links helfen mir für den anfang schon mal sehr weiter!
ich wusste ja, dass ich hier in diesem forum gut aufgehoben bin...;)


da bin ich mir nicht so sicher. Ich glaube hier reden einige Leute gepflegt an einander vorbei.



ich denke eher an die programmierung eines punktschweissroboters, von mir aus auch ein robi mit einer einfachen greifer einheit, etc.

wie defininiert man dann die punkte, die der roboter anfahren soll und wie greift man darauf im programm zu?


Die Tipps, die du so gut findest, beziehen sich auf dem heimischen Selbstbau von kleinen Robotern. Nur der Hinweis auf roboterforum.de passt eigentlich zur Frage.

Was du eigentlich wissen willst, ist die Programmierung von fertigen Industrierobotern, also richtigen Maschinen für den gewerblichen Gebrauch. Die baut man in der Regel nicht selber und wenn dann sicher nicht mit einem AVR-Controller. Das Selberbauen scheitert schon daran, dass Industrieroboter gewissen Sicherheitsvorschriften (z.B. DIN EN ISO 10218 ) genügen müssen. Programmiert werden solche Maschinen in speziellen, herstellereigenen, Programmiersprachen, wo es auch Datentypen für Punkte und Befehle fürs Greifen oder Steuern eines Schweißgerätes gibt. Nur sehr spezielle Industrieroboter für High-End-Anwendungen werden in allgemeinen Programmiersprachen wie C++ programmiert.

-schumi-
13.05.2012, 11:00
wie defininiert man dann die punkte, die der roboter anfahren soll und wie greift man darauf im programm zu?

In diesem Forum hier fängt man damit an, dass ein Pin eines Controllers (Eben meistens AVR) entweder 5V oder 0V ausgibt. Da bastelt man dann weitere Elektronik dran um z.B. ein Rad zu drehen. 2 Davon und du hast einen Roboter der fahren kann usw.

Was du suchst ist etwas fertiges, wo du dem Roboter nur noch sagst was du machen möchtest. In diesem Forum wird aber von ein paar Ebenen tiefer losgearbeitet. Wenn hier jemand einen Roboterarm baut, dann schreibt er sich seine eigenen Routinen wie er bestimmt Punkte anfahren kann (Und denkt sich die Formeln aus wie er das ausrechnen kann usw.)

5Volt-Junkie
13.05.2012, 11:29
wie defininiert man dann die punkte, die der roboter anfahren soll und wie greift man darauf im programm zu?

Da sind etwas Mathematikkentnisse gefragt (Trigonometrie / Winkelfunktion). Sagen wir mal, Du willst auf einem Blatt Papier was auf dem Tisch vor deinem Greifer liegt, einen schwarzen Punkt mit einem Stift zeichnen. Dann kannst Du Dir auf diesem Blatt ein Koordinatensystem vorstellen (X , Y). Aus diesen Koordinaten, muss man nun mit Hilfe der oben genannten Mathematik, die einzelnen Winkelpostionen deines Roboterarms berechnen. Steckt zwar etwas Aufwand dahinter, ist aber ein schönes Projekt ;)

Mxt
13.05.2012, 11:41
Übrigens kann man neuerdings auch mit einer S7 Industrieroboter programmieren, allerdings nur kleine z.B. für die Elektronikmontage:
http://www.pressebox.de/pressemeldungen/adept-technology-gmbh/boxid/491180

So etwas gibt es auch für andere SPSsen:
Yaskawa/Motoman Roboter und Schneider Electric SPS
Mitsubishi Electric SQ-Roboterserie und Melsec Q SPS
Stäubli Roboter und Keba Robotersteuerung mit CoDeSys SPS

Bei diesen SPS-Lösungen gibt es fertige Bausteine fürs SPS-Programm, um angeschlossene Arme zu bewegen.

Schweißroboter und erst recht Lackierroboter sind auch unter den Industrierobotern etwas spezielles, deren Software hat meist noch spezielle Erweiterungen für diese Aufgaben. Außerdem tragen normale Industrieroboter ihre Nutzlast meist mit der Hand. Schweißroboterarme sind stärker, um z.B. noch das Gewicht einer Schweißausrüstung am Arm zu tragen. Lackierroboterarme sind meist besonders leicht, weil sie außer der Sprühpistole und den Schläuchen nichts tragen müssen.

Calis007
13.05.2012, 11:44
"wie defininiert man dann die punkte, die der roboter anfahren soll und wie greift man darauf im programm zu?
ich habe gesehen dein link bietet ein getting-started,aber ich hatte noch nicht die zeit alles genau zu durchforsten, evtl wirds darin ja
erklärt, aber vllt kannst du mir darüber auch kurz auskunft geben!?"

Mein Arduino-Link ist in der Tat ein paar Ebenen unter Deiner Punkt-Abstraktionsebene angesiedelt. Da geht es darum, wie man einen Motor laufen laesst, wie man erkennt, in welcher Stellung ein Gelenk gerade ist usw. - ist fuer Dich nur dann interessant, wenn Du die Funktionalitaet auch auf dieser Ebene kennenlernen willst.
Auf Deiner Ebene (wo diese Dinge bereits alle 'automagisch' funktionieren) kann es z.B. einen 'teach-in'-Modus geben, wo Du die einzelnen Gelenke manuell steuerst, bis der gewuenschte Punkt erreicht ist, und der kann dann (mit den Daten aller Gelenke) abgespeichert und spaeter automatisch angefahren werden. Wenn der Roboter komplexer ist, kommen noch gewisse Einschraenkungen dazu, weil gewisse Bewegungen zwar theoretisch funktionieren, um von A nach B zu kommen, aber praktisch verhindert werden muessen, weil dabei das Ding mit sich selbst oder der Umgebung kollidiert ...
Fischertechnik ROBO TX Controller mit den Baukaesten Industry Robots und/oder Automation Robots geht da eher in diese Abstraktionsebene, die Programmierung ist ebenfalls graphisch/abstrakter als das, was in diesem Forum hauptsaechlich gemacht wird (C, Assembler, usw..). Der Haken an Fischertechnik ist allerdings der Preis - ein paar hundert Euro bist Du da schnell los - fuer recht gute mechanische Bauteilqualitaet bei (aus meiner Sicht) eher eingeschraenkter Programmierung (weil eben schon recht abstrakt).

Mxt
13.05.2012, 12:07
Da geht es darum, wie man einen Motor laufen laesst, wie man erkennt, in welcher Stellung ein Gelenk gerade ist usw. - ist fuer Dich nur dann interessant, wenn Du die Funktionalitaet auch auf dieser Ebene kennenlernen willst.

Da hast du zwar im Prinzip recht, aber im Falle des Schweißroboters ist man da mit einer S7 sicher näher an den Grundlagen. Große Roboter werden von Drehstrommotoren bewegt, die von Frequenzumrichtern angetrieben werden. Die benutzen aber auch SPS-Programmierer, um Maschinen zu bewegen.

Fabio1999
11.02.2020, 11:40
1. wie funktionieren roboterprogramme grundsätzlich? ich gehe mal schwer davon aus, dass punkte geteached werden müssen :o und diese werden dann im einfachsten fall, linear angefahren. nur wie sieht das in der praxis im programm bzw. im editor aus.

Roboterprogramme werden in der Sprache des jeweiligen Roboterherstellers programmiert:
- KUKA verwendet z.B. die "KUKA Robot Language" , kurz KRL.
- FANUC (als größter Hersteller weltweit) verwendet KAREL als Programmiersprache
- ABB wird in der Sprache "Rapid" programmiert
In allen Programmiersprachen gibt es Befehle für die Logik (Schleifen, Bedigungen), um Roboter in verschiedenen Bewegungsarten (LIN, d.h. linar, PTP, d.h. Point-to-Point) zu bewegen, einen digitalen Eingang oder Ausgang zu lesen oder zu schreiben, usw.




2. gibt es irgendwie die möglichkeit, z.b. durch einen demo-editor einblick in die programmierung und die syntax zu bekommen, ohne jetzt geld für software auszugeben.

ABB bietet z.B. seine Software zur Programmierung für 30 Tage kostenlos zum Download: https://new.abb.com/products/robotics/de/robotstudio/downloads
Anschließend gibt es z.B. hier Tutorials um mit der Programmierung eines Industrieroboters in einer virtuellen Umgebung (sogenannte:" Offline Roboter Programmierung") zu starten: https://new.abb.com/products/robotics/de/robotstudio/funktionsweise/getting-started Auch andere Hersteller bietet solche Programmiertools für Ihre Roboter an, häufig muss man für diese Software aber eine Lizenz kaufen oder die Lizenz ist beim Kauf eines Industrieroboters mit dabei.

In so einer virtuellen Umgebung kann man "Punkte teachen" ohne einen echten Roboter zur Verfügung zu haben. Später kann man das Programm von dieser Software auf den Roboter übertragen und die Punkte mit dem "Teach-Pendant" (dem Handbediengerät des Roboters) nachfahren und korrigieren. Viele Robotersteuerung haben auch einen expliziten Speicher für geteachte Punkte, d.h. man fährt nacheinander mit dem TeachPendant die Punkte im Raum an und speichert diese mit Namen auf der Steuerung. Im Roboterproramm muss man dann nur noch den Namen des Punktes eingeben und nicht mehr die genauen Koodrinaten. Ein Roboterpunkt wird übrigens "Pose" genannt. Eine Pose besteht auf einer Position in x,y,z (wobei verschiedenen Koordinatensysteme mit anderem Ursprung möglich sind) und Orientierung in Winkeln. Mehrere Posen werden als "Trajectorien" bezeichnet. Zwischen den verschiedenen Posen setzt der Bediener die gewünschte Geschwindigkeit und Beschleunigung der Bewegung des Roboters.

- Andere Möglichkeiten der Roboterprogrammierung sind Roboter Offline Programmier Software Tools wie z.B. Visual Components (https://www.visualcomponents.com/de/), in der sich ganze Fabriken virtuell abbilden lassen. Diese Software ist sehr umfangreich, teuer und deshalb für Profis, die täglich mit solchen Anlagen arbeiten.
- Auch haben viele Roboterhersteller Schnittstellen zu SPS Systemen, wie z.B. von KUKA MXautomation. (https://www.kuka.com/de-de/produkte-leistungen/robotersysteme/software/querschnittstechnologien/kuka-plc-mxautomation) Hier lassen sich die Bewegungen des Roboter auch durch die SPS steuern.
- Neu auf dem Markt sind Software Tools wie z.B. drag&bot (http://www.dragandbot.com/de/) die Online und Offline Programmierung vereinigen und abhängig von verschiedenen Robotermarken, besondern einfach zu verwenden sind.


kann man die programmierung überhaupt ohne grundkurse bzw aufbaukurse erlernen?

Prinziell kann man die Programmiersprachen auch selbst mit der Zeit erlernen. Wichtig ist ein gutes technisches Grundverständnis für den Aufbau von Industrierobotern. Mitlerweile gibt es viele Tutorials, Youtube Videos, etc. mit der man sich selbst die Grundlagen beibringen kann. Alle Roboter-Hersteller bieten außerdem auch mehrwöchtige Schulungen für Ihre Roboter an - allerdings gegen Bezahlung.

hbquax
11.02.2020, 22:09
Und in der Grundschule kann man die Groß- und Kleinschreibung lernen.

Hubert.G
12.02.2020, 08:30
Vielleicht übt er ohnehin schon seit acht Jahren.