Skip to content

Update IMU noise params for simulation #53

@2shaar2059

Description

@2shaar2059

I ran an Allan Variance analysis on the BNO085 gyro data. @perrintong325 collected the data.

Allan Variance Analysis output:
====================================================================================================
gyro_x
Estimated Bias: 705.698536811248 [deg/hr]
Estimated Angle Random walk:31.275580469753645 [(deg/hr) / sqrt(Hz)]
         <==> 978.1619337200357 [(deg/hr)^2 / Hz] or [(deg/hr)^2 * s]
         <==> 0.2717116482555655 [deg^2/hr]
         <==> 0.521259674495894 [deg/sqrt(hr)]
Estimated Angular Rate Random walk:2.0809041100619394 [((deg/hr)/s) / sqrt(Hz)]
         <==> 4.330161915272672 [((deg/hr)/s)^2/Hz] or [((deg/hr)/s)^2 * s] or [(deg/hr)^2 / s]
         <==> 15588.58289498162 [(deg/hr)^2 / hr]
         <==> 124.85424660371636 [(deg/hr) / sqrt(hr)]
====================================================================================================
gyro_y
Estimated Bias: -531.5969709753438 [deg/hr]
Estimated Angle Random walk:25.023971267068088 [(deg/hr) / sqrt(Hz)]
         <==> 626.1991379750492 [(deg/hr)^2 / Hz] or [(deg/hr)^2 * s]
         <==> 0.17394420499306923 [deg^2/hr]
         <==> 0.41706618778446813 [deg/sqrt(hr)]
Estimated Angular Rate Random walk:0.3242245968154019 [((deg/hr)/s) / sqrt(Hz)]
         <==> 0.10512158918010991 [((deg/hr)/s)^2/Hz] or [((deg/hr)/s)^2 * s] or [(deg/hr)^2 / s]
         <==> 378.4377210483957 [(deg/hr)^2 / hr]
         <==> 19.453475808924114 [(deg/hr) / sqrt(hr)]
====================================================================================================
gyro_z
Estimated Bias: 45.57008661175387 [deg/hr]
Estimated Angle Random walk:32.232438622600405 [(deg/hr) / sqrt(Hz)]
         <==> 1038.9300995597023 [(deg/hr)^2 / Hz] or [(deg/hr)^2 * s]
         <==> 0.28859169432213955 [deg^2/hr]
         <==> 0.5372073103766735 [deg/sqrt(hr)]
Estimated Angular Rate Random walk:0.4422940047256151 [((deg/hr)/s) / sqrt(Hz)]
         <==> 0.19562398661622243 [((deg/hr)/s)^2/Hz] or [((deg/hr)/s)^2 * s] or [(deg/hr)^2 / s]
         <==> 704.2463518184007 [(deg/hr)^2 / hr]
         <==> 26.537640283536906 [(deg/hr) / sqrt(hr)]
====================================================================================================

Measured Noise Ranges:

initial bias: -531 to 706 [deg/hr]
angle random walk: 0.4 to 0.5 [deg/sqrt(hr)]
rate random walk (angle random run): 19 to 125 [(deg/hr) / sqrt(hr)]

Suggested Noise dispersions in montecarlo:

initial_bias_range = np.deg2rad([-1000, 1000])/3600  # [rad/s]
sigma_v_range = np.deg2rad([0.5 / np.sqrt(60), 2.0 / np.sqrt(60)])  # [rad/sqrt(s)]
sigma_w_range = np.deg2rad([19 / np.sqrt(60), 500 / np.sqrt(60)])/3600  # [(rad/s)/sqrt(s))]

The consequential update is to sigma_w_range. Currently, params.yaml is too pessimistic/conservative on the minimum value for this parameter. The gyro bias was measured to be more stable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions