Skip to content

Alpsource/ekf-rpl-omnetpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

EKF-RPL: Enhanced Mobility Support for IoT

This project implements an Extended Kalman Filter (EKF) extension for the RPL (IPv6 Routing Protocol for Low-Power and Lossy Networks) protocol within the OMNeT++ simulation environment.

The goal is to improve packet delivery reliability in high-mobility Wireless Sensor Networks (WSN), such as drone swarms or autonomous robotic shuttles, by proactively predicting node movement and pruning unstable links before they break.

📂 Repository Structure

This workspace contains three main modules:

  • inet/: The standard INET Framework (v4.2.8).
  • omnetpp-rpl/: The core implementation module.
    • Modified: Contains the custom EkfRpl module, EKF.cc (Kalman logic), and the modified EkfRplRouter.ned.
  • wsn_baseline/: The simulation project.
    • Contains omnetpp.ini configurations, WsnNetwork.ned, and analysis files (.anf) for comparing Baseline RPL vs. EKF-RPL.

🚀 Key Features

1. Decoupled 1D Kalman Filter

Unlike traditional implementations that use complex 2D matrix libraries, this project uses two lightweight, independent 1D Linear Kalman Filters (one for X-axis, one for Y-axis) to track node trajectory. This reduces computational overhead suitable for constrained IoT devices.

2. Proactive Drop Mechanism

The standard RPL protocol is reactive (waiting for a link to fail). This project makes it proactive:

  • Intercepts DIO control packets.
  • Predicts the sender's position 3 seconds into the future.
  • Drops the packet if the node is predicted to move out of the 200m radio range (Safety threshold: 150m).
  • Prevents the routing table from selecting a parent that is about to disconnect.

3. High-Mobility Tuning

Includes tuned Trickle Timer parameters in omnetpp.ini to handle speeds of 5–15 m/s:

  • dioIntervalMin reduced to 0.1.
  • dioRedundancyConstant increased to 10.

🛠️ Installation & Build

  1. Prerequisites:

    • OMNeT++ 5.7
    • INET Framework 4.2.8
  2. Clone the Repo:

    git clone [https://github.com/Alpsource/ekf-rpl-omnetpp.git](https://github.com/Alpsource/ekf-rpl-omnetpp.git)
    cd ekf-rpl-project
  3. Install INET Framework:

    • Download INET 4.2.8 (ensure it is compatible with your OMNeT++ version).
    • Extract or clone it into the root of this workspace so the folder is named inet.
    • Your structure should look like this:
      ekf-rpl-project/
      ├── inet/           <-- You place this here
      ├── omnetpp-rpl/    <-- Included in repo
      └── wsn_baseline/   <-- Included in repo
      
    • Build INET:
      cd inet
      make makefiles
      make
      cd ..
  4. Build RPL Module: Navigate to omnetpp-rpl/ and run:

    make makefiles
    make
  5. Run Simulation: Navigate to wsn_baseline/ and execute the simulation:

    ./wsn_baseline -m -u Cmdenv -c EKF_RPL

📊 Performance

Simulation results (50 nodes, 500x500m area, Gauss-Markov mobility 5-15 m/s):

Metric Baseline RPL EKF-RPL (Proposed)
PDR 33.96% 36.32%
Packets Received 849 908
Avg Delay 554 µs 576 µs

While the PDR increase is modest (~2.4%), it proves that predictive logic effectively filters unstable parents in highly dynamic environments.

📜 Credits

📄 License

This project follows the licensing of the underlying INET and OMNeT++ frameworks (LGPL/GPL).

About

An EKF-enhanced RPL routing protocol implementation in OMNeT++ for high-mobility IoT and robotic swarms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors