For part of a project I'm starting, I want to use a 9-axis IMU. A while ago I would have gone for the MPU-9250, but it is now obsolete, and its replacement, the ICM-20948, isn't particularly well documented when it comes to the DMP (which looks like it will take a significant amount of reverse engineering to implement). It also requires an additional 1.8V power supply or regulator.
Is there a current popular choice when it comes to these sensors nowadays?
If anyone's interested, the project is a nerf battlesuit with shoulder-mounted guns which are aimed/fired by sensors on the wrist. I plan to use the IMU to track pitch and yaw for each wrist, but am aware that yaw can be prone to error/drift, which is why I'm hoping to find something with a DMP/quaternion capability.
Who knows InvenSense's motivations for making the chip obsolete; no, I can't get the piece from usual suppliers and I don't trust places like aliexpress for something I want to be fairly accurate.
9 axis IMUs are improving all the time and the market is competitive, so all the latest ones are pretty similar, and usually, are well documented.
Pololu is a good source of boards with the latest versions, and unlike the junk on eBay, their boards come with I/O voltage translation, so they can be used with 5V processors.
"Accuracy" depends on what you want to do and the firmware or software. The latter has not changed much recently.
Absolute Orientation (Euler Vector, 100Hz) Three axis orientation data based on a 360° sphere
Absolute Orientation (Quatenrion, 100Hz) Four point quaternion output for more accurate data manipulation
Angular Velocity Vector (100Hz) Three axis of 'rotation speed' in rad/s
Acceleration Vector (100Hz) Three axis of acceleration (gravity + linear motion) in m/s^2
Magnetic Field Strength Vector (20Hz) Three axis of magnetic field sensing in micro Tesla (uT)
Linear Acceleration Vector (100Hz) Three axis of linear acceleration data (acceleration minus gravity) in m/s^2
Gravity Vector (100Hz) Three axis of gravitational acceleration (minus any movement) in m/s^2
Temperature (1Hz) Ambient temperature in degrees celsius
I am currently using the MPU-6050 (i know, it's the granddaddy of the MPU-9250 but it works for my current project) however the BNO055 is definitely on my list for my future projects requiring 3D orientation. If you use an Arduino MKR board, you could also get the same sensor on an MKR IMU shield: Arduino MKR IMU Shield — Arduino Official Store
Or, you could also get the cheaper (but it also happens to have the lowest zero rate offset according to the Adafruit IMU's comparison: Overview | Comparing Gyroscope Datasheets | Adafruit Learning System) Adafruit Precision NXP 9-DOF Breakout Board - FXOS8700 + FXAS21002 if you want to offload your data processing to a microcontroller.