Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1dd5d74

Browse files
magnus-lindhe-kebniHwurzburg
authored andcommitted
Add description of using the Kebni SensAItion External AHRS
1 parent ebe7481 commit 1dd5d74

2 files changed

Lines changed: 131 additions & 1 deletion

File tree

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
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``.

common/source/docs/common-external-ahrs.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Currently, ArduPilot supports these systems:
1515
- `MicroStrain 3DM® Series <https://www.microstrain.com/inertial-sensors/all-sensors>`_
1616
- `Trimble PX-1 GSOF <https://applanix.trimble.com/en/hardware/trimble-px-1-rtx>`__
1717
- `VectorNav <https://www.vectornav.com/products>`__
18+
- `Kebni SensAItion <https://www.kebni.com/products/inertial-sensing/sensaition-imu-ins/>`__
1819

1920
Setup and Configuration
2021
=======================
@@ -31,6 +32,10 @@ If using 4.7 (or higher) and/or boards with less than 2MB flash, please use the
3132

3233
More instructions on using the :ref:`Custom Build Server can be found here <common-custom-firmware>`
3334

35+
Kebni SensAItion
36+
----------------
37+
Refer to :ref:`common-external-ahrs-sensaition` for details.
38+
3439
VectorNav
3540
---------
3641
Refer to :ref:`common-external-ahrs-vectornav` for setup.
@@ -105,4 +110,4 @@ With higher baud rates, MicroStrain7 should be suitable for Copter and QuadPlane
105110
:hidden:
106111

107112
common-external-ahrs-vectornav
108-
113+
common-external-ahrs-sensaition

0 commit comments

Comments
 (0)