Autonome Roboterlampe

  • Salu zusammen


    Nach einiger Zeit, in welcher ich mit anderen Projekten beschäftigt war, melde ich mich nun wieder einmal mit einem LED-Projekt zurück.


    Idee:
    Ich hatte schon lange die Idee eine autonome Roboterlampe zu designen. Was soll man sich jetzt darunter vorstellen? Schlussendlich handelt es sich um eine Lampe, welche auf einem Schienensystem, welches an der Decke montiert ist, entlang fahren kann. Ziel ist es, in einem langen Gang (ca. 7.5m) immer dort Licht zu haben, wo man sich gerade befindet.


    Dies kann in zwei unterschiedlichen Modi geschehen:


    1. Handsteuerung via Bluetooth über Mobiltelefon oder Tablet (Android)
    2. Autonome Steuerung: Die Lampe sucht sich bewegende Objekte und verfolgt diese.


    In einem ersten Schritt wurde ein mechanisches Modell mittels Sketchup erstellt. Die Teile wurden auf einer Fehlmann Fräs- Bohrmaschine in Eigenregie gefertigt. Als Drehbank stand eine alte Schäublin Drehbank zur Verfügung. Das Finish der mechanischen Teile wurde von Hand vorgenommen.
    Die Elektronik wurde mittels eines CAD-Systems gelayoutet und anschliessend mit einer Printfräse gefräst. Verzinnt, bestückt und gelötet wurde das PCB von Hand.




    Ausführung:
    Elektronik:
    Die Elektronik Hardware besteht aus folgenden Komponenten (kein Anspruch auf Vollständigkeit)


    - Mikrocontroller-Unit
    - Voll integrierte H-Brücke
    - Berührungsloser Rotary Encoder auf Hall-Basis
    - Motorstromsensor
    - DC-Getriebemotor (Untersetzung 5:1)
    - 3 Servokanäle um die Sensoren zu bewegen
    - 3 PIR-Bewegungsmelder
    - 3 Ultraschall-Sensoren
    - Temperatursensor um die Entfernungsmessung zu korrigieren
    - Bluegiga Bluetooth Modul zur Kommunikation mit einem Android Device (Mobiltelefon / Tablet ect.)
    - 3 Konstantstromquellen für die Power-LED (Recom RCD24)



    Die Sensoren sind jeweils paarweise angeordnet (PIR- & Ultraschallsensor). Diese Sensoreinheit wurde mittels einer Montageplatte mit den Servos verbunden. Die Sensoren können somit in einer Achse geschwenkt werden. Es befindet sich jeweils ein Sensorpaar hinten am Schlitten, vorne am Schlitten und eine Einheit ist nach unten gerichtet.
    Zur Regelung des Antriebs stehen zwei Sensoren zur Verfügung. Zum einen ein Rotary Encoder auf Hall-Basis (AS5115), zum anderen der Stromsensor (ACS714). Der Rotary Encoder ist ein Sin/Cos Encoder, welcher jeweils eine Periode pro Umdrehung ausgibt. Über die Phasenverschiebung der beiden Signale lassen sich der Drehwinkel, respektive die Winkelgeschwindigkeit herleiten. Hierzu musste auf die Motorwelle ein Diamagnet aufgebracht werden. Dieser wurde mittels eines nicht magnetisch leitenden Spacers montiert. Dies ist nötig, da sich die Feldlinien ansonsten nicht im IC schliessen, sondern über die magnetisch leitende Verbindung ausserhalb des IC. Der Stromsensor ist ein analoger Sensor, welcher auch High-Side eingesetzt werden kann (kein Massebezug nötig). Als Motorendstufe kommt eine voll integrierte H-Brücke von Freescale zur Anwendung (MC33886).


    Die Energieübertragung erfolgt von den Schienen auf den Schlitten mittels Kohlebürsten, Die Schienen haben auf der Innenseite ein Kupferprofil über welches die Energie bereitgestellt wird. Da diese Art der Energieübertragung diverse Störungen verursacht, wurde nach den Kohlebürsten ein mehrstufiges Filter eingebaut.



    Die Power LED sollen in drei Gruppen steuerbar sein. Diesbezüglich kommen drei Konstantstromquellen (350mA) der Firma Recom zum Einsatz. Somit können mit +24V Betriebsspannung 21 (3x7) warmweisse 1W LED betrieben werden. Die einzelnen Gruppen sind via Bluetooth Verbindung, aus der Android App heraus, dimmbar.



    Mechanik:
    Die Mechanik des Schlittens sieht auf den ersten Blick trivial aus, hat aber durchaus seine Tücken. Der Schlitten ist ca. 200mm lang und 100mm breit. Als Räder dienen Laufrollen aus POM, welche auf einem speziell für diese Rollen designten Profil laufen. Das Laufprofil ist aus eloxiertem Aluminium welches einseitig, seitlich einen Kupferstreifen zur Energieübertragung aufweist. Der Schlitten wurde als 4WD ausgeführt (einmal Quattro immer Quattro :o))


    Chassis:
    Das Chassis des Schlittens besteht aus Aluminium-Vierkantprofilen (10mmx20mm). Diese wurden gewählt um die Stabilität zu gewährleisten und weil diese Profile gut bearbeitbar sind. Es dient als Grundträger für alle weiteren Bauteile wie Motor, Encoder, Speisspannungsaufbereitung, Elektronik, die Lampe selbst, ect.



    Achsen und Zahnräder:
    Die Achsen des Schlittens wurden aus rostfreiem Stahl hergestellt. Die Querwellen, welche zu den Rädern führen, haben auf den äussersten Millimetern ein Aussengewinde. Die Felge der Laufrolle ein entsprechendes Innengewinde. Somit kann mit dem Anzugsmoment der Rollen, zu einem gewissen Mass das Lagerspiel eingestellt werden.
    Die Kraftübertragung erfolgt mittels Stahlzahnrädern. Der Abtrieb vom Motor zur Längswelle wurde mit zwei Stirnzahnrädern gelöst. Die Umlenkung auf die Querwellen mittels Kegelrädern. Die Übersetzung vom Motor bis zu den Rädern wurde 1:1 ausgeführt. Die eigentliche Untersetzung geschieht bereits im Motor. Dieser verfügt intern über ein Planetengetriebe mit der Untersetzung 5:1.


    Lagerung:
    Sämtliche Wellen und andere bewegliche Teile wurden zweifach kugelgelagert. Die Kugellager sind aus dem Modellbau und haben einen Aussendurchmesser von 10mm.


    Laufrollen und Felgen:
    Die Laufrollen sind aus zwei Teilen aufgebaut. Der umlaufende Körper ist aus POM gefertigt. Diesen Teil der Laufrolle erhält man als Kaufteil. Die „Felge“ der Laufrolle wurde selber auf der Drehbank aus Aluminium gedreht. Das Befestigen der Felge in der Rolle geschieht durch Verpressen der beiden Teile. Zur Sicherung des Ganzen wurde jeweils ein Sprengring pro Rolle verbaut.



    Laufprofil und Stromschiene:
    Das Laufprofil ist ein auf die Laufrolle speziell abgestimmtes Profil aus eloxiertem Aluminium. Auf einer Seite des Laufprofils wurde, mit speziellem Klebstoff, ein Kupferstreifen zur Energieübertragung aufgebracht. Die Schienen sind in einer Länge von jeweils 2.5m ausgeführt und müssen an den Verbindungsstellen zusammengesetzt werden.


    Energieübertragung:
    Die Energieübertragung erfolgt mittels Kohlebürsten, welche auf das Kupferprofil der Laufschiene drücken. Es sind jeweils drei Kohlebürsten pro Seite montiert. Diese Redundanz ist nötig, da nicht sichergestellt werden kann, dass die Kohlebürste immer in Kontakt mit der Stromschiene sind. Kurzzeitige Unterbrüche durch Verunreinigungen oder Unebenheiten sind nicht auszuschliessen. Die drei Kohlebürsten pro Seite werden jeweils zusammengefasst und auf eine Kupferschiene geleitet, welche sich auf dem Schlitten befindet. Diese Schienen sind untereinander sowie gegenüber dem Schlitten, isoliert ausgeführt. Jegliche Energie die der Schlitten und die Lampe benötigen, wird von diesen Schienen abgegriffen.


    Aufhängung Lampe und Federung:
    Die eigentliche Lampe hängt im Schwerpunkt des Schlittens nach unten gerichtet an einer beweglichen Verbindung. Da die Lampe ein gewisses Trägheitsmoment besitzt, würde bei starker Beschleunigung / Abbremsung, der Schlitten aus den Schienen springen. Um dies zu verhindern, wurde die Lampenbefestigung über Stossdämpfer, gegenüber dem Chassis gedämpft ausgeführt.



    Sensorhalter:
    Die Halter der Sensoren wurden aus Aluminiumblech gefräst und auf der Rückseite mit einem Winkel versehen. Somit können die Sensoreinheiten ohne Probleme an die Servohörner geschraubt werden.




    Projektstand:

    Zum heutigen Zeitpunkt ist das Roboterchassis fertig aufgebaut und fahrtüchtig. Die Schienen liegen bereits bereit um sie an die Decke zu montieren.
    Die eigentliche Lampe wurde jedoch noch nicht gefertigt. Diese wird ebenfalls selber designet und aufgebaut. Zurzeit sind sehr viele Ideen vorhanden, aber noch nicht entschieden welche es denn werden soll.



    Ich werde mich sicherlich melden wenn es weiter geht und die Lampe in der Entstehungsphase ist. Da ich jedoch vor kurzem einen neuen Job angefangen habe, ist Zeit im Moment ein bisschen Mangelware. Da das Projekt aber bereits einen gewissen Reifegrad hat, dachte ich, man kann es
    sicherlich einmal im derzeitigen Stand präsentieren.


    Gruss reflection

  • Der Nutzen mag zweifelhaft und der Aufwand enorm sein, aber es ist ein wirklich cooles Projekt! :D
    Ich bin extrem gespann wie sich das Ding nachher verhält.
    Abrupte Bewegungen lassen sich ja durch sanftes Anfahren und Halten vermeiden, plus einer art Hysterese, damit das Teil bei Stillstand oder kleinen Bewegungen des 'Verfolgten' nicht hin und her zuckt. ;)
    edit: Rechtschreibkorrektur 1. Versuch ^^

  • Abrubte Bewegungen lassen sich ja durch sanftes Anfahren und Halten vermeiden, plus einer art Hyterese, damit das Teil bei Stillstand oder kleinen Bewegungen des 'Verfolgten' nicht hin und her zuckt. ;)

    das ist ja auch plausibel und durchaus mit dem getriebemotor und der 5:1 untersetzung möglich. die frage ist nur, wie die grätsche zwischen "schlitten folgt schnell der bewegung" und "schlitten wird sanft angefahren und abgebremst" realisiert wird. sehr interessante problemstellung.
    :)


    ich überlege gerade, ob das mit den kohlebürsten ideal ist. ihr kennt doch die stromabnehmer bei der bahn... oder doch kohlebürsten, aber an den rädern, wie beiden modellbahnen.
    aber gut, da gibt es mit sicherheit einigeansätze, die reflection bestimmt schon durchdacht und verworfen hat.

  • die frage ist nur, wie die grätsche zwischen "schlitten folgt schnell der bewegung" und "schlitten wird sanft angefahren und abgebremst" realisiert wird. sehr interessante problemstellung.


    Jepp, so ganz trivial ist das nicht. Hängt auch davon ab wie und wie gut Position und Bewegung des Ziels erfasst werden können. Das wird sicher bisserl Hirnschmalz kosten. ;)
    Ich denke wenn das Ganze fertig gebaut ist wird sich recht schnell zeigen was mechanisch überhaupt machbar ist und was nicht.

  • Vielen Dank für die zahlreichen Antworten.


    Ja eigentlich ist die ganze Sache schon ein bisschen hirnrissig, aber das macht ja gerade den Reiz dieser Arbeit aus :D


    Wie ein Mensch grundsätzlich darauf reagieren wird, weiss ich nicht. Habe mir aber auch diese Gedanken gemacht. Unter Verfolgungswahn sollte man defintiv nicht leiden wenn man so eine Lampe hat :whistling: Ansonsten liebe Psychiater: Ich will auch einen Anteil von den Lampenverfolgten :P
    Voraussichtlich muss die Lampe sowieso relativ "gedämpft" reagieren. Voll dynamisch das Ganze zu machen wäre wohl übers Ziel hinausgeschossen.


    Eine Prioritätsregelung muss vermutlich ebenfalls implementiert werden. Es gibt hierzu mehrere Ansätze: Cool wäre es z.B. wenn mehrere Lampen auf derselben Schiene fahren würden und die Personen "übergeben" könnte. Ansonsten könnte man sich vorstellen, dass sich die Lampe genau zwischen den beiden Personen positioniert.


    Zur Stromübertragung: Ich habe mir hierzu einige Gedanken gemacht und diejenige mit den Kohlebürsten war diejenige welche am erfolgversprechendsten aussah. Abnehmer wie bei der Bahn sind fertig im Modellbau für diese Ströme nicht erhältlich, oder ich habe nichts gefunden. Da Elektromotoren (DC) sich aber durchaus in dieser Leistungsklasse bewegen, und dort ja auch die Energie über Kohlen übertragen wird, dachte ich es könne wohl nicht die schlechteste Umsetzung sein.


    Werde versuchen am Wochenende mal Bilder des Encoders reinzustellen und evtl. noch ein paar der Android App


    Grüessli


    reflection


    PS: Hier noch ein Bild des Encoders von vorne


  • Tolles Projekt! Manchmal muss man ja nicht irgendwas bauen, weil man es unbedingt braucht, sondern weil man es kann :)


    Kriegen wir später auch Codes von der Software zu sehen oder willst du die lieber für dich behalten? Die würden mich doch schon interessieren :P

  • Salu zusammen


    Melde ich mich auch wieder einmal mit dem neusten Stand des Projekts. In den letzten Tagen habe ich mich mit der Regelung des Schlittens befasst. An dieser Stelle ein herzliches Dankeschön an GYCH, welcher mir half dem Regler noch den letzten Feinschliff zu verpassen. Nun flitzt der Robi bereits wie verrückt über die Teststrecke. Leider ist diese viel zu kurz um endgültige Tests zu machen.


    Die nächsten Schritte des Projekts werden sein:


    - Schienensystem an Decke montieren
    - Lampe designen und fertigen


    Das Schienensystem an die Decke zu zimmern wird wohl noch eine ziemliche Herausforderung werden. Die Decke ist alles andere als gerade 8| Ich meine jetzt nicht einen Zentimeter auf 7m oder so, sondern ca. 5cm auf 3m. Somit komme ich wohl nicht darum herum verstellbare Halter zu fertigen


    Werde mich melden wenn es weiter geht


    Es Grüessli


    reflection

  • :D Ich bin schon froh wenn er fährt, der Looping wäre dann die Kür...


    Die Steigungen / Neigungen würden überhaupt nicht stören, aber es sieht einfach nur besch...."eiden" aus wenn das so krumm und schief an der Decke hängt. Darum will ich das Ausnivellieren damit die ganze Geschichte am Schluss pfeiffengerade an der Decke hängt 8) Er würde auch nicht langsamer / schneller werden, das korrigiert ja der Regler ;)


    Gruss

  • Salu zusammen


    Bin ich endlich einmal dazu gekommen, einige Screenshots der Android App zu machen.


    Funktionsweise:
    Wenn der Roboter mit Strom versorgt wird, befindet er sich zuerst in einem "sicheren" State. Er kann grundsätzlich nichts selber machen. In einem ersten Schritt verbindet man sich nun über die App via Bluetooth mit dem Roboter. Steht die Verbindung, wird der Roboter zuerst in den Hand Control Mode geschickt. Dies bedeutet, dass er lediglich auf Befehle aus der Android App heraus reagiert. Sozusagen eine Handsteuerung des Roboters. Dies kann jedoch direkt auf autonome Steuerung umgestellt werden. Dieses Vorgehen ist später im Betrieb sicherlich nicht gewünscht. Da die Software und Firmware aber noch in der Entwicklungsphase ist, ist dies der sicherste Weg.


    Hier nun ein paar Pics der Umgebung. Musste das im Emulator machen, auf dem Device sieht es noch ein bisschen schöner aus 8)






    Grüessli
    reflection

  • Salu zusammen


    Lange war es ruhig um mein Projekt. Das Problem liegt weniger am Projekt als an den äusseren Gegebenheiten... Vor gut einem Monat hatte mein direkter Nachbar im Haus das Gefühl er müsse die Hütte abfackeln. Tja, Brandschaden habe ich keinen, aber mein komplettes Arbeitszimmer ist abgesoffen ;( Den Roboter konnte ich gerade noch retten bevor ich das Haus verlassen musste.
    Nun bin ich nach einer neuen Wohnung am schauen, aber ob ich da dann wieder so einen prädestinierten, langen Gang haben werde bleibt offen. Hoffe ich kann den Robi dann doch mal irgendwann einsetzen und rumflitzen lassen :rolleyes: Wir werden sehen. Zurzeit liegt das Projekt aber auf Eis bis ich weiss wie es wohntechnisch weitergehen soll.


    Grüessli


    reflection