Wie real-life zu schaffen Roboter Stack-Überlauf

Noch bevor ich die Programmierung habe ich gelernt habe fasziniert, wie Roboter funktionieren könnte. Jetzt weiß ich, wie die zugrunde liegenden Programmierbefehle würden geschrieben, aber was ich nicht verstehe, ist, wie diese intructions durch den Roboter eingehalten werden.







Zum Beispiel schrieb, wenn ich diesen Code:

Schließlich, wo würde ich gehen, wenn ich lernen will, wie man einen Roboter zu schaffen?

In den meisten modernen Roboter würden Sie eine Inverse Kinematic Modell des Mechanismus haben, in diesem Fall den Arm, der die Raumkoordinaten in die Positionen für die Gelenke des Arms umsetzt. Diese Verbindungen sind in der Regel durch Servomotoren bewegt. Um sanft den Arm zu bewegen, müssen Sie eine Reihe von Zwischengelenkstellungen definieren den Pfad Sie den Arm folgen wollen. Sie müssen auch über die Geschwindigkeiten des Gelenkes sorgen, die zusammen die Geschwindigkeit der „Hand“ steuern am Ende des Armes.

Der wirkliche Spaß beginnt, wenn Sie für Hindernisse im Raum zu ermöglichen, haben rund um den Roboter. Sie müssen das Hindernis erkennen und herauszufinden, wie es zu vermeiden und immer noch das Ziel erreichen.

Am Ende hat etwas die hohe Level-Befehle in sehr niedrigen Niveau Befehle zu brechen. Es muss etwas übersetzen „Pick up the cup“, wie zu bewegen, um den Arm (was die Gelenke Winkel an sein sollte) auf die Hardware-Befehle, die tatsächlich die Motoren drehen.

Es gibt Rahmenbedingungen, die eine gewisse Menge dieser Übersetzung zu liefern versuchen, einschließlich (aber nicht beschränkt auf):

da Robotik-Forschung in jeder Schicht des Systems interessiert ist, jedoch gibt es nicht viele Systeme, die den gesamten Übersetzungsstapel liefern. Wenn Sie schauen, in in der Robotik bekommen, gibt es mehrere Systeme, die dies zu erleichtern versuchen (auch hier eine Stichprobe):

Sie sollten überprüfen Microsoft Robotics Studio (MRS). Sie haben viele Videos / Screencasts. und schriftliche Übungen. Darüber hinaus hat Channel9 viele Videos. Interviews, etc., auf dem robitics Thema. Einschließlich Demonstrationen und Interviews mit den Entwicklern von MRS.

Ich muss nur noch etwas über Arduino Projekte diesem hinzufügen, weil ich sehe nicht, es oben erwähnt wurde.

Es gibt einen sehr niedrigen Balken für den Eintritt in die Arduino basierten Robotik-Projekten. Die „Skizze“ Programme, die Sie für die Hardware schreiben sind sehr einfach zu C-Syntax holen und ähnliches. Wenn Sie wissen, dass Ihre Transistoren von Widerständen nicht zulassen, dass diese Boards noch Sie viel mit Plug-in-Hardware und zusätzlichem „Schutzschilde“ zu tun, die die Basis Computer-Board erweitern.

Es ist sehr lustig, sehr flexibel und etwas Code zu bekommen mit der realen Welt interagieren. Plus seine "Open Hardware" sehr entlang der Linien von Open-Source-Software.







Roboter werden durch die Interaktion mit Hardware arbeiten. Die Brücke aus dem Code wird oft durch verschiedene Arten von I / O-Ports erfolgen. Es könnte einfach ein RS232-Kabel zum Beispiel sein (Sie wissen schon, diesen alten COM1-Ports). Hardware-Teile werden durch Motoren (wie beispielsweise Servomotoren) zusammengesetzt sein und Sensoren (wie Ultraschall Hindernisse zu fühlen, Laser Abstand oder Schalter zu erhalten).

Sie brauchen nicht Assembler zu verwenden, das zu tun, es gibt viele Sprachen (wenn nicht die meisten), die es tun können, aber es erfordert Kenntnisse über den Umgang mit Hardware zu interagieren. Wie ein Treiber zu schreiben. Es erfordert zumindest grundlegende Elektronik auch, wenn Sie den Roboter selbst bauen wollen.

Wenn Sie interessiert sind, empfehle ich Ihnen einen Blick auf dieses Buch haben, die eine gute Grundierung ist.

Auch könnte man versuchen, einen Grund Stempel programmieren. Es ist ziemlich einfach, folgende die Tutorials und es wird Ihnen einen guten Start geben, wie Roboter zu bauen. Es ist nicht zu teuer, und Sie werden mit Hardware in kürzester Zeit zu interagieren.

Viel Glück und hab Spaß!

Ich teile die gleiche Juckreiz. Ich bin über meinen ersten Beagle Board und einige Sensoren / Servos kaufen, die den I2C-Bus nutzen können. Ich werde ein Event Driven Design und eine grobe Implementierung von Fasern zu verwenden (Fibrillen, wenn man so will), die User-Space-Threads sind.

Im Grunde genommen mein Design erfordert einen Prozess, der je Gruppe von Servos einen Thread startet. Jeder Gruppenleiter Thread starten x Anzahl der Fibrillen, 2 pro Servo (wahrscheinlich). Eine Fibrille wird verwendet, um die Servosteuerung, die anderen Fibrille Griff Ereignisse von diesem Servo (das heißt ein Objekt gerade zu schwer ist, zu holen, ein Gegenstand abgelegt wurde, etc).

Der Hauptprozess hat die Aufgabe, für die Ereignisse von allem hört anders und sicherstellen, dass die ‚rechte Hand weiß, was die linke tut‘, während nach vorn bewegt und Verhandlungs Hindernissen.

Sein Gehen, mir den größten Teil von zwei Jahren zu nehmen, etwas zu dem Punkt zum Laufen zu bringen, dass ich darauf stolz bin. aber ich erwarte viele angenehme Abende es zu diesem Punkt.

Ich werde sehr wahrscheinlich einen Mikrokernel verwenden, nicht Linux.

Ich tue dies, so viel ich mit ereignisgesteuerten Methoden zu schärfen sowie mein Wunsch, meine eigene R2 zu machen :)

Beginnen Sie mit Phidets, wenn Sie mit .NET vertraut sind. Sie können TrossenRobotics.com für Teile der Kasse.

Die Phidgets Interface Kit ist ein guter Anfang. Von dort können Sie einen Servo-Controller erhalten und Gebäude Dinge beginnen, die sich bewegen.

Die Trossen-Foren sind auch ein guter Ort, um andere Menschen Projekte zu überprüfen. Sie haben ein neues Data Center mit Code / Projektproben zu. Ich habe nicht für sie arbeiten. nur ein zufriedener Kunde.

Juni antwortete 8 '09 um 20:54 Uhr

Ist wahrscheinlich einfacher, eine höhere Programmiersprache bekommen den Roboter Verhalten und Intelligenz und lassen Sie die niedrigen Niveau Sprache auf die Aktionen beschreiben (move Arm, zu Fuß, Stop). Es gibt eine Menge Forschung in was BDI-Architektur für intelligente Agenten genannt wird, denn es ist Google.

viele gute Antworten hier. Ihr Stück Fantasie-Code ist nicht weit von, wie Sie in einer höheren Sprache tun würden, wie C # über MS Robotics Studio. Denken Sie auch daran, dass selbst einfache Dinge (wie „move Arm links“) sind sehr mit „Informationen bias“ geladen.

bis auf das Metall, ist ein Roboterarm eine Reihe von Links und [möglicherweise] motorisierte Gelenke. Daher „move Arm links“ (oder jeder Punkt in den Koordinaten) bereits eine sehr komplexe Aufgabe (sucht D-H Tabelle, vorwärts und inverse Kinematik für Manipulatoren) zu berechnen.

Es gibt auch das Konzept, dass Arm links bewegen annimmt, gibt es nichts in diesem Raum und eine Kollision nicht auftritt. Wenn die Umgebung ungezwungen ist, dann müssen Sie ein Kollisionserkennungssystem implementieren, die oft auf eine Art Sensor (Kamera) und Machine-Vision-Algorithmen.

Deine Antwort







In Verbindung stehende Artikel