Versions #
Product Name | Type | Generation | Product Number |
---|---|---|---|
olixSense X1 | USB-C Dual Redundant | 01 | OIMU-X1S-9DOF |
olixSense X1 | USB-C Dual Redundant | 02 | OIMU-X1S-9DOF2 |
olixSense X1 Pro | USB-C Tripple Redundant | 01 | OIMU-X1P-9DOF |
Product Name | Type | Generation | Product Number |
---|---|---|---|
olixSense E1 Pro | Ethernet Tripple-Redundant | 01 | OIMU-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 #
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 Number | OLVX™-IMU-U02X9D |
---|---|
Connection Interface | USB Type-C |
Communication Protocol | ROS 1&2 (Virtual Ethernet / IPV4) |
Gyroscope Range | ± 2000 deg/sec |
Accelerometer Range | ± 16 g |
Magnetometer Range | ± 4 gauss |
Sample Rate | 1000 Hz |
Performance Metrics | Covariance Matrix |
Native ROS Messages | sensor_msgs/Imu, sensor_msgs/Temperature |
Operating Temperature | 0°C ~ 55°C |
System Performance #
AHRS Accuracy | Specification |
---|---|
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 #
Specification | Accelerometer | Gyroscope | Magnetometer |
---|---|---|---|
Range | ±4g, ±8g, ±16g | ±250°/s, ±500°/s, ±1000°/s | ±1300 µT |
Resolution | 16-bit or 0.06 mg/LSB | 16-bit or 0.004 dps/LSB | 16-bit |
Sensitivity | 2048 LSB/g @ ±16g | 262.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 Density | 160 µg/√Hz | 0.008 dps/√Hz | – |
Zero-g Offset (x, y, z) | ±150 mg (gFS2g, Ta=25°C) | ±3 dps | – |
Nonlinearity | 0.5% FS @ Ta=25°C | 0.01% FS | 1.2% FS |
Interface Connection #
Parameter | Specification |
---|---|
Connector | USB Type-C |
Communications Interface | Ethernet Over USB |
Output Data Rate | 1-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 #
Parameter | Specification |
---|---|
Weight | 32 g |
Size | 40.0 mm x 40.0 mm x 10.0 mm |
Power Consumption | 0.9 W (Typical), 1.8 W (Max) |
Operating Voltage | 4.6 to 5.5 VDC (USB PD 2.0 Standard) |
Operating Temperature | 0°C to 85°C |
Interface LEDs | 3x (Heartbeat, User, System) |
IMU Noise and Random Walk Parameters #
Parameter | AHRS | IMU |
---|---|---|
Accelerometer Noise Density | 150 µg/√Hz | 180 µg/√Hz |
Accelerometer Random Walk | 0.04 m/s/√hr | 0.05 m/s/√hr |
Gyroscope Noise Density | 0.03 °/s/√Hz | 0.01 °/s/√Hz |
Gyroscope Random Walk | 1.5 °/hr/√Hz | 1.0 °/hr/√Hz |
Demo #

Unboxing #
Setup and Test: #
- Follow the Quick Start Guide for Olive Robotics robot modules to connect the device and start using it.
- For more information about the IMU setup and user interface, refer to the demonstration below:
- 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 showed be shown:
- On your host PC run:
- 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
- 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
- Visualize the data using:
- Embedded Web Interface (https://olive-robotics.com/docs2/olive-embedded-web-based-gui/)
- rqt (https://olive-robotics.com/docs2/ros-rqt-interface/)
- rviz2 (https://olive-robotics.com/docs2/rviz-2/).
- 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.1
00.
ROS Topics and Services #
Topics #
- Patch 1733
- Patch 1787
Topic Name | Message Type | Type | Description |
---|---|---|---|
/filtered_ahrs | sensor_msgs/Imu | Publisher | AHRS optimized acc/gyro/quaternion |
/filtered_imu | sensor_msgs/Imu | Publisher | High dynamic acc/gyro/quaternion |
/linear_accel | geometry_msgs/msg/AccelStamped | Publisher | Gravity compensated acceleration |
/magnetometer | sensor_msgs/MagneticField | Publisher | Messured magnetic field |
/status | diagnostic_msgs/DiagnosticStatus | Publisher | Device status |
/feedback | std_msgs/msg/Float32MultiArray | Publisher | Sensor IO loops |
/temperature | sensor_msgs/msg/Temperature | Publisher | Sensor temperature |
/pose | geometry_msgs/msg/PoseStamped | Publisher | 3D Position (Estimation) |
/twist | geometry_msgs/msg/TwistStamped | Publisher | 3D Velocity (Estimation) |
/tf | tf2_msgs/msg/TFMessage | Publisher | TF |
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 Name | Message Type | Type | Description |
---|---|---|---|
/ahrs | sensor_msgs/Imu | Publisher | AHRS optimized acc/gyro/quaternion |
/mpu | sensor_msgs/Imu | Publisher | High dynamic acc/gyro/quaternion |
/acceleration | geometry_msgs/msg/AccelStamped | Publisher | Gravity compensated acceleration |
/magneticfield | sensor_msgs/MagneticField | Publisher | Messured magnetic field |
/status | diagnostic_msgs/DiagnosticStatus | Publisher | Device status |
/feedback | std_msgs/msg/Float32MultiArray | Publisher | Sensor IO loops |
/temperature | sensor_msgs/msg/Temperature | Publisher | Sensor temperature |
/pose | geometry_msgs/msg/PoseStamped | Publisher | 3D Position (Estimation) |
/velocity | geometry_msgs/msg/TwistStamped | Publisher | 3D Velocity (Estimation) |
/tf | tf2_msgs/msg/TFMessage | Publisher | TF |
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 Name | Service Type | Type | Description |
---|---|---|---|
/setBias | std_srvs/srv/Trigger | Service | Calibrating the sensor’s bias offset values |
/setZeroQuaternion | std_srvs/srv/Trigger | Service | Resetting the sensor’s rotation axis |
/setZeroPose | std_srvs/srv/Trigger | Service | Resetting the sensor’s position estimation |
Calibrating the sensor’s bias offset values: #

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 #
IMU Parameters Documentation #
Parameter | Type | Range Min | Range Max | Default | Options |
---|---|---|---|---|---|
filtered_ahrs_publish_rate | int | 0 | 200 | 100 | – |
filtered_imu_publish_rate | int | 0 | 4000 | 1000 | – |
filtered_imu_fusion_gain | double | 0 | 1 | 0.5 | – |
enable_tf_publisher | bool | – | – | true | – |
operation_mode | string | – | – | AHRS- | Read Description |
enable_magnetometer_publisher | bool | – | – | true | – |
enable_filtered_ahrs_publisher | bool | – | – | true | – |
enable_filtered_imu_publisher | bool | – | – | true | – |
enable_filtered_ahrs_acc_gravity_compensation | bool | – | – | false | – |
ahrs_fusion_rate | int | 0 | 250 | 200 | – |
imu_fusion_rate | int | 0 | 2500 | 2000 | – |
enable_startup_zero_quaternion | bool | – | – | true | – |
imu_acc_cutoff_frequency | double | 0 | 1000 | 5.0 | – |
imu_acc_filter_order | int | 1 | 2 | 2 | – |
imu_gyro_cutoff_frequency | double | 0 | 1000 | 5.0 | – |
imu_gyro_filter_order | int | 1 | 2 | 2 | – |
ahrs_acc_cutoff_frequency | double | 0 | 1000 | 5.0 | – |
ahrs_acc_filter_order | int | 1 | 2 | 2 | – |
ahrs_gyro_cutoff_frequency | double | 0 | 1000 | 5.0 | – |
ahrs_gyro_filter_order | int | 1 | 2 | 2 | – |
ahrs_mag_cutoff_frequency | double | 0 | 1000 | 5.0 | – |
ahrs_mag_filter_order | int | 1 | 2 | 2 | – |
topic_publisher_qos | string | – | – | reliable | besteffort, reliable |
Detailed Parameter Descriptions #
IMU Parameters Documentation #
filtered_ahrs_publish_rate
: This value changes the publish rate of the filtered AHRS data, allowing adjustments between 0 and 200 Hz.filtered_imu_publish_rate
: This value changes the publish rate for raw IMU data, with adjustable rates from 0 to 4000 Hz to match the requirements of different applications.filtered_imu_fusion_gain
: Adjusts the fusion gain for combining sensor data within the IMU, with a scale from 0 to 1 to fine-tune the balance between raw sensor inputs and algorithmically processed outputs.enable_tf_publisher
: When enabled, publishes a transformation frame (tf) specific to the filtered IMU data, useful for applications requiring precise spatial orientation.operation_mode
: Allows users to select the operational mode of the sensors:- AHRS+ (NDOF in old version): Absolute orientation with fast magnetic calibration.
AHRS
(NDOF_FMC_OFF in old version): Absolute orientation without fast magnetic calibration.AHRS-
(IMUPLUS in old version): Relative orientation with the magnetometer disabled.
enable_magnetometer_publisher
: When enabled, this setting activates the publisher for the magnetometer, allowing the transmission of magnetometer data.enable_filtered_ahrs_publisher
: This setting, when enabled, activates the publisher for filtered Attitude and Heading Reference System (AHRS) data.enable_filtered_imu_publisher
: Enabling this setting will activate the publisher for filtered Inertial Measurement Unit (IMU) data.enable_filtered_ahrs_acc_gravity_compensation
: Enables gravity compensation for the accelerometer data within the filtered AHRS data, aiding in more accurate orientation calculations.ahrs_fusion_rate
: Adjusts the input/output rate of the AHRS data, with a maximum limit of 250 Hz, allowing for faster or slower data processing based on the needs.imu_fusion_rate
: Similar to the AHRS fusion rate, this adjusts the IO rate for the IMU data but with a higher maximum limit of 2500 Hz, accommodating more rapid data processing requirements.enable_startup_zero_quaternion
: If enabled, resets the quaternion values to zero upon system startup, useful for calibration or when consistent initial conditions are necessary.imu_acc_cutoff_frequency
: Sets the cutoff frequency for the IMU accelerometer, allowing fine-tuning between 0 and 1000 Hz for signal filtering.imu_acc_filter_order
: Configures the filter order for the IMU accelerometer, with valid options of 1 or 2 for enhanced data smoothing.imu_gyro_cutoff_frequency
: Specifies the cutoff frequency for the IMU gyroscope, adjustable between 0 and 1000 Hz for noise reduction.imu_gyro_filter_order
: Configures the filter order for the IMU gyroscope, with valid options of 1 or 2 to control data processing depth.ahrs_acc_cutoff_frequency
: Sets the cutoff frequency for the AHRS accelerometer, enabling precise filtering between 0 and 1000 Hz.ahrs_acc_filter_order
: Defines the filter order for the AHRS accelerometer, supporting options of 1 or 2 for customized data smoothing.ahrs_gyro_cutoff_frequency
: Adjusts the cutoff frequency for the AHRS gyroscope, allowing filtering adjustments between 0 and 1000 Hz.ahrs_gyro_filter_order
: Configures the filter order for the AHRS gyroscope, with valid options of 1 or 2 for tailored data refinement.ahrs_mag_cutoff_frequency
: Specifies the cutoff frequency for the AHRS magnetometer, adjustable between 0 and 1000 Hz for enhanced signal quality.ahrs_mag_filter_order
: Configures the filter order for the AHRS magnetometer, supporting options of 1 or 2 to optimize data accuracy.topic_publisher_qos
: Defines the Quality of Service (QoS) level for all topic publishers. Options include:besteffort
: Prioritizes low-latency data delivery, allowing for some data loss.reliable
: Ensures reliable data delivery by retrying transmission until acknowledged.
System #
Parameter | Type | Range Min | Range Max | Default | Description |
---|---|---|---|---|---|
frequency | int | 0 | 10 | 1 | System status publish rate |
#
Downloads (OLVX™-IMU-X01-G1) #
Downloads (OLVX™-IMU-X01-G2) #
Type | Format | Version | Link |
---|---|---|---|
3D Models | |||
STP | 1.0 | download |
Mechanical Details #
(OLVX™-IMU-X01-G1) #

(OLVX™-IMU-X01-G2) #
