{"id":2157,"date":"2015-04-24T11:52:49","date_gmt":"2015-04-24T09:52:49","guid":{"rendered":"http:\/\/www.litter.me\/wp\/?page_id=2157"},"modified":"2018-05-13T13:32:36","modified_gmt":"2018-05-13T11:32:36","slug":"gopro-gyro","status":"publish","type":"page","link":"https:\/\/www.litter.me\/?page_id=2157","title":{"rendered":"GoPro Gyro"},"content":{"rendered":"<p>Um die Bilder einer GoPro-Kamera zu stabilisieren, welche an einem Einleiner-Drachen angebracht ist, wurde die Idee einer kreiselstabilisierten Plattform geboren, welche es zudem erm\u00f6glicht die Kamera in drei Achsen zu positionieren.<\/p>\n<p>Das Ergebnis seht ihr im folgenden Konstruktionsrendering:<a href=\"http:\/\/www.litter.me\/wp\/wp-content\/uploads\/2015\/04\/Gyro_3D.jpg\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2179\" data-permalink=\"https:\/\/www.litter.me\/?attachment_id=2179\" data-orig-file=\"https:\/\/www.litter.me\/wp\/wp-content\/uploads\/2015\/04\/Gyro_3D.jpg\" data-orig-size=\"1436,1137\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Gyro_3D\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.litter.me\/wp\/wp-content\/uploads\/2015\/04\/Gyro_3D-970x768.jpg\" class=\" size-medium wp-image-2179 aligncenter\" src=\"http:\/\/www.litter.me\/wp\/wp-content\/uploads\/2015\/04\/Gyro_3D-300x238.jpg\" alt=\"Gyro_3D\" width=\"300\" height=\"238\" srcset=\"https:\/\/www.litter.me\/wp\/wp-content\/uploads\/2015\/04\/Gyro_3D-300x238.jpg 300w, https:\/\/www.litter.me\/wp\/wp-content\/uploads\/2015\/04\/Gyro_3D-970x768.jpg 970w, https:\/\/www.litter.me\/wp\/wp-content\/uploads\/2015\/04\/Gyro_3D.jpg 1436w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><br \/>\n<\/a><\/p>\n<h2>Verwendete Technik:<\/h2>\n<ul>\n<li>Raspberry PI 2B mit RT-Kernel Patch<\/li>\n<li>16 Kanal PWM Extension \u00fcber I2C<\/li>\n<li>Sensorik mit optischen Kreisel, barometrischem H\u00f6henmesser und Lagesensor, I2C<\/li>\n<li>3 Servomotoren<\/li>\n<li>Li-Ionen Akkupack<\/li>\n<li>3D-Druck f\u00fcr alle konstruierten Komponenten<\/li>\n<\/ul>\n<h2>Zusammenfassung<\/h2>\n<p>Hauptziel dieses Projektes war es alle Komponenten des Projektes selbst zu konstruieren, zu programmieren und zu bauen. Von der Installation eines Echtzeitbetriebssystems bis hin zum Jungfernflug auf dem Karibikt\u00f6rn (siehe\u00a0<a href=\"https:\/\/www.litter.me\/wp\/?page_id=2301\">Karibik-Segelt\u00f6rn<\/a>) konnte ich so einiges dazulernen und alte Kenntnisse wieder auffrischen.<\/p>\n<p>Einige Eckdaten:<\/p>\n<ul>\n<li>Konstruktion in SolidEdge<\/li>\n<li>Druck der Komponenten auf dem Ultimaker eines Freundes<\/li>\n<li>Implementierung der Treiberbibliotheken von Grund auf in C++<br \/>\nDie Lernkurve war hier etwas schleppend, da ich die I2C-Kommunikation und das lesen\/schreiben von Registern bisher nicht gemacht habe. Nach einigen Tagen Recherche und Lesen hats dann sehr gut geklappt.<\/li>\n<li>Umsetzung der Sensorfusion, Regelfunktionen und Filter ebenfalls in C++ (beispielsweise Driftkorrektur, etc.)<br \/>\nAn sich wollte ich die Regelung mittels Kalman-Filterung stabilisieren, jedoch muss ich ehrlich zugeben, dass mich das Ganze zu lange aufgehalten h\u00e4tte. Mir hat schlichtweg der Drive gefehlt mich in das Formelwerk so einzudenken, dass in meiner angepeilten Zeit was sinnvolles rausgekommen w\u00e4re. Aber es gibt ja auch einfachere Filternethoden, die bei geringer Komplexit\u00e4t auch gute Ergebnisse erzeugen. Wer wei\u00df, evtl. gibt es irgendwann mal eine Version 2.0 ;-).<\/li>\n<li>Implementierung von Softwarefunktionen und Regelung als Konsolen-Applikation in C++ unter Nutzung der RT-Funktionen im Kernel<\/li>\n<li>Konsolenmen\u00fc zur Parametrierung von Offset-Winkeln in allen 3 Achsen und Regelparametern \u00fcber WLAN<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Um die Bilder einer GoPro-Kamera zu stabilisieren, welche an einem Einleiner-Drachen angebracht ist, wurde die Idee einer kreiselstabilisierten Plattform geboren, welche es zudem erm\u00f6glicht die Kamera in drei Achsen zu positionieren. Das Ergebnis seht ihr im folgenden Konstruktionsrendering: Verwendete Technik: Raspberry PI 2B mit RT-Kernel Patch 16 Kanal PWM Extension \u00fcber I2C Sensorik mit optischen Kreisel, barometrischem H\u00f6henmesser und Lagesensor, I2C 3 Servomotoren Li-Ionen Akkupack 3D-Druck f\u00fcr alle konstruierten Komponenten Zusammenfassung Hauptziel dieses Projektes war es alle Komponenten des Projektes selbst zu konstruieren, zu programmieren und zu bauen. Von der Installation eines Echtzeitbetriebssystems bis hin zum Jungfernflug auf dem Karibikt\u00f6rn (siehe\u00a0Karibik-Segelt\u00f6rn) konnte ich so einiges dazulernen und alte Kenntnisse wieder auffrischen. Einige Eckdaten: Konstruktion in SolidEdge Druck der Komponenten auf dem Ultimaker eines Freundes Implementierung der Treiberbibliotheken von Grund auf in C++ Die Lernkurve war hier etwas schleppend, da ich die I2C-Kommunikation und das lesen\/schreiben von Registern bisher nicht gemacht habe. Nach einigen Tagen Recherche und Lesen hats dann sehr gut geklappt. Umsetzung der Sensorfusion, Regelfunktionen und Filter ebenfalls in C++ (beispielsweise Driftkorrektur, etc.) An sich wollte ich die Regelung mittels Kalman-Filterung stabilisieren, jedoch muss ich ehrlich zugeben, dass mich das Ganze zu lange aufgehalten h\u00e4tte. Mir hat schlichtweg der Drive gefehlt mich in das Formelwerk so einzudenken, dass in meiner angepeilten Zeit was sinnvolles rausgekommen w\u00e4re. Aber es gibt ja auch einfachere Filternethoden, die bei geringer Komplexit\u00e4t auch gute Ergebnisse erzeugen. Wer wei\u00df, evtl. gibt es irgendwann mal eine Version 2.0 ;-). Implementierung von Softwarefunktionen und Regelung als Konsolen-Applikation in C++ unter Nutzung der RT-Funktionen im Kernel Konsolenmen\u00fc zur Parametrierung von Offset-Winkeln in allen 3 Achsen und Regelparametern \u00fcber WLAN<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2159,"menu_order":0,"comment_status":"open","ping_status":"open","template":"template-centered.php","meta":{"_s2mail":"","footnotes":""},"class_list":["post-2157","page","type-page","status-publish","hentry"],"jetpack_shortlink":"https:\/\/wp.me\/P3wBN1-yN","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.litter.me\/index.php?rest_route=\/wp\/v2\/pages\/2157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.litter.me\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.litter.me\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.litter.me\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.litter.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2157"}],"version-history":[{"count":7,"href":"https:\/\/www.litter.me\/index.php?rest_route=\/wp\/v2\/pages\/2157\/revisions"}],"predecessor-version":[{"id":5036,"href":"https:\/\/www.litter.me\/index.php?rest_route=\/wp\/v2\/pages\/2157\/revisions\/5036"}],"up":[{"embeddable":true,"href":"https:\/\/www.litter.me\/index.php?rest_route=\/wp\/v2\/pages\/2159"}],"wp:attachment":[{"href":"https:\/\/www.litter.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}