RESEARCH IN OMNeT++

RESEARCH IN OMNeT++, In this research section we are going to discuss about the profiling aquatic approach in robotic sensor network.

Robotic sensor network:

The robotic sensors collaboratively profile the characteristics of a diffusion process including source location, discharged substance amount, and its evolution over time

Features of robotic sensor network:

  • Make a independent decision.
  • It searches for the target until the robot finds the target.
  • Avoid computational costs associated with sophisticated decision making.
  • Each of which has a hierarchy of behaviors.
  • Target signal is present but some sensors is in range which means it’ll traverse the network towards a target some hops away.
  • Once target is found and surroundings explored, sensors close enough to receive the target signal should be marked by the network.

 

Architecture-of-Robotic-Sensor-Network
Architecture-of-Robotic-Sensor-Network

Research areas on robotic sensor network:

  • System robustness.
  • Power management.
  • System security.
  • Decision making.
  • Communication.
  • Message routing.
  • Role assignment.

 

Sample code for robotic sensor network:

 

simsignal_t WirelessMacBase::packetSentToLowerSignal = registerSignal("packetSentToLower");
simsignal_t WirelessMacBase::packetReceivedFromLowerSignal = registerSignal("packetReceivedFromLower");
simsignal_t WirelessMacBase::packetSentToUpperSignal = registerSignal("packetSentToUpper");
simsignal_t WirelessMacBase::packetReceivedFromUpperSignal = registerSignal("packetReceivedFromUpper");

void RoboSense::initialize(int stage)
{
    MACBase::initialize(stage);

    if (stage==0)
    {
        upperLayerIn = findGate("upperLayerIn");
        upperLayerOut = findGate("upperLayerOut");
        lowerLayerIn = findGate("lowerLayerIn");
        lowerLayerOut = findGate("lowerLayerOut");
    }
}

void RoboSense::handleMessage(cMessage *msg)
{
    if (!isOperational)
    {
        handleMessageWhenDown(msg);
        return;
    }

    if (msg->isSelfMessage())
        handleSelfMsg(msg);
    else if (msg->getArrivalGateId()==upperLayerIn)
    {
        if (!msg->isPacket())
            handleCommand(msg);
        else
        {
            emit(packetReceivedFromUpperSignal, msg);
            handleUpperMsg(PK(msg));
        }
    }
    else if (msg->getArrivalGateId()==lowerLayerIn)
    {
        emit(packetReceivedFromLowerSignal, msg);
        handleLowerMsg(PK(msg));
    }
    else
        throw cRuntimeError("Message '%s' received on unexpected gate '%s'", msg->getName(), msg->getArrivalGate()->getFullName());}