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