|
| 1 | +.. _common-external-ahrs-sensaition: |
| 2 | + |
| 3 | +============================== |
| 4 | +Kebni SensAItion External AHRS |
| 5 | +============================== |
| 6 | + |
| 7 | +The Kebni SensAItion range includes three sensor models: |
| 8 | + |
| 9 | +- **IMU**: Measures acceleration, rotation (gyro rates), magnetic field and air pressure |
| 10 | +- **AHRS**: As above, but also estimates the orientation (roll, pitch and yaw/heading) of the sensor |
| 11 | +- **INS**: As above, but with two built-in satellite navigation receivers to get position (using Fixed Base RTK for higher precision if provided with correction data), UTC time and heading (if using two antennas with a sufficient baseline between them) |
| 12 | + |
| 13 | +The SensAItion range of sensors contain high-performance gyros and accelerometers that are individually calibrated and |
| 14 | +temperature compensated for the interval -40 to +70 :math:`^\circ\text{C}` and thus do not need any warm-up period to |
| 15 | +provide precise measurements. The built-in sensor fusion engine also uses a barometer and magnetometer to improve the |
| 16 | +estimation of altitude and heading, respectively. The INS version of the sensor further includes satellite positioning |
| 17 | +in the sensor fusion, with precise internal synchronization between the satellite position fixes and the IMU measurements |
| 18 | +to get the best performance. |
| 19 | + |
| 20 | +For easier integration into various customer applications, each model exists in two hardware versions: |
| 21 | +a rugged version in an IP67 aluminium housing or a low-profile OEM version that can easily be mounted on an |
| 22 | +application-specific circuit board. Details and specifications for each model can be found on |
| 23 | +`Kebni's product homepage <https://www.kebni.com/products/inertial-sensing/sensaition-imu-ins/>`__. |
| 24 | + |
| 25 | +The SensAItion External AHRS driver can work in two modes: |
| 26 | + |
| 27 | +- **IMU**: It should be connected to the IMU or AHRS model of SensAItion and will feed raw sensor data to the ArduPilot EKF3 estimator, which will fuse it with GPS positions from another source and compute a navigation solution. |
| 28 | +- **Interleaved INS**: It should be connected to the INS model of SensAItion, which will run sensor fusion and provide a full navigation solution, replacing the EKF3 estimator. In order not to overload the serial port, the high-rate IMU messages are interleaved with lower-rate positions and orientations. This interleaving requires the sensor to have firmware version 2.69 or newer. |
| 29 | + |
| 30 | +Hardware setup |
| 31 | +============== |
| 32 | +Connect the SensAItion Data UART pins (TX, RX and ground) to an available serial port on the ArduPilot platform, |
| 33 | +such as GPS or TELEM. Power the sensor as described in the User Manual. |
| 34 | +Both the rugged and OEM version of the sensor have the required serial port connections available. |
| 35 | +Please note that the rugged sensor version has output voltage levels +/-5 V, |
| 36 | +while the OEM sensor version has output voltage levels of 0 and +3.3 V. |
| 37 | + |
| 38 | +The SensAItion sensor can be mounted in any orientation and the output can be rotated to match the local |
| 39 | +coordinate system if needed - see the configuration section below. |
| 40 | +As with any IMU, it is important to avoid excessive vibration levels and it is beneficial to use a |
| 41 | +mechanical damper between the sensor and the platform frame. |
| 42 | + |
| 43 | +Configuration of the sensor |
| 44 | +============================ |
| 45 | +The SensAItion sensor has a number of configuration registers that control the baudrate, output data format, |
| 46 | +coordinate system rotation and much more. The configuration registers can be read and written using |
| 47 | +a text-based protocol via the User UART port as described in the User Manual. |
| 48 | +But Kebni also provides, on request, the Kebni INSight graphical user interface that helps the user |
| 49 | +set all configuration registers and can also be used to read and plot sensor data and perform a magnetometer calibration. |
| 50 | +For complete control of the sensor configuration, it is recommended to use INSight. |
| 51 | + |
| 52 | +Contact `Kebni <https://www.kebni.com/contact/>`__ for access to the User Manual or Kebni INSight. |
| 53 | + |
| 54 | +To get started with the default configuration, it is sufficient to connect to the User UART port of the sensor with a terminal program. |
| 55 | + |
| 56 | +Start by doing a factory reset of all configuration registers, saving to flash and doing a reboot: |
| 57 | + |
| 58 | +.. code-block:: bash |
| 59 | +
|
| 60 | + $PKEBF*5A |
| 61 | + $PKEBS*4F |
| 62 | + $PKEBB*5E |
| 63 | +
|
| 64 | +After getting a reboot message from the sensor, send the following commands to enable Data UART output and set the baudrate to 460800: |
| 65 | + |
| 66 | +.. code-block:: bash |
| 67 | +
|
| 68 | + $PKEBW,7,2*4E |
| 69 | + $PKEBW,9,46080*48 |
| 70 | +
|
| 71 | +For an IMU or AHRS sensor, send the following command that sets an output rate of 1000 Hz and determines the contents of |
| 72 | +each message (acceleration, gyro rates, temperature, magnetic field and air pressure): |
| 73 | + |
| 74 | +.. code-block:: bash |
| 75 | +
|
| 76 | + $PKEBW,3,o0001s240030020010000130120110100230220210200330320310300430420410400530520510500910900A10A00B10B00C10C00D30D20D10D0x*1B |
| 77 | +
|
| 78 | +For an INS sensor, send the following command that interleaves IMU data at 500 Hz with AHRS and INS data at 100 Hz: |
| 79 | + |
| 80 | +.. code-block:: bash |
| 81 | +
|
| 82 | + $PKEBW,3,o0002i00R0B00F01F02F03F04F05F0930A30B30C30DFxo000Ai01R044CF4DF4EF4FFxo000Ai02R142BF2FF30131F32F33F34F36F35F40143F47545F46861F62F63F64F66F65Fx*XX |
| 83 | +
|
| 84 | +Then save the updated register values to flash and reboot to make them active: |
| 85 | + |
| 86 | +.. code-block:: bash |
| 87 | +
|
| 88 | + $PKEBS*4F |
| 89 | + $PKEBB*5E |
| 90 | +
|
| 91 | +
|
| 92 | +Configuration of ArduPilot |
| 93 | +========================== |
| 94 | +The following parameters must be set in IMU mode: |
| 95 | + |
| 96 | +=========================================== ======== =============================================== |
| 97 | +Parameter Value Comment |
| 98 | +=========================================== ======== =============================================== |
| 99 | +:ref:`EAHRS_TYPE<EAHRS_TYPE>` 11 Use SensAItion as external AHRS |
| 100 | +:ref:`EAHRS_SENSORS<EAHRS_SENSORS>` 14 Use IMU, barometer and compass |
| 101 | +:ref:`EAHRS_RATE<EAHRS_RATE>` 1000 Requested rate for AHRS device |
| 102 | +:ref:`EAHRS_OPTIONS<EAHRS_OPTIONS>` 0 0: IMU mode 4: INS mode |
| 103 | +:ref:`AHRS_EKF_TYPE<AHRS_EKF_TYPE>` 3 Use EKF3 for sensor fusion |
| 104 | +:ref:`SERIAL2_PROTOCOL<SERIAL2_PROTOCOL>` 36 External AHRS on TELEM 2 (change as needed) |
| 105 | +:ref:`SERIAL2_BAUD<SERIAL2_BAUD>` 460 460800 baud (change as needed) |
| 106 | +=========================================== ======== =============================================== |
| 107 | + |
| 108 | + |
| 109 | +The following parameters must be set in INS mode: |
| 110 | + |
| 111 | +=========================================== ======== =============================================== |
| 112 | +Parameter Value Comment |
| 113 | +=========================================== ======== =============================================== |
| 114 | +:ref:`EAHRS_TYPE<EAHRS_TYPE>` 11 Use SensAItion as external AHRS |
| 115 | +:ref:`EAHRS_SENSORS<EAHRS_SENSORS>` 15 Use GPS, IMU, barometer and compass |
| 116 | +:ref:`EAHRS_RATE<EAHRS_RATE>` 500 Requested rate for AHRS device |
| 117 | +:ref:`EAHRS_OPTIONS<EAHRS_OPTIONS>` 4 0: IMU mode 4: INS mode |
| 118 | +:ref:`AHRS_EKF_TYPE<AHRS_EKF_TYPE>` 11 Use External AHRS for sensor fusion |
| 119 | +:ref:`SERIAL2_PROTOCOL<SERIAL2_PROTOCOL>` 36 External AHRS on TELEM 2 (change as needed) |
| 120 | +:ref:`SERIAL2_BAUD<SERIAL2_BAUD>` 460 460800 baud (change as needed) |
| 121 | +=========================================== ======== =============================================== |
| 122 | + |
| 123 | +Also remember to build the ArduPilot binary with these flags: |
| 124 | + |
| 125 | +``--enable-AHRS_EXT --enable-EXTERNALAHRS_COMPASS --enable-EXTERNALAHRS_BARO``. |
0 commit comments