Geschrieben July 15, 2018 at 11:0015. Jul 2018 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
Geschrieben July 16, 2018 at 09:1816. Jul 2018 This isn't a Problem with Python 3.6. The Problem ist that you're using the IMU Brick (1.0) example with an IMU Brick 2.0. Try this example: https://www.tinkerforge.com/en/doc/Software/Bricks/IMUV2_Brick_Python.html#simple
Geschrieben July 16, 2018 at 10:0816. Jul 2018 Autor Hi Photron, Exactly. I have a IMU Brick 2.0. And I have this error when i'm using your example of IMU Brick 2.0.... Best regard
Geschrieben July 16, 2018 at 12:2116. Jul 2018 But it says "BrickIMU.FUNCTION_GET_QUATERNION" in your pasted error message. It should be "BrickIMUV2". Are you sure you are not using the IMU 1.0 example?
Geschrieben July 17, 2018 at 09:5017. Jul 2018 Autor 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;
Geschrieben July 17, 2018 at 10:0417. Jul 2018 The error message above comes from the IMU Brick 1.0 bindings. You can see it from the names and also because of the "f f f f", since the 1.0 IMU returned floats while the new one returns ints. Please download the example again from here https://www.tinkerforge.com/en/doc/Software/Bricks/IMUV2_Brick_Python.html#simple and try it again.
Geschrieben July 17, 2018 at 19:2917. Jul 2018 Autor Super, It's working now. Sorry for my mistake. Thank you very much for your support. Best regard Jérôme
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.