ElettraSciComp / witmotion_IMU_ros

ROS wrapper for the family of IMU sensor devices manufactured by Witmotion Ltd.
MIT License
30 stars 40 forks source link

Witmotion IMU sensor driver for ROS

ROS1 CI focal-source focal-amd64 focal-armhf focal-arm64 dev doc
focal-source focal-amd64 focal-armhf focal-arm64 dev doc

witmotion_ros module implements a ROS 1 wrapper for Witmotion IMU driver library. It reads the data from the family of TTL-compatible inertial pose estimation units (IMUs) manufactured by WitMotion Shenzhen Co.,Ltd publishing the information in ROS-native way using sensor_msgs and std_msgs message definition packages. The module is focused on read-only access, so calibration and bias regulation functions are implemented in the underlying library. Port access model is implemented in monopolistic way acccording to UNIX specification, so only one instance of the module can be executed for the dedicated virtual device.

Datasheets and official documentation

The module is developed according to the specifications released by Witmotion, the presented snapshot has download date is 23.02.2022. The official website https://wiki.wit-motion.com is not always accessible, so the PDF snapshots are placed under IPFS web directory.

ROS2 branch

The ROS2 compatible implementation of the driver is WIP under ros2 branch. The initial migration made by @fllay (pull request #12).

Marking ROS2-related issues and pull requests

The contributors are strongly encouraged to mark the names of their ROS2-related issues and pull requests with [ROS2] prefix.

Installation

Prerequisites

The package requires QtSerialPort development package from Qt 5.2+

sudo apt-get install libqt5serialport5-dev

Building

cd catkin_ws
git clone --recursive https://github.com/ElettraSciComp/witmotion_IMU_ros.git src/witmotion_ros
catkin_make

If compilation fails, first check the directory src/witmotion_ros/witmotion-uart-qt. If it is empty, the recursive clone failed, and you should manually clone the underlying library from the repository https://github.com/ElettraSciComp/witmotion_IMU_QT into this directory. IMPORTANT! Please beware of the directory name, the CMakeLists file refers exactly to the name witmotion-uart-qt specified in the target import section.

Usage

roslaunch witmotion_ros witmotion.launch

Configuration

Configuration of the node is done by default via the configuration YAML file config.yml. But it also can be done using roslaunch XML syntax under the node's internal namespace. The single value measurements, like pressure and temperature, are enabled for the linear calibration because there can be differences in decoding coefficients between the sensors (proven for WT31N and JY901B sensors).

Parameters