-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29

Thema: Zwei Roboterarme mit Kollisionserkennung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.07.2009
    Beiträge
    10

    Zwei Roboterarme mit Kollisionserkennung

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute, meine Projektidee sieht wie folgt aus, ist verdammt Ehrgeizig und in Anbetracht des fehlenden Knowhows (bis jetzt!) verdammt gewagt.

    Ich möchte gerne Zwei Roboterarme tanzen lassen und einen PC die Kollisionserkennung durchführen lassen um im Notfall das komplette System anzuhalten. Vielleicht bastel ich auch im laufe der Jahre nochmal ne komplette Produktionsstraße mit Hochregallager, aber das wird noch ein langer Weg sein.

    Zur verwendung kommen erstmal zwei Quickshot SVI 2000 (das Ding aus den 80ern zur Steuerung an damaligen 8-Bit rechnern vorgesehen).

    Was ich bisher gemacht habe:
    ASURO gebaut und ein wenig programmiert.
    8-Kanal Relaiskarte (von Pollin) gelötet.
    Optokoppler Steuerplatine für den Qucikshot gebaut.

    Anfangs wollte ich die Relaiskarte zur Stuerung des Quickshots zweckentfremden um diesen über den PC zu steuern. Hab ich damals auch gemacht, aber die Relaikarte hat ja schonmal zwei Relais zu wenig um alle 5 Achsen des Quickshot zu bewegen (es sei denn, man tüftelt und bastelt nen muxer).

    Hatte dann irgendwann die Optokopler Schaltung im Inet gefunden und diese dann verwendet.

    Die Stuerung verlief bisher über die parapin Bibliothek (bin reiner Linuxer). Im Grunde nix weiteres als "Strom liegt an Pin an, kein Strom liegt an Pin an". Also keine digitale Ein-/Ausgabe.

    Jetzt möchte ich den Arm aber noch mit einer Positionsbestimmung ausrüsten. Die Gelenk-Achsen werden dafür Potis bekommen. Für die Drehachse (dort gestaltet sich die anbringung des Potis schwieriger) habe ich nen guten Tip bekommen. Einen Wiederstandsdraht um die Grundplatte legen und einen Schleifer auf dem drehbaren Bereich befestigen. Quasi ein selbstgebautes Poti. Für das drehbare Handgelenk und den Greifer habe ich noch keine Idee. Warscheinlich werde ich den Greifer einfach mit zwei Tastern ausstatten und das Handgelenk mit der Odemetrie (die lichtschranken) des ASURO.

    Die Idee ist jetzt, dass mir diese neuen Sensoren immer einen digitalen Zahlenwert liefern, über den ich am PC den Zustand bestimmen kann. Es soll hier also wenig Intelligenz in die Mikroprocessor Steuerung implementiert werden. Ich studiere halt angewnadte und kiene technishe Informatik und bin dementsprechend schlecht in der E-Technik unterwegs. Ausserdem bin ich ein besserer Nachbastler als Entwickler von Schaltungen.

    Und da setzt es jetzt erstmal an:
    Wie erzeuge ich aus dem Potistrom jetzt ein Digitales Signal und wie greife ich dieses am Computer ab.

    Die Funktionsweise von nem Poti ist klar. Ich lege ne spannung an (zB. 5V) und schaue dann, wieviel am anderen Ende noch ankommt. Jenachdem, wie präzise so ein Teil nun werden kann, sollte mir das Poti am ende einen Digitalen wert zwischen 0-255 (oder, wenn's hinhaut 0-65535) liefern. Wie erzeuge ich jetzt diesen wert und an welcher Stelle im Rechner lese ich ihn ein? Optimal wäre natürlich auch noch eine Kalibrierung.
    Was ich wie gesagt bisher schon gemacht habe, war das Arbeiten mit der parapin Lib, die aber im Prinzip nichts anderes macht, als verschiedene Pins am Parallelport ein oder aus zu schalten. Welcher Port bietet sich an um kontinuierlich Daten zu empfangen? Schließlich sind die Roboterarme ja hinterher in Bewegung.
    Wie müsste eine Schaltung aussehen, die in kurzen Intervallen immer den Poti abzastet, dessen Wert in einen digitalen umwandelt und diesen dann sendet.

    Ich dachte da vielleicht an eine kleine Schaltung (erstmal nur für einen Poti zum üben) mit einem ATiny, die dann zwei Knöpfe bekommt, um den Poti zu Kalibrieren. Darüber sollte man dem Microprozessor dann die min und die max Stellung des Potis eingeben können.

    Bin ich da auf dem Holzweg, oder haut soetwas hin und wenn ja, wie fange ich da am besten an (Tutorials, fertige Schaltungen, Bausätze, Lernbaukästen)?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Einen Analogwert kannst du mit einem Analog Digital Converter (ADC) wandeln. Du köntest es auch mit einem Drehgeber (mit Impulsausgang oder Inkremental) arbeiten. Wie schnell sollen sich die Arme bewegen? Je schneller sich die Arme bewegen, desto schneller muss die Datenübretragung und Berechnung sein. Ich würde alles mit µC berechnen und nur die Vorgabe über den PC. Speziell dann, wenn du das Hochregal realisieren willst. Not aus würde ich immer einbauen, man kann nie wissen. Als erstes würde ich mir genau überlegen, wie du das realisieren willst. Rein mit µC, Sollwertvorgabe über PC und Berechnung mit µC, Vorgabe und berechnung über PC. Wenn du µCs verwenden willst musst du dir überlegen, welchen du nimmst (Atmega, PIC,... ). Danach richtet sich die Tutorials, etc. Es gibt sicher fertige Schaltungen. Du musst dir aauch überlegen, welche Antriebe du nimmst (Schrittmotor, BLDC, DC, Asynchronmaschine,...). Ich hoffe, dass es dir etwas hilft. Sonst viel Spaß und Erfolg bei diesem Projekt
    MfG Hannes

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    09.07.2009
    Beiträge
    10
    Meine IDee sieht eigentlich vor, dass der Computer ein 3D Modell (natürlich wesentlich gröber) in form von Vektoren vorhält und anhand des übermittelten Wertes bestimmen kann, um wieviel Grad eine Achse gerade gedreht wird. Nehme ich also Beispielweise die Werte 0-255 und kann einen Arm von Position 0Grad auf Position 90Grad fahren, dann weiß der Rechner, dass Beim Wert 128 (poti auf mittelstellung) der Arm auf 45Grad steht.

    Normalerweise werden die Qucikshots von alten Quickshot Joysticks gesteuert. Die Stuerplatine macht im Grunde nix anderes als Den Strom an den Moter entweder links rum, oder rechtrum oder garnicht abzugeben.

    Quasi, Steuerknüppel nach Links, Schalter schliest Stromkreis + | - am Motor, Steuerknüppel nach rechts, Schalter schließt Stromkreis - | + am Motor. Nichts anderes macht momentan die Parapinlib. Diese Schaltet Strom auf die Pins des Parallelports, der dann wiederum über die Optokoppler die entsprechenden Stromkreise für die Motordrehrichtung schließt.

    Mit Notaus meinte ich eigentlich nur, dass der rechner die beiden arme zufällig bewegen soll und dabei aber immer deren Position überwachen soll. Für den Fall, dass die arme sich in die Quere kommen, soll er das System anhalten.

    Später werde ich die Arme warscheinlich über die serielle Schnittstelle steuern müssen (oder über USB, falls es da schon Schaltungen gibt). Bis dahin ist aber noch ein langer Weg und ich muss erstmal das System begreifen.

    Also lieber erstmal einfach anfangen und irgendwie einen Potiewert digitalisieren und abfragen.

    Lässt sich soetwas zB. mit nem einfachen max232 erreichen, den ich dann per Programm abfrage? Ich würde dann quasi den aktuellen Wert einlesen, den Drehimpuls über parapin erteilen , lesen, lesen, lesen und wenn der gewünschte Wert erreicht ist, die Drehimpuls wieder stoppen.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    30.04.2008
    Beiträge
    81
    Hi, ich würde das wie mein vorredner auch machen (name unmerkbar).. also du gibst über deinen Computer die Befehle an einen µController, und der macht den rest.

    zB. sagst du dem µC also in regelmäßigen intervallen welchen wert welches gelenk haben soll und der µC guckt nun permanent, ob der Wert (den er kinderleicht über seinen Analog-Input bestimmt) kleiner oder größer ist als das soll und steuert die entsprechenden Relais an, um den Wert zu erreichen.

    weil bis du die daten digitalisiert und an deinen rechner übergeben hast und der gemerkt hat, dass er den wert erreicht hat, die daten wieder zurücksendet bist du schon zu weit "gefahren".

    also eine reine Executive seitens des µC. Alo wenn keine daten vom Computer mehr kommen, fährt er auch die letzte befohlene Position an und hält diese.

    Ich habe ja keine ahnung wie langsam der Arm werden soll.. aber Relais sind ein bisschen träge im Pegelwechsel.. denke da eher an Leistungselektronik...

    zu der Außlösung: Die meisten µC haben einen Analoginput mit 10Bit.. also Werte von 0-1023
    gibt aber auch 16-Bit

    Hoffe ich konnte helfen..

    Gruß Jango

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    19.11.2007
    Beiträge
    22
    Den µC kann man maximal als Schnittstelle zwischen PC und Hardware nutzen.

    Der PC "entscheidet" was getan werden soll und sagt dem µC welcher Motor wie lange oder wohin drehen soll.

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von BurningBen
    Registriert seit
    02.09.2008
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    842
    Das stimmt so nicht, der PC kann auch einfach nen Sollwert vorgeben, und der µC regelt so nach, das der Arm diesen Sollwert auch einhält

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    19.11.2007
    Beiträge
    22
    Und was stimmt an meiner Ausage nicht?

    Der PC "entscheidet", der µC führt aus.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    30.04.2008
    Beiträge
    81
    @ matthias : was an deiner aussage nicht stimmt ist: der PC muss nicht sagen was gemacht wird und wie lange der motor wohin gedreht wird, sondern die winkel vorgeben.. er muss nur sagen, wo die reise hingeht, nicht WIE.

    Sogar weiter: man gibt dem µC nur die Karthesischen Koordinaten und er errechnet die winkel und wie lange er welchen motor wohin ansteuert selbst..

    der µC kann WEIT aus mehr als nur als Schnittstelle agieren. wie bauen andere leute roboter nur mit µC, ohne PC ?? wenn es nur eine schnittstelle ist?

    Gruß Jango

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    19.11.2007
    Beiträge
    22
    Der PC "entscheidet", der µC führt aus.

    Es geht nicht darum das der PC sagt welcher Motor wie lange dreht, sondern das der PC entscheidet was getan wird und der Controller das ausführt.
    Es geht nicht darum ob er Controller irgendwas berechnen soll, sondern das er nicht alles berechnet.

    Ich bin eigendlich davon ausgegangen das hier jeder weiß das der Controller auch selbst Dinge wie Kennlinien, Position, ..., berechnen darf. ^^

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    30.04.2008
    Beiträge
    81
    "Der PC "entscheidet" was getan werden soll und sagt dem µC welcher Motor wie lange oder wohin drehen soll."

    deine worte

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •