Jump to content

JPannetier

Members
  • Gesamte Inhalte

    7
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von JPannetier

  1. Hello everybody,

     

    I'm trying to implement a code (Python) to get position x y z from IMU Brick 2.0 accelerometer, in live mode.

    In the first step, I implemented the rotate accelerometer by quaternion to remove the gravity and rotation of my sensor.

    After i integrate directly to have velocity and position :

    example :

    Vx(k) = Vx(k-1)+Ax(k)*dt

    X(k) = X(k-1) + Vx(k)*dt 

     

    Nevertheless, into my accel. data I have an offset.

     

    Somebody would have already implemented this type of code to remove the offset (drift) ? to get the position

     

    I don't know if i must a kalman filter or other....

     

    Thank you

  2. I'm using a Brick IMU 2.0 with its example :

    https://www.tinkerforge.com/en/doc/Software/Bricks/IMUV2_Brick_Python.html#simple

     

    When I opened the source of Brick IMU 2.0, i can notice :

    Into communication.c :

     

    void get_quaternion(const ComType com, const GetQuaternion *data) {

    GetQuaternionReturn gqr;

     

    gqr.header        = data->header;

    gqr.header.length = sizeof(GetQuaternionReturn);

    gqr.x            = sensor_data.qua_x;

    gqr.y            = sensor_data.qua_y;

    gqr.z            = sensor_data.qua_z;

    gqr.w            = sensor_data.qua_w;

     

    send_blocking_with_timeout(&gqr, sizeof(GetQuaternionReturn), com);

    }

     

    And into communication.h

     

    typedef struct {

    MessageHeader header;

    int16_t w;

    int16_t x;

    int16_t y;

    int16_t z;

    } __attribute__((__packed__)) GetQuaternionReturn;

     

     

     

     

  3. Hello ,

     

    I'm using Python 3.6.

     

    I can run the example to emunerate my device.

    When I'm using example_simple.py from IMU brick 2.0.

    I have an error message from  imu.get_quaternion()

     

    in get_quaternion

        return GetQuaternion(*self.ipcon.send_request(self, BrickIMU.FUNCTION_GET_QUATERNION, (), '', 'f f f f'))

     

      File "C:\Users\JPannetier\Anaconda3\lib\site-packages\tinkerforge\ip_connection.py", line 1194, in send_request

        return unpack_payload(response[8:], form_ret)

     

      File "C:\Users\JPannetier\Anaconda3\lib\site-packages\tinkerforge\ip_connection.py", line 251, in unpack_payload

        x = struct.unpack(f, data[:length])

     

    error: unpack requires a buffer of 4 bytes

     

    Thank you

    Best regard

×
×
  • Neu erstellen...