Table of Contents |
---|
...
This manual applies to the following series devices:
LPMS-B2 Series | LPMS-U2 Series | LPMS-CURS2 Series |
LPMS-AL2 Series | LPMS-ME1 Series |
In this manual we will explain everything you need to know to set up the LPMS hardware, install its software and get started with integrating the sensor in your own software project. We have put a lot of effort into making the LPMS a great product, but we are always eager to improve and work on new developments. If you have any further questions or comments regarding this manual, please feel free to contact us anytime.
...
Internally LPMS has two different communication modes:
Mode | Description |
Command mode | In command mode the functionality of the sensor is accessed command-by-command. Measurement data is transferred from the sensor to the user by a special command. This mode is suitable for adjusting the parameter settings of the sensor and synchronized data-transfer. |
Streaming mode (default at power-on) | In streaming mode data is continuously sent from the sensor to the host. This mode is suitable for simple and high-speed data acquisition. Sensor parameters cannot be set in this mode. |
NOTE: The sensor is set to streaming mode by default after powering on. Command mode may be set via the corresponding LP-BUS command. The current operation mode can be saved into sensor flash memory. We will specify the available commands in detail later in this manual.
...
There are two options of communication with the Silabs IC:
By downloading a virtual com port driver (VCP): This driver allows you to see the LPMS as COM port in your operating system. All communication is done using standard COM port access procedures. The default connection baudrate is 912.6Kbit/s, 8N1, with hardware flow control.
By accessing the Silabs IC directly using a DLL library: Silabs offers a convenient library that allows users to communicate with their USB interface ICs.
NOTE: USB communication always uses the LP-BUS binary format for input / output.
...
CAN bus communication can be switched to one of the following formats:
CANopen (default) messages, output only
Sequential (custom) CAN messages, output only
LP-BUS binary format (LP-CAN)
NOTE: Format settings can be changed through LpmsControl application or direct LP-BUS communication commands.
...
RS-232 and TTL-level serial communication can be switched to one of the following formats:
LP-BUS binary (default)
ASCII plain text
NOTE: Format settings can be changed through the LpmsControl application or direct LP-BUS communication commands.
...
Rotation around global X, defined from -180 °...180 °
Rotation around Y, defined from -90 °...90 °
Rotation around Z, defined from -180 °...180 °
NOTE: Due to the definition of Euler angles there is a mathematical singularity when the sensor-fixed X-axis is pointing up or down in the global reference frame (i.e. pitch approaches+/-90). This singularity is not present in quaternion output.
Sensor Orientation Alignment Modes
...
Object reset
Often it is important that the global Z-axis remains along the vertical (defined by local gravity vector), but the global X-axis has to be in a particular direction. In this case a heading reset may be used. When performing a heading reset, the new global reference frame is chosen such that the global X-axis points in the direction of the sensor while keeping the global Z-axis vertical (along gravity, pointing upwards). In other words: The global Z-axis point upwards along gravity, where the X and Y axis orthogonally form a perpendicular plane.
NOTE: After a heading reset, the yaw may not be exactly zero, this occurs especially when the X-axis is close to the vertical. This is caused by the definition of the yaw when using Euler angles, which becomes unstable when the pitch approaches +/-90 deg.
Alignment reset
The alignment reset function aims to facilitate in aligning the LPMS coordinate frame (S) with the coordinate frame of the object to which the sensor is attached (O). After an alignment reset, the S coordinate frame is changed to S’ as follows:
The S’ Z-axis is the vertical (up) at time of reset
The S’ X-axis equals the S X-axis but projected on the new horizontal plane.
The S’ Y-axis is chosen as to obtain a right-handed coordinate frame.
NOTE: Once this alignment reset is done, both calibrated data and orientation will be output in the new coordinate frame (S’).
Object reset
The object reset aligns the LPMS coordinate frame to that of the object to which it is attached (see Figure 4). The sensor must be attached in such a way that the X-axis is in the XZ-plane of the object coordinate frame, i.e. the LPMS can be used to identify the X-axis of the object. To preserve the global vertical, the object must be oriented such that the object Z-axis is vertical. The alignment reset causes the new S’ coordinate frame and the object coordinate frame to be aligned.
...
Figure 4 - The object reset aligns the sensor coordinate system with the object coordinate system.
NOTE: Since the sensor X-axis is used to describe the direction of the object X-axis, the reset will not work if the sensor X-axis is aligned along the Z-axis of the object.
The object reset simply combines alignment reset and the heading reset at a single instant in time. This has the advantage that all coordinate systems can be aligned with a single action. Keep in mind that the new global reference X-axis (heading) is defined by the object X-axis (to which XZ-plane you have aligned the LPMSThe object reset aligns the LPMS coordinate frame to that of the object to which it is attached (see Figure 4). The sensor must be attached in such a way that the X-axis is in the XZ-plane of the object coordinate frame, i.e. the LPMS can be used to identify the X-axis of the object. To preserve the global vertical, the object must be oriented such that the object Z-axis is vertical. The alignment reset causes the new S’ coordinate frame and the object coordinate frame to be aligned.
...
Figure 4 - The object reset aligns the sensor coordinate system with the object coordinate system.
NOTE: Since the sensor X-axis is used to describe the direction of the object X-axis, the reset will not work if the sensor X-axis is aligned along the Z-axis of the object.
The object reset simply combines alignment reset and the heading reset at a single instant in time. This has the advantage that all coordinate systems can be aligned with a single action. Keep in mind that the new global reference X-axis (heading) is defined by the object X-axis (to which XZ-plane you have aligned the LPMS).
Heading reset
Often it is important that the global Z-axis remains along the vertical (defined by local gravity vector), but the global X-axis has to be in a particular direction. In this case a heading reset may be used. When performing a heading reset, the new global reference frame is chosen such that the global X-axis points in the direction of the sensor while keeping the global Z-axis vertical (along gravity, pointing upwards). In other words: The global Z-axis point upwards along gravity, where the X and Y axis orthogonally form a perpendicular plane.
NOTE: After a heading reset, the yaw may not be exactly zero, this occurs especially when the X-axis is close to the vertical. This is caused by the definition of the yaw when using Euler angles, which becomes unstable when the pitch approaches +/-90 deg.
Alignment reset
The alignment reset function aims to facilitate in aligning the LPMS coordinate frame (S) with the coordinate frame of the object to which the sensor is attached (O). After an alignment reset, the S coordinate frame is changed to S’ as follows:
The S’ Z-axis is the vertical (up) at time of reset
The S’ X-axis equals the S X-axis but projected on the new horizontal plane.
The S’ Y-axis is chosen as to obtain a right-handed coordinate frame.
NOTE: Once this alignment reset is done, both calibrated data and orientation will be output in the new coordinate frame (S’).
Data Acquisition
Raw Sensor Data
...
The selection of the right filter mode is essential for a good performance of the orientation calculation. The following filter modes are available:
Filter mode | Description |
Gyroscope only | This mode uses only gyroscope data to calculate sensor orientation. Pro: Very responsive, Low noise Con: Accumulating offset due to integration of gyroscope bias error |
Gyroscope + accelerometer (default mode) | Gyroscope-based orientation values are stabilized by accelerometer measurements in the pitch and roll axis. Pro: No drift on the pitch and roll axis Con: Drift on yaw axis, slightly longer stabilization times than pure gyroscope calculation Calculation method: Kalman filter |
Gyroscope + accelerometer + magnetometer | Gyroscope-based orientation values are stabilized by accelerometer measurements in the pitch and roll axis and by magnetometer measurements in the yaw axis. Pro: No drift on all axes, especially in noise-free environment Con: Prone to magnetic noise, slightly longer stabilization times than pure gyroscope calculation, calibration necessary Calculation method: Kalman filter |
Gyroscope + accelerometer (DCM) | Gyroscope-based orientation values are stabilized by accelerometer measurements in the pitch and roll axis. Calculation method: DCM filter |
Gyroscope + accelerometer + magnetometer (DCM) | Gyroscope-based orientation values are stabilized by accelerometer measurements in the pitch and roll axis and by magnetometer measurements in the yaw axis. Calculation method: DCM filter |
Magnetometer Correction Setting
The amount by which the magnetometer corrects the orientation output of the sensor is controlled by the magnetic correction settings. The following options are selectable through LpmsControl or directly through the firmware commands.
Parameter presets | Description |
Dynamic (default) | Magnetic correction is performed dynamically. The stronger the detected magnetic noise the less the sensor will rely on magnetometer data. |
Weak | Low reliance on magnetometer correction |
Medium | Medium reliance on magnetometer correction |
Strong | Strong reliance on magnetometer correction |
Acceleration Compensation Setting
...
Linear Acceleration Correction Settings
Parameter presets | Description |
Off | No linear acceleration correction |
Weak | Weak linear acceleration correction |
Medium (default) | Medium linear acceleration correction |
Strong | Strong linear acceleration correction |
Ultra | Very strong linear acceleration correction |
Rotational Acceleration Correction Settings
Parameter presets | Description |
Disable | No centripetal acceleration correction |
Enable (default) | Centripetal acceleration correction is on |
Gyroscope Threshold
This option has been deprecated with our latest sensor generation. This parameter option in LpmsControl has no effect on sensor output.
...
NOTE: For application cases that use LPMS to measure machine motion e.g. rotation of a robot arm, gyroscope auto-calibration might not work well. The autocalibration algorithm might detect a uniform rotation generated by a machine as a static state of the gyroscope and calibrate relative to that machine motion. This will lead to unpredictable results. Tests need to be performed with the actual application case to find out if autocalibration can be safely applied.
Parameter preset | Description |
Enable | Switch gyroscope auto-calibration on |
Disable | Switch gyroscope auto-calibration off |
Calibration Methods
Gyroscope Bias Calibration and Threshold
When the sensor is resting, the output data of the gyroscope should be close to 0. The raw data from the gyroscope sensor has a constant bias of a certain value. This is related to the mechanical structure of the gyroscope MEMS, which can slightly change its characteristics depending e.g. on the environment temperature. There are two ways to determine the gyroscope bias:
Automatic calibration: If the sensor is in a motion-less state for more than 7.5s the gyroscope bias will be automatically readjusted.
Manual calibration: To determine the bias value manually the following calibration procedure needs to be applied. Alternatively, to calibration from the LpmsControl application, the calibration can also be triggered through direct communication with the sensor.
Step | Description |
1 | Put the sensor in a resting (non-moving) position |
2 | Trigger the gyroscope calibration procedure either through a firmware command or using the “Calibrate gyroscope” function in LpmsControl software |
3 | The gyroscope calibration will take around 30s. After that the gyroscope is calibrated, normal operation can be resumed |
The gyroscope threshold will set up an angular speed limit, below which the LPMS will not process any motion data. This setting can be used to suppress noise or vibrations that might impact the sensor measurements. Users should be careful when applying this functionality, though, as motion information below the threshold will be lost and this might significantly reduce the accuracy of the overall orientation measurement.
...
During the magnetometer calibration the amount of this deformation as well as the average length of the magnetic field vector is calculated. This is usually also referred to as hard-iron and soft-iron calibration. These parameters are tuned automatically using the calibration procedures in the LpmsControl software:
Step | Description |
1 | Start the magnetometer calibration using the LpmsControl software (Calibration -> Calibrate mag.). |
2 | Follow the instructions of the calibration wizard. Rotate the sensor around its yaw axis for 2-3 rotations. |
3 | Rotate the sensor around its pitch axis for 2-3 rotations. |
4 | Rotate the sensor around its roll axis for 2-3 rotations. |
5 | Rotate the sensor randomly to acquire data as much as possible from different directions. |
6 | The collection of the field map data is finished after 40 seconds. This is followed by calculation of the geomagnetic field vector (local earth magnetic field inclination). Keep the sensor close to the calibration location and press the Next button in the calibration wizard. |
7 | After 10 seconds the calibration is complete. |
There are two methods for calibrating the hard iron offset and soft iron matrix:
Ellipsoid fit: Parameters are calculated by creating a map of the environment field and then fitting an ellipsoid through the point data. The point cloud after rotating the sensor around its axes should look like Figure 6.
Min / max fit: Parameters are calculated by measuring the minimum and maximum field values for each axis during the sensor rotation process. This method can in principle be used for planar magnetometer calibration. This is important in cases where the magnetometer is fixed to a reference frame that can’t be rotated around all axes e.g. a car.
NOTE: The calculations for the magnetometer calibration are currently executed within the LpSensor library running on the host. They can’t be triggered directly from communication commands on the sensor.