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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 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());} |