Skip to content

1) Developers

7
  • 1) Welcome to Olive Robotics
  • 2) Quick Start
  • 3) FAQ​
  • 4) Linux
  • 5) Windows
  • 6) MacOS
  • 7) Supported Hardware

2) Hardware

6
  • 1) olixSense™ IMU
  • 2) olixVision™ Camera
  • 3) olixMotion™ Servo​
  • 4) olixCore™ EdgeIO
  • 5) olixGNX™ GNSS/INS
  • 6) olixEcho™ Sonar​

3) Software

12
  • 01) Patch Update​
  • 02) Firmware Releases​
  • 03) Web-based GUI​
  • 04) Examples / Apps
  • 05) SSH​
  • 06) Environment Variables​
  • 07) Network Configuration​
  • 09) Time Synchronization​
  • 10) Internet Sharing​
  • 11) Reset Factory​
  • 12) olixOS
  • 13) Configs

4) olixKits

2
  • 1) OWL Educational Kit​
  • 2) ANT Educational Kit​

5) ROS and Interoperability

9
  • 1) ROS 1
  • 2) ROS 2
  • 3) RQT
  • 4) RIG Reconfigure​
  • 5) Plot Juggler​
  • 6) RViz 2​
  • 7) Recording and playing​
  • 8) ROS 2 Bridge​
  • 9) Data Distribution Service (DDS) ​

6) Knowledge Base

6
  • 1) Accelerometers
  • 2) Gyroscopes
  • 3) Magnetometers
  • 4) Attitude & Heading Reference System (AHRS)
  • 5) Inertial Navigation System (INS)
  • 6) Sensor Fusion
  • Docs2
  • 2) Hardware
  • 1) olixSense™ IMU
View Categories

1) olixSense™ IMU

11 min read

Versions​ #

Product NameTypeGenerationProduct Number
olixSense X1USB-C
Dual Redundant
01OIMU-X1S-9DOF
olixSense X1USB-C
Dual Redundant
02OIMU-X1S-9DOF2
olixSense X1 ProUSB-C
Tripple Redundant
01OIMU-X1P-9DOF
Product NameTypeGenerationProduct Number
olixSense E1 ProEthernet
Tripple-Redundant
01OIMU-E1P-9DOF



OLVX™-IMU-X01-Gen1 (Deprecated)


OLVX™IMU-X01-Gen2 (Deprecated)

OLVX™IMU-X01-Pro

OLVX™IMU-E01-Pro

Sensor Details​ #

The OlixSense™ is a IMU sensor designed for use in robotics and other applications that require precise attitude and heading information. It uses a redundant 9 degree-of-freedom (DOF) sensor array, which provides accurate and stable measurements of orientation and angular velocity with a 3-axis gyroscope, 3-axis accelerometer, and 3-axis magnetometer.

Datasheet​ #

Download

Sensor System Architecture​ #

Components​ #

  • 3-axis gyroscope: The IMU module features a 3-axis gyroscope that provides accurate and reliable angular rate data in all three dimensions (x, y, z). This allows you to measure the orientation of the IMU module with respect to a fixed reference frame, and to track the changes in orientation over time.
  • 3-axis accelerometer: The IMU module also features a 3-axis accelerometer that provides accurate and reliable acceleration data in all three dimensions (x, y, z). This allows you to measure the linear acceleration of the IMU module with respect to a fixed reference frame, and to track the changes in linear acceleration over time.
  • 3-axis magnetometer: The IMU module also features a 3-axis magnetometer that provides accurate and reliable magnetic field data in all three dimensions (x, y, z). This allows you to measure the magnetic field of the IMU module with respect to a fixed reference frame, and to track the changes in magnetic field over time.

3D Coordinate System #



OLVX™-IMU-X01-Gen1 (Deprecated)

OLVX™IMU-X01-Gen2 (Deprecated)

OLVX™IMU-X01-Pro


OLVX™IMU-E01-Pro

Key Features​ #

  • 9-degree-of-freedom orientation and acceleration measurements
  • Maximum data rate of 1000 Hz
  • Attitude and heading reference system (AHRS)
  • Compact and lightweight design
  • USB Type-C and Ethernet over USB communication options
  • Out-of-the-box ROS1 (via bridge) & ROS2 (native) support

Technical Specifications​ #

OLVX™ IMU Technical Specifications​ #

General Specifications​ #

Part NumberOLVX™-IMU-U02X9D
Connection InterfaceUSB Type-C
Communication ProtocolROS 1&2 (Virtual Ethernet / IPV4)
Gyroscope Range± 2000 deg/sec
Accelerometer Range± 16 g
Magnetometer Range± 4 gauss
Sample Rate1000 Hz
Performance MetricsCovariance Matrix
Native ROS Messagessensor_msgs/Imu, sensor_msgs/Temperature
Operating Temperature0°C ~ 55°C

System Performance​ #

AHRS AccuracySpecification
Roll, Pitch (Static, AHRS Mode, Max Rate 100 Hz)0.42°
Roll, Pitch (Dynamic, AHRS Mode, Max Rate 100 Hz)0.85°
Roll, Pitch (Dynamic, IMU Mode, Max Rate 2000 Hz)1.05°
Heading (Static, AHRS Mode, Max Rate 100 Hz)±1.2°
Heading (Dynamic, AHRS Mode, Max Rate 100 Hz)±2.8°
Heading (Dynamic, IMU Mode, Max Rate 2000 Hz)±0.8° ±0.06 dps

IMU Sensor Details​ #

SpecificationAccelerometerGyroscopeMagnetometer
Range±4g, ±8g, ±16g±250°/s, ±500°/s, ±1000°/s±1300 µT
Resolution16-bit or 0.06 mg/LSB16-bit or 0.004 dps/LSB16-bit
Sensitivity2048 LSB/g @ ±16g262.1 LSB/dps @ ±125°/sec±0.3 µT
Sensitivity Tolerance±4% @ Ta = 25°C, gFS2g±3% @ Ta = 25°C, RFS2000±0.03% (API compensated)
Zero-rate Offset±20 mg±0.5 dps–
Output Noise Density160 µg/√Hz0.008 dps/√Hz–
Zero-g Offset (x, y, z)±150 mg (gFS2g, Ta=25°C)±3 dps–
Nonlinearity0.5% FS @ Ta=25°C0.01% FS1.2% FS

Interface Connection​ #

ParameterSpecification
ConnectorUSB Type-C
Communications InterfaceEthernet Over USB
Output Data Rate1-2000 Hz (Raw and Fused Data)
Protocols (DDS)rmw_fastrtps_cpp, rmw_cyclonedds_cpp (Upgradeable to rmw_connext_cpp & rmw_zenoh)

Physical and Electrical Characteristics​ #

ParameterSpecification
Weight32 g
Size40.0 mm x 40.0 mm x 10.0 mm
Power Consumption0.9 W (Typical), 1.8 W (Max)
Operating Voltage4.6 to 5.5 VDC (USB PD 2.0 Standard)
Operating Temperature0°C to 85°C
Interface LEDs3x (Heartbeat, User, System)

IMU Noise and Random Walk Parameters​ #

ParameterAHRSIMU
Accelerometer Noise Density150 µg/√Hz180 µg/√Hz
Accelerometer Random Walk0.04 m/s/√hr0.05 m/s/√hr
Gyroscope Noise Density0.03 °/s/√Hz0.01 °/s/√Hz
Gyroscope Random Walk1.5 °/hr/√Hz1.0 °/hr/√Hz

Demo​ #

Unboxing​ #

Setup and Test:​ #

  1. Follow the Quick Start Guide for Olive Robotics robot modules to connect the device and start using it.
  2. For more information about the IMU setup and user interface, refer to the demonstration below:
  3. When the IMU module is correctly connected to your system, you can check that the expected ros topics are present.
    • On your host PC run:
      • ros2 topic list
    • The following ROS topics should be shown:
  • Patch 1733
  • Patch >1787
  • /olive/imu/id001/filtered_imu
  • /olive/imu/id001/filtered_ahrs
  • /olive/imu/id001/linear_accel
  • /olive/imu/id001/magnetometer
  • /olive/imu/id001/status
  • /olive/imu/id001/temperature
  • /olive/imu/id001/twist
  • /olive/imu/id001/feedback
  • /tf
  • /olive/imu/id001/mpu
  • /olive/imu/id001/ahrs
  • /olive/imu/id001/acceleration
  • /olive/imu/id001/magneticfield
  • /olive/imu/id001/status
  • /olive/imu/id001/temperature
  • /olive/imu/id001/velocity
  • /olive/imu/id001/feedback
  • /tf

The number id001 is your device’s default namespace.

By default, the magnetometer is disabled, making the sensor output relative. To enable the magnetometer and perform calculations based on magnetometer calibration, set the operation_mode parameter to AHRS+ / AHRS

  1. All topics shown are publishers, meaning that they publish data to the ROS network. In the command line interface you can verify that they are in fact publishing data using for example:
    • ros2 topic echo /olive/imu/id001/filtered_ahrs
  2. Visualize the data using:
    1. Embedded Web Interface (https://olive-robotics.com/docs2/olive-embedded-web-based-gui/)
    2. rqt (https://olive-robotics.com/docs2/ros-rqt-interface/)
    3. rviz2 (https://olive-robotics.com/docs2/rviz-2/).
  3. Visualize the data and change the parameters like IP, Topic Name, etc using the embedded web interface. You just need to open your browser on your host computer and enter the IP address of the device. If you didn’t change the default IP address, then it must be 192.168.7.100.

ROS Topics and Services​ #

Topics #

  • Patch 1733
  • Patch >1787
Topic NameMessage TypeTypeDescription
/filtered_ahrssensor_msgs/ImuPublisherAHRS optimized acc/gyro/quaternion
/filtered_imusensor_msgs/ImuPublisherHigh dynamic
acc/gyro/quaternion
/linear_accelgeometry_msgs/msg/AccelStampedPublisherGravity compensated acceleration
/magnetometersensor_msgs/MagneticFieldPublisherMessured magnetic field
/statusdiagnostic_msgs/DiagnosticStatusPublisherDevice status
/feedbackstd_msgs/msg/Float32MultiArrayPublisherSensor IO loops
/temperaturesensor_msgs/msg/TemperaturePublisherSensor temperature
/posegeometry_msgs/msg/PoseStampedPublisher3D Position (Estimation)
/twistgeometry_msgs/msg/TwistStampedPublisher3D Velocity
(Estimation)
/tftf2_msgs/msg/TFMessagePublisherTF

filtered_AHRS: This provides improved quaternion calculations (roll, pitch, yaw), making it more robust against drift and vibrations. It operates efficiently at up to 100 Hz.

filtered_IMU: This topic is optimized for higher sample rates, up to 2000 Hz, focusing on minimizing latency and improving accuracy in accelerometer and gyroscope data.

Summary:

  • If high sample rate and sensor accuracy are important: use filtered_IMU.
  • If roll, pitch, and yaw are critical: use filtered_AHRS.
Topic NameMessage TypeTypeDescription
/ahrssensor_msgs/ImuPublisherAHRS optimized acc/gyro/quaternion
/mpusensor_msgs/ImuPublisherHigh dynamic
acc/gyro/quaternion
/accelerationgeometry_msgs/msg/AccelStampedPublisherGravity compensated acceleration
/magneticfieldsensor_msgs/MagneticFieldPublisherMessured magnetic field
/statusdiagnostic_msgs/DiagnosticStatusPublisherDevice status
/feedbackstd_msgs/msg/Float32MultiArrayPublisherSensor IO loops
/temperaturesensor_msgs/msg/TemperaturePublisherSensor temperature
/posegeometry_msgs/msg/PoseStampedPublisher3D Position (Estimation)
/velocitygeometry_msgs/msg/TwistStampedPublisher3D Velocity
(Estimation)
/tftf2_msgs/msg/TFMessagePublisherTF

AHRS: This provides improved quaternion calculations (roll, pitch, yaw), making it more robust against drift and vibrations. It operates efficiently at up to 100 Hz.

MPU: This topic is optimized for higher sample rates, up to 2000 Hz, focusing on minimizing latency and improving accuracy in accelerometer and gyroscope data.

Summary:

  • If high sample rate and sensor accuracy are important: use MPU.
  • If roll, pitch, and yaw are critical: use AHRS.

Services​ #

Service NameService TypeTypeDescription
/setBiasstd_srvs/srv/TriggerServiceCalibrating the sensor’s bias offset values
/setZeroQuaternionstd_srvs/srv/TriggerServiceResetting the sensor’s rotation axis
/setZeroPosestd_srvs/srv/TriggerServiceResetting the sensor’s position estimation

Calibrating the sensor’s bias offset values: #

By calling the setBias service or triggering it from the GUI, the sensor will collect bias values to minimize the zero offset. During this process, please ensure that the sensor remains completely stable and is not moving. It is also important to call the service when the sensor is placed in the correct Orientation: the Olive logo facing up and the four screw holes facing down.

Resetting the sensor’s rotation axis:​ #

The gain effect of the low-pass filter:​ #

Advanced Settings​ #

The device allows certain parameters to be changed at runtime. To get an overview of all changeable parameters use 

ros2 param list

To change a parameter use 

ros2 param set /dcm_imu <parameter> <new_value>

IMU Parameters #

​

NameDescriptionTypeDefault ValueRange / Options
operation_modeChange sensor operation mode: AHRS-, AHRS, AHRS+.stringAHRS-AHRS- | AHRS | AHRS+
enable_tf_publisherPublish a dedicated tf with respect to filtered IMU data.booltrue–
enable_fusion_publisherActivate the fusion data publisher.booltrue–
enable_linear_acc_publisherActivate the linear gravity-compensated accelerometer publisher.booltrue–
enable_startup_zero_quaternionReset quaternion on system startup.booltrue–
enable_ahrs_publisherActivate the filtered AHRS data publisher.booltrue–
ahrs_publish_ratePublish rate for filtered AHRS data.int100[0, 100] Hz
enable_temperature_publisherActivate the temperature data publisher.booltrue–
enable_twist_publisherActivate the twist (velocity) data publisher.booltrue–
imu_acc_cutoff_frequencyIMU accelerometer cutoff frequency (0 disables).double100.0[0, 500] Hz
imu_acc_ema_gainEMA gain for IMU accelerometer (0 disables).double0.9[0, 1]
imu_gyro_cutoff_frequencyIMU gyroscope cutoff frequency (0 disables).double100.0[0, 500] Hz
imu_gyro_ema_gainEMA gain for IMU gyroscope (0 disables).double0.9[0, 1]
ahrs_acc_cutoff_frequencyAHRS accelerometer cutoff frequency (0 disables).double100.0[0, 500] Hz
ahrs_acc_ema_gainEMA gain for AHRS accelerometer (0 disables).double0.5[0, 1]
ahrs_gyro_cutoff_frequencyAHRS gyroscope cutoff frequency (0 disables).double100.0[0, 500] Hz
ahrs_gyro_ema_gainEMA gain for AHRS gyroscope (0 disables).double0.5[0, 1]
ahrs_mag_cutoff_frequencyAHRS magnetometer cutoff frequency (0 disables).double100.0[0, 500] Hz
ahrs_mag_ema_gainEMA gain for AHRS magnetometer (0 disables).double0.5[0, 1]
fusion_gainFusion gain for sensor data fusion.double0.1[0, 1]
fusion_publish_ratePublish rate of fusion data.int500[0, 1000] Hz
gyro_zero_cutoff_thresholdGyro zero cutoff threshold (0 disables).double0.005[0, 1]
linear_acc_zero_cutoff_thresholdLinear acceleration zero cutoff threshold (0 disables).double0.2[0, 1]
topic_publisher_qosQoS type for all topic publishers.stringreliablebesteffort | reliable

Detailed Parameter Descriptions #

​operation_mode
Change the internal sensor operation mode: AHRS+ for absolute orientation with fast magnetic calibration, AHRS for absolute orientation without fast magnetic calibration, AHRS- for relative orientation with the magnetometer disabled.
Options: AHRS- | AHRS | AHRS+

enable_tf_publisher
Enabling this will publish a dedicated transformation (tf) frame with respect to the filtered IMU data, useful for applications requiring precise spatial orientation.

enable_fusion_publisher
Enabling this will activate the fusion data publisher.

enable_linear_acc_publisher
Enabling this will activate the linear, gravity-compensated accelerometer data publisher.

enable_startup_zero_quaternion
Enabling this will reset the quaternion values to zero upon system startup for consistent initial conditions.

enable_ahrs_publisher
Enabling this will activate the filtered AHRS (Attitude and Heading Reference System) data publisher.

ahrs_publish_rate
Sets the publish rate for the filtered AHRS data in Hz.
Range: [0, 100]

enable_temperature_publisher
Enabling this will activate the temperature data publisher.

enable_twist_publisher
Enabling this will activate the twist (angular and linear velocity) data publisher.

imu_acc_cutoff_frequency
Sets the cutoff frequency for the IMU accelerometer. A value of zero disables the cutoff filter.
Range: [0, 500] Hz

imu_acc_ema_gain
Sets the exponential moving average (EMA) gain for the IMU accelerometer. A value of zero disables EMA filtering.
Range: [0, 1]

imu_gyro_cutoff_frequency
Sets the cutoff frequency for the IMU gyroscope. A value of zero disables the cutoff filter.
Range: [0, 500] Hz

imu_gyro_ema_gain
Sets the exponential moving average (EMA) gain for the IMU gyroscope. A value of zero disables EMA filtering.
Range: [0, 1]

ahrs_acc_cutoff_frequency
Sets the cutoff frequency for the AHRS accelerometer. A value of zero disables the cutoff filter.
Range: [0, 500] Hz

ahrs_acc_ema_gain
Sets the exponential moving average (EMA) gain for the AHRS accelerometer. A value of zero disables EMA filtering.
Range: [0, 1]

ahrs_gyro_cutoff_frequency
Sets the cutoff frequency for the AHRS gyroscope. A value of zero disables the cutoff filter.
Range: [0, 500] Hz

ahrs_gyro_ema_gain
Sets the exponential moving average (EMA) gain for the AHRS gyroscope. A value of zero disables EMA filtering.
Range: [0, 1]

ahrs_mag_cutoff_frequency
Sets the cutoff frequency for the AHRS magnetometer. A value of zero disables the cutoff filter.
Range: [0, 500] Hz

ahrs_mag_ema_gain
Sets the exponential moving average (EMA) gain for the AHRS magnetometer. A value of zero disables EMA filtering.
Range: [0, 1]

fusion_gain
Adjusts the fusion gain used for combining sensor data. A smaller value gives slower, more stable fusion, while a larger value makes it more responsive.
Range: [0, 1]

fusion_publish_rate
Sets the publish rate for fusion data in Hz.
Range: [0, 1000]

gyro_zero_cutoff_threshold
Specifies a zero cutoff threshold for the gyroscope output. Values below this threshold are considered noise and set to zero. A value of zero disables the threshold.
Range: [0, 1]

linear_acc_zero_cutoff_threshold
Specifies a zero cutoff threshold for the linear acceleration output. Values below this threshold are considered noise and set to zero. A value of zero disables the threshold.
Range: [0, 1]

topic_publisher_qos
Defines the Quality of Service (QoS) setting for all topic publishers

Options: besteffort | reliable

reliable: Ensures reliable delivery by retrying transmissions until acknowledged.
besteffort: Prioritizes low-latency delivery, allows some data loss.


Notes: #

Ensure consistency between your fusion rate, AHRS rate, and QoS settings depending on your application needs.

Any EMA Gain = 0 or Cutoff Frequency = 0 disables that specific filter.

System​ #

ParameterTypeRange MinRange MaxDefaultDescription
frequencyint0101System status publish rate

Downloads #

Downloads (OLVX™-IMU-X01-G1)​ #

TypeFormatVersionLink
3D Models
STP1.0download
OBJ1.0download
CAD Drawings
DWG1.0download
PDF1.0download

Downloads (OLVX™-IMU-X01-G2)​ #

TypeFormatVersionLink
3D Models
STP1.0download

Mechanical Details​ #

(OLVX™-IMU-X01-G1)​ #

(OLVX™-IMU-X01-G2)​ #

Was this information useful?
Still not working! How can we help?

How can we help?

Updated on May 6, 2025
Table of Contents
  • Versions​
  • Sensor Details​
  • Datasheet​
  • Sensor System Architecture​
  • Components​
  • 3D Coordinate System
  • Key Features​
  • Technical Specifications​
  • OLVX™ IMU Technical Specifications​
    • General Specifications​
    • System Performance​
    • IMU Sensor Details​
    • Interface Connection​
    • Physical and Electrical Characteristics​
  • IMU Noise and Random Walk Parameters​
  • Demo​
  • Unboxing​
  • Setup and Test:​
  • ROS Topics and Services​
    • Topics
    • Services​
      • Calibrating the sensor's bias offset values:
      • Resetting the sensor's rotation axis:​
      • The gain effect of the low-pass filter:​
  • Advanced Settings​
    • IMU Parameters
    • Detailed Parameter Descriptions
      • Notes:
    • System​
  • Downloads
    • Downloads (OLVX™-IMU-X01-G1)​
    • Downloads (OLVX™-IMU-X01-G2)​
  • Mechanical Details​
  • (OLVX™-IMU-X01-G1)​
  • (OLVX™-IMU-X01-G2)​
Olive Robotics

Interoperable Embedded Robotics

All rights reserved