flynneva / bno055

ROS2 driver for Bosch BNO055 using UART or I2C
https://flynneva.github.io/bno055/
BSD 3-Clause "New" or "Revised" License
89 stars 52 forks source link

No covariances in output message #33

Closed MCFurry closed 2 years ago

MCFurry commented 2 years ago

Thanks for your great contribution with an updated ROS2 driver. Unfortunately it seems the output topic does not contain valid covariance values? This makes merging this imu's data in a robot_localization node impossible...

Would it be possible to add this?

github-actions[bot] commented 2 years ago

Thank you for creating your first issue on this repo! Give me some time to review and respond to your problem.

flynneva commented 2 years ago

@MCFurry thanks for the issue! from some quick googling it looks like in an older ROS 1 package someone added some covariance values they had calculated. Now I'm not sure how accurate they are...but maybe adding these in there would be better than nothing?

Interested to hear your thoughts!

flynneva commented 2 years ago

I think ideally these values should not be hard coded but calculated / calibrated on a unit by unit basis

flynneva commented 2 years ago

found a similar question on ROS answers with an interesting answer that points to a good article on how to calculate covariance values from a streaming data source.

Following this article we should be able to add some code to this repo and calculate covariance values accurately rather than hard coding them.

MCFurry commented 2 years ago

Indeed, something is definitely better than putting zeroes in the covariance matrix.

The article looks interesting! But what you also see a lot is that the calibrated standard deviations, either from datasheet or from calibration are taken as a constant covariance. These covariances are than exposed via parameter such that the user can decide to override them. For example after doing a fresh calibration while mounted. Example: https://github.com/bluespace-ai/bluespace_ai_xsens_ros_mti_driver/blob/b83d0ec260b870bd4efb50682c4c895a099f6dd6/param/xsens_mti_node.yaml#L49