All Projects → KumarRobotics → imu_3dm_gx4

KumarRobotics / imu_3dm_gx4

Licence: other
Driver for Lord Corporation Microstrain 3DM GX4 25

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to imu 3dm gx4

imu vn 100
ROS driver for VN-100 of VectorNav Technologies
Stars: ✭ 35 (+12.9%)
Mutual labels:  imu, ros-driver
radmap point clouds
Preprocessing, coordinate frame calibration, configuration files, and launching procedure used to generate point clouds with Google Cartographer for the RadMAP acquisition system. The RadMAP acquisition system consists of two LIDARS, differential GPS, two Ladybug 360 cameras, and an IMU.
Stars: ✭ 26 (-16.13%)
Mutual labels:  imu
Uwb Node
Local Positioning System Development Kit, use STM32F411C + MPU9250 + LPS22HB + DWM1000
Stars: ✭ 99 (+219.35%)
Mutual labels:  imu
Kimera Vio Ros
ROS wrapper for Kimera-VIO
Stars: ✭ 182 (+487.1%)
Mutual labels:  imu
Bbbmini
BeagleBone ArduPilot DIY Cape
Stars: ✭ 140 (+351.61%)
Mutual labels:  imu
Map Based Visual Localization
A general framework for map-based visual localization. It contains 1) Map Generation which support traditional features or deeplearning features. 2) Hierarchical-Localizationvisual in visual(points or line) map. 3)Fusion framework with IMU, wheel odom and GPS sensors.
Stars: ✭ 229 (+638.71%)
Mutual labels:  imu
9dof razor imu
9DOF Razor IMU available from SparkFun Electronics
Stars: ✭ 96 (+209.68%)
Mutual labels:  imu
Awesome-Human-Activity-Recognition
An up-to-date & curated list of Awesome IMU-based Human Activity Recognition(Ubiquitous Computing) papers, methods & resources. Please note that most of the collections of researches are mainly based on IMU data.
Stars: ✭ 72 (+132.26%)
Mutual labels:  imu
hoverboard-sideboard-hack-GD
Hoverboard sideboard hack for GD32 boards
Stars: ✭ 68 (+119.35%)
Mutual labels:  imu
Kalibr
The Kalibr visual-inertial calibration toolbox
Stars: ✭ 2,410 (+7674.19%)
Mutual labels:  imu
Sparkfun mpu 9250 Dmp arduino library
Arduino library for the MPU-9250 enabling its digital motion process (DMP) features.
Stars: ✭ 169 (+445.16%)
Mutual labels:  imu
Qcopterflightcontrol
飛控板 FlightController,使用 STM32F405RG / STM32F411CE
Stars: ✭ 143 (+361.29%)
Mutual labels:  imu
Smartimu
Inertial Sensor Development Kit,STM32F411C、NRF52810、MPU9250、LPS22HB
Stars: ✭ 231 (+645.16%)
Mutual labels:  imu
Openimu
Open Source Analytics & Visualisation Software for Inertial Measurement Units
Stars: ✭ 133 (+329.03%)
Mutual labels:  imu
OpenCVB
OpenCV .Net application supporting several RGBD cameras - Kinect, Intel RealSense, Luxonis Oak-D, Mynt Eye D 1000, and StereoLabs ZED 2
Stars: ✭ 60 (+93.55%)
Mutual labels:  imu
Loose Gnss Imu
Loosely coupled integration of GNSS and IMU
Stars: ✭ 97 (+212.9%)
Mutual labels:  imu
Uwb Localization
Accurate 3D Localization for MAV Swarms by UWB and IMU Fusion.
Stars: ✭ 155 (+400%)
Mutual labels:  imu
Staticmapping
Use LiDAR to map the static world
Stars: ✭ 191 (+516.13%)
Mutual labels:  imu
SlimeVR-Server
Server app for SlimeVR ecosystem
Stars: ✭ 361 (+1064.52%)
Mutual labels:  imu
belaonurhead
Bela On Ur Head - head-tracking for binaural audio with Bela
Stars: ✭ 22 (-29.03%)
Mutual labels:  imu

imu_3dm_gx4

Build Status

Picture of IMU

The imu_3dm_gx4 package provides support for the Lord Corporation Microstrain 3DM-GX4 series IMU. The package employs the MIP packet format, so it could conceivably be adapted to support other versions of Microstrain products with relatively little effort. At present, the 45 series is not supported.

This package works on Ubuntu 16.04 and 18.04.

Version History

  • 0.0.5:
    • Added support for the -15 series (Aaron Hoy)
  • 0.0.4:
    • Fixed issue where packets would be dropped if the header checksum was broken up into multiple packets.
    • Added verbose option.
  • 0.0.3:
    • Replaced decimation options with rate options. Decimation is automatically calculated.
    • Added a file for use with Kalibr.
    • Added a udev rule to configure permissions.
  • 0.0.2:
    • Units of acceleration are now m/s^2, in agreement with ROS convention.
    • Cleaned up code base, replaced error codes with exceptions.
    • Status can now be viewed from rqt_runtime_monitor.
    • Filter output is now in a single, custom message with covariances and important status flags.
    • Added option to enable/disable accelerometer update in the estimator.
    • Removed TF broadcast option.
    • Reformatted code base to clang-llvm convention.
  • 0.0.1:
    • First release.

Options

The imu_3dm_gx4 node supports the following base options:

  • device: Path to the device in /dev. Defaults to /dev/ttyACM0.
  • baudrate: Baudrate to employ with serial communication. Defaults to 115200.
  • frame_id: Frame to use in headers.
  • imu_rate: IMU rate to use, in Hz. Default is 100.
  • verbose: If true, packet reads and mismatched checksums will be logged.

The following additional options are present for leveraging the 3DM's onboard estimation filter:

  • enable_filter: If true, the IMU estimation filter is enabled. Default is false.
  • filter_rate: Filter rate to use, in Hz. Default is 100.
  • enable_mag_update: If true, the IMU will use the magnetometer to correct the heading angle estimate. Default is false.
  • enable_accel_update: If true, the IMU will use the accelerometer to correct

the roll/pitch angle estimates. Default is true.

In order to launch the node (streaming IMU data at 100Hz), execute:

$ roslaunch imu_3dm_gx4 imu.launch

Note on rate parameters:

The _rate options command the requested frequency by calculating a 'decimation value', which is defined by the relation:

  frequency = base_frequency / decimation

Where the base frequency is 1kHz for the GX4. Since decimation values are integers, certain frequencies cannot be expressed by the above relation. 800Hz, for example, cannot be specified by an integer decimation rate. In these cases, you will receive whichever frequency is obtained by rounding decimation down to the nearest integer. Hence, requesting 800Hz will produce 1kHz.

Output

On launch, the node will configure the IMU according to the parameters and then enable streaming node. At least three topics are published:

  • /imu_3dm_gx4/imu: An instance of sensor_msgs/Imu. Orientation quaternion not provided in this message since is already part of the filter message.
  • /imu_3dm_gx4/magnetic_field: An instance of sensor_msgs/MagneticField.
  • /imu_3dm_gx4/pressure: An instance of sensor_msgs/FluidPressure.

All of the above topics are published with synchronized timestamps.

Additional topics will be published if enable_filter is true:

  • /imu_3dm_gx4/filter: An instance of imu_3dm_gx4/FilterOuput. Custom message indicating all the onboard filter outputs.

Known Issues

  • Even when the enable_mag_update option is set to false (and the device acknowledges the setting with a positive ACK), the quat_status field is received as 3. This has not been fully debugged yet.

Specifications

We provide YAML file to work with Kalibr, which can be found in the calib folder.

FAQs

  1. What data rates can I use? The driver supports up to 1000Hz for IMU data, and up to 500Hz for filter data. For high data rates, it is recommended that you use a baudrate of 921600.

  2. The driver can't open my device, even though the path is specified correctly - what gives?? Make sure you have ownership of the device in /dev, or are part of the dialout group.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].