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.
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());}