In order to obtain the RSSI, the command
iwconfig is common. However, this command must
be connected to the target access point, which is not
suitable for searching for an unspecified terminal
called a victim. Therefore, we created a new
command called βgetsiβ that can be executed on the
terminal. The contents of the getsi command are as
follows:
#!/bin/sh
sudo iwlist wlan0 scan
| grep -e ESSID -e Quality
By executing this getsi command, it is possible to
obtain the SSID and RSSI values within the range that
can be currently recognized. The link quality refers to
the connection quality, and discrimination of noise
and other factors is carried out. However, because it
is difficult to obtain fine variations in values,
utilization at the time of medium distance use is
considered. At this time, we use RSSI as the main
evaluation value.
The RSSI can be obtained using the above
command. By applying it, we can execute this
terminal command on Python using a subprocess
library. By adjusting the result, we can obtain the
RSSI value. Thus, an evaluation value at this
coordinate is obtained.
3.3 Extended PSO
We extend PSO such that the algorithm includes a
feature for avoiding obstacles. Uehara et al. have
developed this avoidance algorithm (Uehara et al.,
2016). A mobile agent is used to generate a route to
avoid obstacles. At that time, other search robots
cooperate in route generation while conducting a
search as usual.
When a robot detects an obstacle, it stops and
generates a mobile agent. It then transmits to another
wirelessly connected robot. This agent moves
between the robots while holding the moved
coordinate log stored in each robot. The moved agent
determines whether there is an intersection of the
movement log of the current robot and the movement
log of the transmission source robot; it then holds the
log and moves to the next robot if it exists. On the
other hand, if there is no intersection point, it goes
back one step and moves to another connectable robot
and compares the logs. Finally, if a robot within L
meters and D degrees of the front of the source robot
is reached, it takes the previous movement log back
to the source robot. After that, interrupt handling is
applied at the server, and a detour route is generated
to avoid any obstacles.
The source robot shares its globalbest even before
the agent returns. Therefore, as the coordinates of the
globalbest are changed, the search may be possible
without bypassing the obstacle. At this time, the
search is immediately resumed.
When robots collide, they exchange all
information with each other. Then, the two robots
behave as if they had passed one another. For this
purpose, the robot stores all the values such as the
movement log and localbest in an array and transmits
the array using a mobile agent. When the exchange of
the values is completed for both robots, the
replacement ends. Next, both robots continue
searching for the next point. Ishiwatari et al., (2017)
developed this exchange algorithm.
3.4 Search Robot
Search and rescue is achieved using a team of mobile
robots. Because each search robot needs to
communicate with other robots, it is necessary to
construct a wireless network. Therefore, we created
robots equipped with Raspberry Pi. Our agent system
has been built to perform on top of the Raspbian
operating system in Raspberry Pi. Raspberry Pi uses
the GPIO pin to acquire data from the sensor and
control the motor. The robot has a caterpillar, and was
designed for comfortable rotation, making a change
in direction to the next point through PSO easy. With
PSO, because the sharing of coordinates is important,
controlled movement to an accurate position is
necessary. Therefore, directional data are acquired
using a compass module, which is used for angle
control. In addition, the coordinate data are obtained
through a GPS sensor. Because it is difficult to adjust
the position using a motor, a highly accurate
operation by the compass module is important. The
power supply supplies power from a mobile battery
for smartphone use. Figure 5 shows the search robot.
Because Raspbian is used as the operating system
of Raspberry Pi, and the agent platform is developed
using Python 2, the robotβs motor control system and
PSO were also written in Python. The reason for
adopting Python is that, because the agent platform is
on Python, it was judged that a more efficient
arrangement can be obtained if the same language is
used, and the behavior, including the robotβs motion
toward the mobile agent, can be directly described.
As a result, it is possible for the moving agent to
control the robot through interrupt handling.
To control the motor, we use the wiringpi library
and send instructions from the GPIO pin to the motor
driver. Four AA batteries are used for motor control,
and are installed separately from mobile batteries.
HAMT 2018 - Special Session on Human-centric Applications of Multi-agent Technologies
314