- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 59

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    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...

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    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.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    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.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    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.

  5. #5
    HaWe
    Gast
    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!

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    183
    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?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    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.

Ähnliche Themen

  1. IMU Bosch BMX055 (z.B. Arduino, Raspberry Pi)
    Von HaWe im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 17.07.2017, 10:47
  2. Funkfernsteuerung Arduino/Raspberry Pi
    Von Cysign im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 18.08.2016, 08:57
  3. Antworten: 24
    Letzter Beitrag: 25.05.2016, 17: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, 18: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, 10:10

Berechtigungen

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

LiFePO4 Speicher Test