-         

Seite 6 von 6 ErsteErste ... 456
Ergebnis 51 bis 59 von 59

Thema: IMU Bosch BNO055 (z.B. Arduino, Raspberry Pi)

  1. #51
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    32
    Beiträge
    2.288
    Anzeige

    system("sudo ./brickdemon");
    sudo /etc/init.d/brickd start
    sudo /etc/init.d/brickd stop
    sudo /etc/init.d/brickd restart

    sudo apt-get install brickdemon
    das package ist leider meines wissens nach in keinem public repository, also musst du es schon mit wget laden, aber das ist standard bei allen linux distros

    Daher hier 2 Varianten, eine nach deinem Wunsch, welche vorraussetzt dass die deb file in einem bestimmten ordner liegt und die alternative variante die ähnlich simpel ist und genau so gut funktioniert

    Code:
    wget -P /var/cache/apt/archives/ http://download.tinkerforge.com/tools/brickd/linux/brickd_linux_latest_armhf.deb
    sudo apt-get install brickd_linux_latest_armhf
    
    ALTERNATIV
    
    wget http://download.tinkerforge.com/tools/brickd/linux/brickd_linux_latest_armhf.deb
    sudo dpkg -i brickd_linux_latest_armhf.deb
    sudo apt-get install -f

    .... ich lese meinen artikel und frage mich gerade warum ich mich früher immer so blöd angestellt habe .. es ist doch eigebntlich total einfach wenn man erstmal ein wenig in den dokus ließt ....



    PS: apt-get benutzt auch nur
    sudo dpkg im hintergrund, aber es lädt zusätzlich die abhängigkeiten mit runter

    in der alternativen version benutz ich den "wunderbefehl"
    sudo apt-get install -f ... den solltest du dir unbedingt merken, der reparieret kaputte package installationen (verbindungsverlust z.B. oder eben ein unvollständig installiertes .deb)


    ich spiele gerade auch mit dem gedanken die bridge komponente aus dem brickd source code zu extrahieren, aber das ist ein ganz schönes stück arbeit
    Geändert von Ceos (26.07.2017 um 11:15 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #52
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.226
    hallo,

    das hier einmalig in die Konsole zu copy-and-pasten ist ntl kein Problem:
    Code:
    wget -P /var/cache/apt/archives/ http://download.tinkerforge.com/tool...test_armhf.deb
    sudo apt-get install brickd_linux_latest_armhf
    diese Befehle hier für den Demon allerdings müssen intern von meinem C-Programm aus zugänglich sein, notfalls über den system execute cmd:
    sudo /etc/init.d/brickd start
    sudo /etc/init.d/brickd stop
    sudo /etc/init.d/brickd restart

    also z.B. bei Programmstart, am Anfang von main() :
    Code:
    system("sudo /etc/init.d/brickd start");
    und bei Programmende, am Ende von main(), direkt vor exit(0) :
    Code:
    system("sudo /etc/init.d/brickd stop");
    (sicher bin ich mir jetzt natürlich nicht, ob system von einem user Programm aus aufgerufen auch sudo Befehle für demons ausführen kann, das muss selbstverständlich klappen)

    wenn das alles ist und genau so auch sicher funktioniert, kein Problem!
    Wie genau pollt man dann die yaw- oder heading-Werte?

    Ganz ohne Demon wäre es mir allerdings sympathischer, klarer Fall...

  3. #53
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    32
    Beiträge
    2.288
    das sollte genau so funktionieren, testen kann cih es erst heute nachmittag

    daten habe ich auch schon gelesen, abe rich habe noch nichts konkretes was die ausrichtung angeht ... das demo tool wie gesagt zeigt dass der magnetfeldstörungen wohl ganz gut ignoriert
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #54
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    32
    Beiträge
    2.288
    tag 3 .... ich habe DOCH eine kaputte SDCard ... neue ist(edit: sind) bestellt ... grmpf (besser ich hab mal etwas reserve)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #55
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    32
    Beiträge
    2.288
    SDCards liegen jetzt beim Paketshop, da mein anderes Prjekt eh gerade einen Dämpfer abbekommen hat kann ich heute nochmal hieran arbeiten.

    @HaWe Messdaten habe ich unter Python übrigens schon erfolgreich ausgelesen, es kondensiert sich zu folgendem Code in C(ungetestet, das wollte ich heute ausprobieren, wenn ich dazu komme):

    Code:
    #include "ip_connection.h"
    #include "brick_imu_v2.h"
    
    typedef struct
    {
       float w;
       float x;
       float y;
       float z;
    }quaternion_s;
    
    
        quaternion_s q;
        // Create IP connection
        IPConnection ipcon;
        ipcon_create(&ipcon);
    
        // Create device object
        IMUV2 imu;
        imu_v2_create(&imu, UID, &ipcon);
    
        // Connect to brickd
        if(ipcon_connect(&ipcon, HOST, PORT) < 0) {
            fprintf(stderr, "Could not connect\n");
            return 1;
        }
        // Don't use device before ipcon is connected
    
        // Get current quaternion
        int16_t w, x, y, z;
        if(imu_v2_get_quaternion(&imu, &w, &x, &y, &z) < 0) {
            fprintf(stderr, "Could not get quaternion, probably timeout\n");
            return 1;
        }
        q.w = w/16383.0;
        q.x = x/16383.0;
        q.y = y/16383.0;
        q.z = z/16383.0;
    
        float yaw = atan2(2.0*(q.y*q.z + q.w*q.x), q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z);
    
        float pitch = asin(-2.0*(q.x*q.z - q.w*q.y));
    
        float roll = atan2(2.0*(q.x*q.y + q.w*q.z), q.w*q.w + q.x*q.x - q.y*q.y - q.z*q.z);
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  6. #56
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.226
    Zitat Zitat von Ceos Beitrag anzeigen
    SDCards liegen jetzt beim Paketshop, da mein anderes Prjekt eh gerade einen Dämpfer abbekommen hat kann ich heute nochmal hieran arbeiten.

    @HaWe Messdaten habe ich unter Python übrigens schon erfolgreich ausgelesen, es kondensiert sich zu folgendem Code in C(ungetestet, das wollte ich heute ausprobieren, wenn ich dazu komme):

    Code:
    #include "ip_connection.h"
    #include "brick_imu_v2.h"
    
    typedef struct
    {
       float w;
       float x;
       float y;
       float z;
    }quaternion_s;
    
    
        quaternion_s q;
        // Create IP connection
        IPConnection ipcon;
        ipcon_create(&ipcon);
    
        // Create device object
        IMUV2 imu;
        imu_v2_create(&imu, UID, &ipcon);
    
        // Connect to brickd
        if(ipcon_connect(&ipcon, HOST, PORT) < 0) {
            fprintf(stderr, "Could not connect\n");
            return 1;
        }
        // Don't use device before ipcon is connected
    
        // Get current quaternion
        int16_t w, x, y, z;
        if(imu_v2_get_quaternion(&imu, &w, &x, &y, &z) < 0) {
            fprintf(stderr, "Could not get quaternion, probably timeout\n");
            return 1;
        }
        q.w = w/16383.0;
        q.x = x/16383.0;
        q.y = y/16383.0;
        q.z = z/16383.0;
    
        float yaw = atan2(2.0*(q.y*q.z + q.w*q.x), q.w*q.w - q.x*q.x - q.y*q.y + q.z*q.z);
    
        float pitch = asin(-2.0*(q.x*q.z - q.w*q.y));
    
        float roll = atan2(2.0*(q.x*q.y + q.w*q.z), q.w*q.w + q.x*q.x - q.y*q.y - q.z*q.z);
    sieht ja echt schon ungeheuer vielversprechend aus! Bin extrem gespannt!

  7. #57
    Benutzer Stammmitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    36
    Wieso ruft ihr imu_v2_get_quaternion() auf und formt das in Euler-Winkel um anstatt direkt imu_v2_get_orientation() den Euler-Winkel auszulesen?

  8. #58
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    32
    Beiträge
    2.288
    wenn du mir erklärst was genau die in der doku mit dem gimballock meinen und warum sie dazu raten die quaternioen zu benutzen? wenn ich es recht verstehe, drehst du das ding auf hochkant und bekommst keine ausrichtugn mehr ... über die quaternionen soll dasd wohl nicht passieren, solange man die ausrichtung der achsen berücksichtigt ... meinem verständnis nach muss man das dann selber machen, weswegen ich den obigen ansatz verfolge ...

    denke ich habe das WE mal irgendwo zwit dazwischen um mich wieder ran zu setzen

    PS: nicht erklären was gimballock ist, sondern im konkreten kontext dieses sensors und warum sie davor warnen wenn nicht gemeint ist was ich gerade als annahme geschrieben habe
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  9. #59
    Benutzer Stammmitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    36
    Ja, die Quaternion-Darstellung ist ohne Gimbal Lock. Allerdings nur solange wie man bei Quaternionen bleibt, bei der Umrechnung in Euler verliert man deren Vorteile.

    Gimbal Lock ist in der Deutschen Wikipedia leider nicht mathematisch erklärt, bei Drehungen kann es zu Singularitäten (Sprünge bei einem Pitch von +90/-90°) kommen, Eine gute Erklärung kriege ich leider nicht hin, deswegen der Verweis auf [1].

    Der Punkt ist: Das Problem hat man (soweit ich das verstehe) bei Berechnungen, z.B. Gegeben ist eine Position A. Welche Drehung d muss ich anwenden um zu Position B zu kommen. Beim einfachen auslesen des aktuellen Winkels, um die Drehung im 3D-Raum zu lesen kommt es zu keinem Problem. Die Eulerwinkel des IMU Bricks 2 sind hier nicht besser oder schlechter als die Eulerwinkel anderer IMUs.

    [1] https://zfx.info/viewtopic.php?p=35924#p35924
    Geändert von Defiant (05.08.2017 um 10:45 Uhr)

Seite 6 von 6 ErsteErste ... 456

Ähnliche Themen

  1. IMU Bosch BMX055 (z.B. Arduino, Raspberry Pi)
    Von HaWe im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 17.07.2017, 11:47
  2. Funkfernsteuerung Arduino/Raspberry Pi
    Von Cysign im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 18.08.2016, 09:57
  3. Antworten: 24
    Letzter Beitrag: 25.05.2016, 18:18
  4. Buchvorstellung: Sensoren – Messen und experimentieren mit Arduino und Raspberry Pi
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 18.03.2016, 19:20
  5. Dreifach-Plattform verbindet Raspberry Pi, Arduino und 32-Bit Embedded ARM
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 08.05.2013, 11:10

Berechtigungen

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