Skip to content

mervinso/dds_imu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DDS IMU Publishing Interface

License: MIT Build DDS

Implementation of a native DDS-based publishing interface for inertial sensor data, validated with a VectorNav VN-100 IMU. This repository accompanies the paper:

M. J. Sosa Borrero, J. E. Serrano Castañeda, J. C. Martinez Santos, E. A. Puertas Del Castillo.
Implementation of a DDS-Based Publishing Interface for Real-Time Inertial Sensor Data in Navigation Systems.
Proceedings of IEEE Caribbean Colombian Conference (C3 2025), IEEE Xplore (forthcoming).


📑 Features

  • Serial parsing of IMU data (yaw, pitch, roll, gyro, accel, mag).
  • DDS publishing via Eclipse Cyclone DDS.
  • IDL 4.2 schemas for type-safe communication.
  • QoS configuration via XML profiles (qos/imu_qos.xml).
  • Example subscriber for validation with DDS Spy.
  • Modular and portable design, aligned with OMG specifications.

📂 Repository Structure

dds-imu-dds-interface/
│── CMakeLists.txt
│── README.md
│── LICENSE
│
├── idl/ # IDL schemas
│ └── imu_data.idl
│
├── src/ # C++ source code
│ ├── imu_parser.cpp
│ ├── dds_publisher.cpp
│ ├── dds_subscriber.cpp
│ └── main.cpp
│
├── include/ # Header files
│ └── imu_parser.hpp
│
├── qos/ # QoS profiles for Cyclone DDS
│ └── imu_qos.xml
│
├── config/ # Setup and run scripts
│ ├── setup.sh
│ └── run.sh
│
├── docs/ # Documentation
│ ├── INSTALL.md
│ ├── USAGE.md
│ └── ARCHITECTURE.md
│
└── datasets/ # Example logs from lab validation
├── imu_sample_log.csv
└── dds_output_log.csv

⚙️ Requirements

  • Ubuntu 22.04 (tested)
  • GCC / G++ ≥ 11
  • CMake ≥ 3.16
  • Cyclone DDS
  • Git

🛠️ Build Instructions

# Clone repo
git https://github.com/mervinso/dds_imu.git
cd dds-imu

# Create build directory
mkdir build && cd build
cmake ..
make

▶️ Run Example

# Publisher
./dds_imu_publisher datasets/imu_sample_log.csv

# Subscriber
./dds_imu_subscriber

# Monitor with DDS Spy
ddsspy -t imu/ImuData

📊 QoS Profiles

Default QoS for the publisher is defined in qos/imu_qos.xml :

  • Reliable delivery
  • KeepLast = 10
  • Deadline = 5 ms
  • LatencyBudget = 1 ms
  • Liveliness = Automatic (1 s)

To use this profile:

export DDS_QOS_PROFILES=file://$PWD/qos/imu_qos.xml

📜 Citation

If you use this repository, please cite:

@inproceedings{Sosa2025-DDS-IMU,
  author    = {Mervin Jesus Sosa Borrero and Jairo Enrique Serrano Castañeda and Juan Carlos Martinez Santos and Edwin Alexander Puertas Del Castillo},
  title     = {Implementation of a DDS-Based Publishing Interface for Real-Time Inertial Sensor Data in Navigation Systems},
  booktitle = {Proc. IEEE Caribbean Colombian Conference (C3)},
  year      = {2025},
  publisher = {IEEE},
  doi       = {10.1109/C3.2025.XXXXXXX}
}

📖 License

This project is licensed under the MIT License. See LICENSE for details.


🔗 Related References

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages