GithubHelp home page GithubHelp logo

bno055's People

Contributors

alvaroferran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bno055's Issues

Clarifications on BNO055 and its calibration.

Good day sir alvaro ferran,

As I was strolling your code here for BNO055 I notice that in your set up for "initBNO055", your OPRMode was modified in CONFIGMODE then set your own values like e.g: Ascale = 2g and Abw =ABW_31_25Hz. After that, you set your OPRMode in NDOF Mode at the end of the routine which NDOF Mode is under fusion mode.

Questions:

  1. How are you sure that the settled values before proceeding to NDOF Mode is not overwritten by its default sensor configuration?
  2. How can you write your own settled offsets gathered in calibration routines and not be overwritten by the sensor in fusion mode?

I've set my calibration before and would like to use this values so that I won't have to recalibrate the sensor every time it is powered on and perhaps use the NDOF feature of BNO055 but this limitations makes my goal hard in getting the navigational position in my project.

Regards,
mrrobles09

quaternion rotation backwards?

Hi,
If I understand correctly:

  1. The BNO055's linear acceleration output is in terms of the sensor's local frame XYZ axes, and the purpose of the readAbsAcc() function in BNO055.cpp is to rotate that linear acceleration vector into the absolute/global frame's XYZ axes.
  2. The quaternion output from the BNO055 represents the rotation that must be applied to a fixed initial vector (0,0,0) in the global frame in order to obtain the sensor's current orientation.
  3. When we "apply" a quaternion (q) rotation to a vector (v) by doing qv(q^-1) where (q^-1) is the conjugate of q, we rotate v by the rotation encoded in q.
  4. a rotation specified by quaternion q is the opposite of the rotation specified by conjugate (q^-1). I.e. if v2 = qv(q^-1), then (q^-1)v2q would be equal to v.

If the above are correct, then I think the readAbsAcc() function rotates the linear acceleration vector not back into the global frame but instead doubles the offset from the global frame.
If I am reading the function correctly, it multiplies qr(q^-1) where r is the linear acceleration vector. However, since q is the rotation from the initial (0,0,0) vector in the global frame to the current orientation, not the rotation needed to get to the initial vector in the global frame from the current orientation, I think the readAbsAcc() function instead needs to multiply (q^-1)rq.

I'm not 100% sure of this; please let me know if there is an error in my reasoning.
Thanks!

P.S. Thank you for posting your code! It's helped me a lot in understanding how to use the BNO055.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.