Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
danke Euch für die positiven Rückmeldungen.
@Rabenauge:
Das mit dem kompletten Remote-Zugriff ist glaub ich etwas für später, wenn die Informationen, die der Roboter sammelt ausgewertet und Entscheidungen getroffen werden müssen, was passieren soll. Dann denke ich, dass es hier sinnvoll ist einen Rechner mit etwas mehr Rechenleistung in die Wohnung zu stellen, der dann als Master fungiert und dem Raspberry sagt was er zu tun hat. Aber danke für den Tipp, ich kann es mir schon mal anschauen. Ich benötige auch nur das Bild, da die Eingaben von Maus und Tastatur bereits per Funk arbeiten.
@oberallgeier:
Zitat:
1) Gibts Schätzungen/Testwerte über die Griff"kraft" der Finger?
2) Werte/Video über Krümmungsdauer und Strombedarf?
Die Motoren lassen einen Bereich von 4-12 V zu, wobei sie sich aufgrund der ganzen Mechanik erst ab 5,5 V bewegen. Beim Aufziehen der Bowdenzüge habe ich 8 V angelegt, wobei ich die Finger dabei noch von durch leichtes Halten von Hand stoppen konnte.
Wenn hier später (bis zu) 12 V anliegen sollten sie jedoch ausreichend Kraft haben, um die 2 kg, die die Drucksensoren auf jeder Fläche wiegen können, aufzubringen.
Mit 8 V dauert das Anwinkeln eines Fingers ca. 10 Sekunden. Da sich Aufgrund der Verluste bis 5,5 V noch nichts bewegt sollten es wenn nötig mit 12V wesentlich schneller gehen und etwa 5 Sekunden dauern. Der Daumen geht etwas schneller, da er nur 2 bewegliche Segmente hat und somit nicht so weit eingezogen werden muss. Den Strombedarf habe ich nicht gemessen.
Es sind vorerst 6 Akkupacks mit je 8,4 V und bis zu 4,6 A verfügbar. Diese sollen vorerst alle parallel geschalten werden, um möglichst viele Ampere für die Schrittmotoren zur Verfügung zu haben, so dass für eine flüssige Bewegung möglichst viele zeitgleich betrieben werden können. Bei einer höheren Spannung wären diese zwar reaktionsschneller sind bis sie ihren Phasenstrom erreicht haben, das ist jedoch egal, da sie nur bei einer niedrigen Drehzahl betrieben werden. Sollten es sich dann doch noch ergeben, dass eine höhere Spannung benötigt wird werden sie anders verschalten. Auf jeden Fall mache ich mir keine Sorgen was den Stromverbrauch für die Finger betrifft, da die Schrittmotoren die wesentlich größeren Verbraucher sind.
Zitat:
3) Welche Lebensdauer schätzt Du für Deine Elastikrückstellung?
Ich habe mir Deinen Roboter angeschaut, der ja auch schon alles Lebensnotwendige hat. Das Prinzip der Finger ist sehr ähnlich, da bei mir der Bowdenzug inzwischen auch die Schließkraft aufbringt und zum Öffnen nur den Draht ausschiebt. Auf Federelemente hab ich mittlerweile verzichtet, nachdem die Erstkonstruktion der Hand hier nach ein paar Bewegungen gebrochen ist und sich gezeigt hat, dass es durch das Aufschieben gar nicht nötig ist.
Anhang 35802
Die Greifkraft ist aber gut ausreichend, da nach dem Getriebemotor noch eine Spindel kommt, die den Litzenzug über eine geführte Mutter einzieht. Somit wird die Kraft hier noch um einiges Verstärkt. Die Fahnen an den Mutterblöcken sollen mit Lichtschranken an der Platine detektiert werden, so dass die Motoren hier nicht Ausversehen zu weit fahren, wenn beim Schließen keine Greifkraft detektiert wird. Im unteren Bereich der Spindel ist kein Gewinde, so dass man auch nicht zu weit vorfahren kann und der Bowdenzug irgendwo dumm gekickt wird.
Zitat:
4) Gibts Schätzwerte/Planungen zu Mannmonate für die Programmierung?
Was die Zeiten für die Programmierung betrifft kann ich es schwer abschätzen, da man bei einem solch offen gestalteten Projekt immer schwer sagen kann wann das Ziel erreicht ist. Von den beiden Technikern gibt es ja bereits ein Programm zur Ansteuerung der Schrittmotoren. Hierfür möchte ich die lokalen Microcontrollerprogramme noch so anpassen, dass die Positionseinlesung mit hinterlegt ist und auch Werte für Beschleunigung und Geschwindigkeit übergeben werden können. Wenn das soweit ist (was noch dauern wird, da erst noch Platinen gemacht werden müssen) kann noch die Benutzeroberfläche für die optimierten Eingaben angepasst werden.
Ziel ist es soweit zu kommen, dass man ihn dann gemütlich von der Benutzeroberfläche aus steuern kann. Hierzu muss erstmal die Positionsermittlung integriert sein. Wenn man ihn ohne steuert kann man die Aktoren zwar bewegen, bei den Beinen ist mir die Positionserkennung aber wichtig, da hier nichts schief gehn sollte. Wenn beim Arm was schief geht und er halt aufgrund der nicht detektierten Schrittverluste nach einer Weile falsch greift ist das nicht so wild, wie wenn ein Bein mit der Zeit weg läuft.
Wie es dann weiter geht, muss man schauen, da der Roboter dann erstmal seine Umgebung wahrnehmen können muss und ich noch keine Ahnung davon habe, wie man aus Bildern, die er sieht die Informationen zur Umgebung gewinnen kann.
Zitat:
5) Gibts (Schätz-)Werte zu Mannmonate für die Fertigung?
Bisher steckt schon einiges an Zeit in der Umsetzung. Für die Fertigung aller mechanischen Teile und den Zusammenbau habe ich etwa 700h gebraucht. Und dann haben die beiden Techniker noch die Zeit für ihre Abschlussarbeit aufgebracht um die Elektronik zu entwickeln, zu Programmieren und zusammen die Elektronik anzubringen.
Grüße
Marcel
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo Zusammen,
da nun wieder die Weihnachts- und Neujahrsbastelzeit ansteht habe ich mir vorgenommen wieder etwas an der Hardware weiter zu machen.
Der Roboter soll nun, nachdem er neue Finger hat, noch einen neuen Kopf bekommen. (Die Platine für die neue Hand ist noch nicht umgesetzt.)
Anhang 35854
Hierbei kommen noch einmal zwei Freiheitsgrade hinzu, mit welchen sich die Augen einzeln nach vorne und hinten Kippen lassen. Hierdurch soll es möglich sein, ohne Sicht auf den Roboter den Boden davor zu betrachten, so dass er Nichts aus Versehen wogegen stößt. Des weiteren sind noch vier Ultraschallsensoren angebracht mit welchen sich horizontal in Ausrichtung des Kopfes, bzw. 45° nach Unten und in Blickrichtung jedes Auges der Abstand messen lässt. Für die akustische Interaktion ist ein Lautsprecher vorgesehen.
Anhang 35855
Ebenso sollen noch zwei Mikrofone angebracht werden, mit welchen akustische Signale wahrgenommen werden können. Im Kopf selbst ist noch ein Raspberry untergebracht, welcher zur Kommunikation mit einem anderen Rechner dient. Somit können hier gesammelte Informationen vorbereitet werden, die dann auf einem leistungsstärkeren Rechner ausgewertet werden. Zur Verbindung sind Plätze für Antennen vorgesehen, wobei hier wahrscheinlich eine reicht.
Anhang 35856
Wenn die Hardware dann realisiert ist kann es mit der Software weiter gehen. Für die lokalen Schrittmotorsteuerung wird ein neues Programm entworfen, bei dem Einstellungen, sowie Einrichtparameter ebenfalls über den Bus übergeben werden können, so dass man sich hier nicht ständig an jeden einzelnen Mikrocontroller anstecken muss um etwas zu ändern.
Der Programmaufbau ist im Entwurf.
Dieses Programm soll dann in Verbindung mit der Benutzeroberfläche zur bequemeren manuellen Steuerung (leichter zu bedienende kombinierte Bewegungen anstatt einzelne Ansteuerungen wir bisher) realisiert werden.
Was die Auswertung der Sensordaten des Kopfes betrifft habe ich jemanden kennen gelernt, der sich mit Informationsgewinnung aus Rohdaten und Steuerung mittels neuronaler Netze beschäftigt und dann ab hier am Projekt mitmacht, da das großteils außerhalb meines Wissens liegt.
Wenn die Umgebungseindrücke dann sicher interpretiert werden können (was noch eine Weile dauern wird), kann man schauen wie die Informationen mit einem Verhaltensalgorithmus verknüpft werden.
In diesem Sinne euch Allen eine frohe Bastelzeit.
Grüße
Marcel
Liste der Anhänge anzeigen (Anzahl: 12)
Ein gutes Neues Jahr.
Mit den Überlegungen zu dem universal einrichtbaren Programm auf den Microcontrollern ist es etwas weiter gegangen. Das Konzept steht und sobald der neue Kopf fertig realisiert ist bekomme ich Unterstützung bei der Programmumsetzung.
Microcontroller-Variablen:
Anhang 35862
Anhang 35863
Anhang 35864
Auf dem Microcontroller sollen drei Programmschleifen laufen, die je nach Bedarf auf einzelne Unterprogramme zugreifen:
Main-Programm:
Mit dem Main-Programm findet die Initialisierung statt. Im Normalzustand hält es sich in Zyklus 3 auf und regelt somit immer auf den Sollwert, der von der Benutzeroberfläche aus neu beschrieben werden kann.
Wird die Geschwindigkeit geändert, so muss Zyklus 2 aufgerufen werden um diese in den Timer_Schritte zu schreiben.
Anhang 35865
LS-Interrupt:
Wird ausgelöst, wenn sich das Signal eines Lichtschrankenpins ändert.
Anhang 35866
Timer_Schritte: Beinhaltet das Programm für die Schrittsteuerung
Unterprogramme:
Lichtschrankenzuordnung initialisieren:
Zuordnung der Lichtschranken um die Steckplätze softwareseitig untereinander austauschen zu können.
Anhang 35867
Bereichsinitialisierung:
Zusammensetzung der Bereichskennung
Anhang 35868
Istposition setzen (am Übergang der Lichtschranken):
Beim Eintreten eines LS-Interrupts soll die Istposition mit dem jeweils hinterlegten LS-Übergangswertes beschrieben werden. Hierdurch werden zwischenzeitlich auftretende Schrittverluste kompensiert.
Ein Schreiben findet nur statt, wenn die Lichtschranken aktiv sind. Hierdurch lassen sich bei inaktiven Lichtschranken einfach die Zuordnungen der Lichtschrankeneingänge herausfinden.
Anhang 35869
Sollgeschwindigkeit als Intervall in Timer_Schritte schreiben:
Die Geschwindigkeit (n) soll als Umdrehungen pro Sekunde übergeben werden. Das Intervall (t) gibt an, alle wie viele Millisekunden der Timer einmal durchlaufen wird. Es sind 400 Schritte pro Umdrehung notwendig.
Anhang 35870
Richtungssteuerung:
Mit der Richtungssteuerung wird der CQ/CCW-Pin gesetzt. Des Weiteren werden die Endpositionen überprüft und verhindert, dass diese überfahren werden können.
Anhang 35871
Schrittsteuerung (auf dem Timer_Schritte):
Die Schritte werden entsprechend des eingestellten Timerintervalls weiter geschalten, solange der Enabled-Pin gesetzt ist.
Anhang 35872
Bereichszählung (ausgelöst vom LS-Interrupt):
Mit der Bereichszählung wird ermittelt, wie viele Schritte in einem Bereich liegen. Hierdurch kann der entsprechende Maßstab des jeweiligen Aktors einfach rekonstruiert werden.
Im Anschluss lassen sich die hierdurch festgelegen LS-Übergangspositionen (X1-X7) über die Einrichtadresse beschreiben.
Anhang 35873
Da nicht mehr als 12 Anhänge pro Beitrag möglich sind kommt hier eine Unterbrechung.
Liste der Anhänge anzeigen (Anzahl: 3)
Inkrementale_Schrittänderung:
Schreiben der Sollposition aus der Istposition mit der eingetragenen inkremental Änderung.
Anhang 35874
Istposition ermitteln:
Während der Initialisierung wird ermittelt ob die Istposition in der eingelesenen Bereichsabfrage liegt. Ist das der Fall wird die Istposition beibehalten. Andernfalls wird sie auf den Mittelwert des Bereichs gesetzt.
Anhang 35875
Benutzeroberfläche:
Vorgehen beim Einrichten eines Microcontrollers:
Anhang 35876
Das war es erstmal mit der Aufzeichnung der Überlegungen, bis es dann wieder etwas weiter gegangen ist.
Grüße
Marcel
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Zusammen,
hier mal wieder ein Zwischenstand.
Inzwischen sind die Materialien und Zukaufteile für die Realisierung des neuen Kopfes eingetroffen, so dass es hier voran gegangen ist:
Anhang 35903
Wenn noch die Schlitten für die Kippaktorik realisiert sind kann an den Kopf die Inbetriebnahme des Universalprogramms getestet werden.
Anhang 35904
Grüße
Marcel