Skip to content
This repository has been archived by the owner on Sep 11, 2021. It is now read-only.

gozhev/ins16

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(yet another prototype of)

Inertial Navigation System

Version: 2.2 2016-08-05

Release notes:

This version fully supports quaternion 3D calculations.

Version Notes
2.2 Math processing functions exported into separate file `engine.c`.
Calibration offsets & factors calculated with more precision
exclusively for my chip.
2.1 Added software low-pass filter.
Some how calculated accelerometer hardware zero offsets.
2.0 Introduced quaternion-based 3D rotation.

Images of new test placed at /nav/img.

There is still lack of any smart filters.

Sensors supported: Ivensense MPU-6050 only.

HW Connection: Sensor is connected to I2C-1 Bus, interrupt line is connected
to GPIO pin. See .dts file.

Sensor settings are hardcoded into driver.

TODO:

  • Introduce smart calibrations.
  • Add smart filter(s).
  • Export settings of sensor driver to sysfs.

List of directories:

  • ./nav -- userspace calculation program
  • ./drv -- sensor driver
  • ./ref -- reference materials
  • ./pub -- presentation, public speech
  • ./btn -- utility for demonstrtation, board-specific

Installation:

Copy mknod.sh to your board.
Edit device tree of your board to add mpu6050 sensor support.
Look in bcm2708-rpi-b.dts for reference.

On the host computer: go to ./drv, add you cross compiler to Makefile.
Run

$ make

Copy fast-mpu6050.ko to /lib/modules/<your kernel release>/extra on your board.

On your board:
Run

# depmod

Reboot.
After each reboot of your board you should run

# ./mknod.sh

in order to create /dev/mpu6050 node.

On the host: go to ./nav, add you cross compiler to Makefile.
Run

$ make PLATFORM=board

Copy nav to your board.

On the host:
Run

$ make

This makes the host version of nav. Use it to calculate trajectory.
Warning: this will rewrite cross-version of nav binary you've
compiled in previous step.

How to run program:

see ./nav/README.md


test_01