Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    Sensor for linear movement in two dimensions

    Sensor for linear movement in two dimensions

    Occasional Visitor


    I am looking for a sensor, with which ist is possible to measure the acceleration in two dimesnion. First i would like to describe the application:

    A carriage can be moved by linear motors in two ("horizontal") directions, indivudially or simultaneously. With the acceleration data, the best estimation of the position shall be calculated. Therefore it is necessary that the acceleration is only measured in the two directions.

    Because it is not possible, to mount the sensor exactly (sensor coordinatesystem equal to carriage coordinatesystem) I assume that there is "Sensor Fusion" or at least some calculations necessary.  As far as I know, to compensate gravity from the accelerometers as good a possible, there are gyros AND Magnetometers necessary.

    The output data rate (ODR) should be at least 400 Hz. The BNO-055 has 9 axes, but only a ODR auf 100 Hz. The BMI088 has higher ODR, but no magnetometers. I think the problem is, that it is not possible to build a magnetometer with higher ODR. Is this right?

    What is the best sensor to use for my application? What steps (calibration) has to been taken, to ensure that the acceleration measurement is as good as possible?

    I hope, somebody can help me.

    Thanks in advance


    1 REPLY 1

    Community Moderator
    Community Moderator


    Thanks for your inquiry.

    The carriage moves on a 2D plane. If it doesn't rotate clockwise or counter clockwise during movement, then you don't need gyro and magnetometer. A high performance 16-bit accelerometer BMA456 can output acceleration data up to 1600Hz. You can collect BMA456 data at 6 positions when the carriage is stationary at each position of x-up, x-down, y-up, y-down, z-up and z-down to determine the three offsets and 3x3 matrix for sensitivity and cross-axis sensitivity. You can search articles and sample code for accelerometer calibration online. Then you can apply this calibration 12 parameters to every BMA456 raw data to obtain the final compensated 2-axis acceleration.

    However, if the carriage rotates during the movement on 2D plane, then you can use BHI260AP that has 3-axis accel and 3-axis gyro inside. Then you can connect BMM150 magnetometer to BHI260AP's secondary I2C interface. BHI260AP has built-in sensor fusion algorithm running inside to output linear acceleration results up to 800Hz. When the carriage rotates, the gyro in BHI260AP takes the lead, while the external BMM150 updates at 25Hz. The purpose of the BMM150 is to bound the heading angle from gyro data. BHI260AP has built-in BMM150 auto-calibration algorithm by performing a few rounds of figure-8 motions in 3D space.