<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Hamburg - Germany
October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Adapting Low-Cost Platforms for Robotics Research</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Karimpanal T.G.</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chamambaz M.</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Li W.Z.</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jeruzalski T.</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gupta A.</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wilhelm E.</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <volume>2</volume>
      <issue>2015</issue>
      <abstract>
        <p>- Validation of robotics theory on real-world hardware platforms is important to prove the practical feasibility of algorithms. This paper discusses some of the lessons learned while adapting the EvoBot, a low-cost robotics platform that we designed and prototyped, for research in diverse areas in robotics. The EvoBot platform was designed to be a lowcost, open source, general purpose robotics platform intended to enable testing and validation of algorithms from a wide variety of sub-fields of robotics. Throughout the paper, we outline and discuss some common failures, practical limitations and inconsistencies between theory and practice that one may encounter while adapting such low-cost platforms for robotics research. We demonstrate these aspects through four representative common robotics tasks- localization, real-time control, swarm consensus and path planning applications, performed using the EvoBots. We also propose some potential solutions to the encountered problems and try to generalize them. Index Terms - low cost, open-source, swarm robotics, lessons learned</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        The Motion, Energy and Control (MEC) Lab at the
Singapore University of Technology and Design (SUTD) is
engaged in an ambitious research project to create a swarm
of autonomous intelligence-gathering robots for indoor
environments. After reviewing commercially available
lowcost robotics platforms, some of which are shown in Table
I, the decision was taken to build a custom ground-based
robot platform for performing swarming research, dubbed
the ’EvoBot’. The primary trade-off is between platform
flexibility and cost, where existing robots are intended to
either be applied in specific research areas, and are hence
equipped with limited and specific sensor and
communication capabilities, or are more flexible with respect to sensor
and firmware packages, but are also more expensive. In
terms of software control development environments,
wellestablished frameworks such as ROS [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] or the Robotics
Toolbox [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] have extremely useful modular functions for
performing baseline robotics tasks, but require substantial
modification between applications and require specific
operating systems and release versions.
      </p>
      <p>With this in mind, the MEC Lab set out to develop the
EvoBot platform with the following goals:</p>
      <p>Low cost: affordable for research groups requiring a
large number of swarming robots (e.g. more than 50)
with sufficient sensing and control features.</p>
      <p>Open source: The hardware, body/chassis design,
application software and firmware for the EvoBots are fully
open source in order to enable any group to replicate
the platform with minimal effort. All the hardware and
software files used for the design of the EvoBots is
available here:
https://github.com/SUTDMEC/EvoBot Downloads.git
Adaptable: The final platform is intended to be as
general purpose as possible, with minimum changes
needed to be made to the base firmware by users in
order to scale to a wide variety of common research
applications. Some representative applications are
described in section IV. . . .</p>
      <p>In the process of designing the EvoBots platform, a
great deal of failure-based learning was involved, and this
paper compiles and synthesizes this process in order for it
to be useful for future robotics researchers who intend to
develop their own platforms, or adapt commercially available
platforms. Specific emphasis will be on challenges common
to robotic platforms in general, and approaches used to avoid
failure when attempting to solve them. The authors would
like to point out that each robotics project presents a unique
sets of problems, so we have attempted to only describe
problems we think may be generalized.</p>
    </sec>
    <sec id="sec-2">
      <title>II. PRECEDENTS AND EVOBOT DESIGN</title>
      <p>This section will discuss commonalities and differences
between the EvoBot and other comparable low-cost robotics
platforms, as well as provide insights into the lessons learned
during the design process. In order to reduce the time
between design cycles, the EvoBots were prototyped with a 3D
printed body and developed across three major generations
and several minor revisions. An exploded view of the EvoBot
is shown in Figure 1.</p>
      <p>Like the Khepera, Finch, Amigobot (table I) and most of
the other platforms, locomotion on the EvoBot is achieved
Page 20
Platform</p>
      <p>Est. Cost (USD) Commercial Scholar Hits Schematics Code
using a differential drive system, with motors on either side
of its chassis. Although this system introduces kinematic
constraints by restricting sideways motion, the associated
simplicity in manufacturing and assembly, and in the
mathematical model for use in control applications are significant
advantages. The wheels are coupled to the motors through a
gearbox with a gear reduction ratio of 1:100. After reduction,
the final speed of the robot can be varied from -180 to
180 mm=s, so that both forward and backward motions are
possible.</p>
      <p>The speed of each motor is controlled by a pulse width
modulated voltage signal. In order to ensure predictable
motion, an internal PI controller is implemented by taking
feedback from encoders that track the wheel movement.
The controller parameters may need to be hand-tuned to
compensate for minor mechanical differences between the
two sides of the robot, arising from imperfect fabrication
and assembly.</p>
      <p>For obstacle detection and mapping applications, 5
infrared (IR) sensors were placed on the sides of a regular
pentagon to ensure maximum coverage, with one IR sensor
facing the forward direction. Similar arrangement of range
sensors is found in platforms such as Colias and e-puck
(table I). Despite this arrangement, there exist blind spots
between adjacent sensors, which could lead to obstacles not
being detected in certain orientations of the robot relative
to an obstacle. The use of ultrasonic sensors instead of
IRs, could reduce the probability of occurrence of blind
spots due to their larger range and coverage, but they are
also more expensive. It is thus advisable to choose sensors
appropriately and to thoroughly test their performance and
limitations before a final decision on the physical design and
sensor placements is made.</p>
      <p>
        Another feature present in the EvoBots common to other
platforms is the use an inertial motion unit (IMU). The
6DOF IMU gives information regarding the acceleration of
the robot in the x, y and z directions, along with roll,
pitch and yaw (heading) information. Although in theory,
the position of the robot can be inferred using the IMU data,
in practice, these sensors are very noisy, and the errors in
the position estimates from these sensors are unacceptably
high even after using methods such as the Kalman filter [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
Although obtaining the position estimates from the IMU is
not recommended in general, good estimates can be obtained
with units that are capable of a much higher resolution and
data rate. Such units however, come at an expense and thus
may not be the ideal choice for a low-cost platform.
      </p>
      <sec id="sec-2-1">
        <title>A. Sensing Features</title>
        <p>While the sensors mentioned earlier in this section focused
on features shared with other platforms, there are some
sensing, control and communication features specific to the
EvoBots.</p>
        <p>In almost all robotics applications, errors in the robot’s
position estimates may gradually accumulate (e.g. for ground
robots, skidding or slippage of the wheels on the ground
surface confound the wheel encoders). In the first two
generations of the EvoBots, this error in the wheel encoders caused
substantial challenges for localization. In order to tackle this
problem, optical flow sensors were placed on the underside of
the EvoBot. They detect a change in the position of the robot
by sensing the relative motion of the robot body with respect
to the ground surface. This ensures that the localization can
be performed more reliably even in the case of slippage. As
shown in Figure 1, there are two such sensors placed side
by side at a specific distance apart. This arrangement allows
inference of heading information of the robot along with
information of the distance traveled. Although the optical
flow sensors perform well in a given environment, they need
to be calibrated extensively through empirical means. In
addition, it was found that the calibration procedure had to
be repeated each time a new surface is encountered, as the
associated parameters are likely to change from surface to
surface.</p>
        <p>As described above, the wheel encoders, optical flow as
well as the IMU sensors can all be used to estimate the
robot’s position and heading. Each of these becomes relevant
in certain specific situations. For example, when the robot
has been lifted off the ground, the IMU provides the most
reliable estimate of orientation; when the robot is on the
ground and there is slippage, the optical flow estimates are
the most reliable; and when there is no slippage, the position
estimates from the encoders are reliable. Some details on
the use of multiple sensors for localization are mentioned in
section IV-A.</p>
        <p>
          In their current configuration, the EvoBots also include
the AI-ball, a miniature wifi-enabled video camera with
comprehensive driver support and a low cost point to capture
video and image data [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. The camera unit is independent
of the rest of the hardware and thus can be removed without
any inconvenience if it is not needed.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Control and Communication Features</title>
        <p>There are a wide variety of microcontrollers which are
presently available on the market. The chipset used on the
EvoBot is the Cortex M0 processor, which has a number
of favorable characteristics such as low power, high
performance and at the same time, is cost efficient, with a
Page 21
large number of available I/O (input/output) pins. One of the
primary advantages of this processor is that it is compatible
with the mbed platform (https://developer.mbed.org/), which
is a convenient, online software development platform for
ARM Cortex-M microcontrollers. The mbed development
platform has built-in libraries for the drivers, for the motor
controller, Bluetooth module and the other sensors.</p>
        <p>Like the e-puck, the EvoBots have Bluetooth
communication capability. After experimenting with various peer-to-peer
and mesh architectures, it was determined that in order to
maintain flexibility with respect to a large variety of potential
target applications, having the EvoBots communicate to a
central server via standard Bluetooth in a star network
topology using the low-cost HC-06 Bluetooth module was
the best solution. Sensor data from the various sensors
gathered during motion is transmitted to the central server
every 70ms. The camera module operates in parallel and uses
Wi-Fi 802.11b to transfer the video feed to the central server.
The Bluetooth star network is also used to issue control
commands to the robots.</p>
        <p>In addition, having a star network topology with a central
server indirectly allows additional flexibility in terms of
programming languages. Only a Bluetooth link is required,
and all the computation can be done on the central server.
For example, the EvoBot can be controlled using several
programming languages, including (but not limited to) C,
python and M AT LAB. The Bluetooth link also opens up
the possibility of developing smartphone mobile applications
for it. Table II summarizes all the sensors used in the EvoBot.</p>
        <p>The EvoBot platform was designed to be useful for a
wide range of research problems, and to enable researchers
working in theoretical robotics to easily shift their algorithms
from simulation to hardware. Moving from virtual to real
platforms introduces a set of additional issues which must
be considered. Some of these, which were encountered while
developing applications for the EvoBots, are discussed in this
section.</p>
      </sec>
      <sec id="sec-2-3">
        <title>A. Sensing</title>
        <p>While it may be considered acceptable to use ideal sensor
models in simulation, in real-world robotics applications,
and especially in the case of low-cost platforms, sensing
information about the environment can be done only with
a certain degree of range and accuracy. It is thus important
to be judicious in choosing the location of the sensors. For
the case of range sensors for obstacle detection, blind spots
must be avoided as much as possible to prevent unexpected
behaviours. Also, the upper and lower limits of the sensor
range must be considered. As in the case of the EvoBots
or other low-cost platforms, the sensor range may be quite
limited and prone to noise, and blind spots exist despite
careful sensor placement. In case of occurrence of blind
spots, it may be worth encoding default behaviours into
the robot such as conditional wall following or automatic
steering away from detected obstacles.</p>
      </sec>
      <sec id="sec-2-4">
        <title>B. Calibration</title>
        <p>The behaviour of sensors are typically considered to be
same for different environments during simulation. In
practice, most sensors need some form of calibration. In addition,
the calibration parameters for certain sensors may depend on
the environment in which they operate. For example, the
calibration parameters for the optical flow sensors in the
EvoBots vary based on the surface on which they operate. In
addition, the parameters are very sensitive to small variations
in ground clearance which can be caused by variations in the
robot body due to imperfect 3D printing or during assembly.
It is often the case that parameters will have to be set
and reset from time to time. This can considerably add
to development time and effort. Automating the calibration
process should be done whenever possible. If automation is
not possible, one way to mitigate this issue is to have the
software package include user commands that can change
calibration parameters on the fly. This was the solution
adopted for the EvoBots in order to calibrate the encoders
and optical flow sensors.</p>
      </sec>
      <sec id="sec-2-5">
        <title>C. Timing</title>
        <p>In simulation, the robot’s update loop and solvers can
have either fixed or variable time steps, but it is most likely
to be variable in practice. Thus, keeping track of time is
critical, especially for real-time applications. For example, in
the EvoBots, the performance of the localization algorithm
(section IV-A) significantly depreciates if the time step is
considered fixed.</p>
      </sec>
      <sec id="sec-2-6">
        <title>D. Communication</title>
        <p>
          When a large amount of sensor data and instructions
needs to be exchanged between platforms or between a
platform and a central machine, maintaining the integrity
of the communicated data is critical. When the exchanged
information is delayed or lost either partially or completely
during information exchange, it could lead to a series of
unwanted situations such as improper formatting of data,
lack of synchronization, incorrect data etc., These aspects are
Page 22
seldom accounted for in simulation. In the EvoBots, the issue
of lack of data integrity was tackled by performing cyclic
redundancy checks (CRC) [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] as part of the communication
routine. It is ideal to perform bit-wise checks as well, but this
has not been done in the case of the EvoBots.
        </p>
        <p>The issues listed in this section apply to almost all robotics
applications in general. The following section discusses some
of the applications and the associated issues encountered
during their implementation using the EvoBots.</p>
        <p>IV. APPLICATIONS</p>
        <p>This section discusses application-specific issues in diverse
sub-fields of robotics such as real-time control, swarm and
artificial intelligence applications. These applications were
selected because they are commonly implemented tasks from
a wide variety of sub-fields in robotics.</p>
      </sec>
      <sec id="sec-2-7">
        <title>A. Localization</title>
        <p>
          Ground robots typically need to have an estimate of
position and heading. The EvoBot platform, as well as many
other robots, are designed to be used in an indoor
environment, and therefore it is not possible to use GPS without
modifying the environment in question; also, positioning
information provided by GPS has the accuracy in the order
of a 101 meters which is not suitable for small ground robots.
For this reason, the set of on-board sensors are used to
estimate the robot’s states of position and heading. The
onboard sensors however, are typically associated with some
noise and retrieving positioning information from them leads
to erroneous results. For instance, integrating acceleration
data to get the velocity and position does not provide accurate
state estimation and leads to huge offsets from the true
value due to the associated noise. To overcome this issue,
state estimation is performed using a method based on the
Extended Kalman Filter [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
        <p>We used the information provided by the wheel encoders,
optical flow sensors and the heading provided by IMU’s
gyroscope to estimate the position and heading. The sensor
information is combined with the mathematical model of
the robot to estimate the position and heading of the robot.
Figure 2 presents the result of an experiment where two
robots follow a trajectory (red line) and the data from the
sensors are used in the extended Kalman filter to estimate its
position and heading. In the next two paragraphs we explain
two problems we faced while implementing the designed
Kalman filter and we describe the corresponding solutions
used in our platform.</p>
        <p>Timing is one of the most important factors for localization
and control tasks. The delay in communication between
the robot and central computer where the Kalman filter is
running, causes some variation in the time intervals within
which each sensor data package is received. For example, the
time intervals can vary between 50 to 100 ms Therefore, as
mentioned in section III, the sampling time in the extended
Kalman filter cannot be fixed a-priori. The state estimation
procedure highly depends on the corresponding sampling
time and using a fixed sampling time leads to a large error
in the estimated state.One solution to this problem is to label
each sensor data package with time, compute the sampling
time on the central computer and use the computed real-time
sampling time in the extended Kalman filter formulation.
With these factors in mind, labeling the sensor data package
with time seems to be an efficient solution to deal with
variable sampling time.</p>
        <p>A common problem associated with estimating the state
using the velocity sensors is “slippage”. In cases where
a robot slips on the floor, the wheel encoders reflect an
erroneous result. In the worst case, when the robot is stuck,
the encoders keep providing ticks as if the robot is moving,
which leads to a significant error in the estimated position.
To solve this, we utilized the information from the optical
flow sensors and designed an adaptive Kalman filter. The
velocities reflected by the encoders and optical flow sensors
are compared and in case there is a significant difference
between them, the occurrence of slippage is inferred. Then,
the noise covariance matrix in the extended Kalman filter is
changed so that the filter relies more on the velocity provided
by the optical flow sensor. Thus, we infer that although
having multiple sensors sensing the same quantity may seem
redundant, each of them, or a combination of them may be
useful in different contexts.</p>
      </sec>
      <sec id="sec-2-8">
        <title>B. Application in Real-time Control</title>
        <p>
          In a perfect scenario where there is no disturbance and
model mismatch, it is possible to use some feed-forward
control to drive the robot on a desired trajectory. However, in
the real world, a number of issues such as model mismatch,
disturbance and error in the internal state deviates the robot
from its desired path. Therefore, feedback control is vital to
achieve an accurate tracking behavior. In general, the
navigation problem can be devised into three categories: tracking
a reference trajectory, following a reference path and point
stabilization. The difference between trajectory tracking and
path following is that in the former, the trajectory is defined
over time while in the latter, there is no timing law assigned
to it. In this section, we focus on designing a trajectory
tracking controller.
Page 23
The kinematic model of our platform is given by:
x_c =
y_c =
_c =
where v1 and v2 are velocities of right and left wheels,
c is the heading (counter clockwise) and l is the distance
between two wheels. As stated earlier, one of the reasons
for adopting a differential drive configuration for the EvoBot
is the simplicity of the kinematic model (1). Hereafter, we
use two postures, namely, the “reference posture” pr =
(xr; yr; r)0 and the “current posture” pc = (xc; yc; c)0. The
error posture is defined as the difference between reference
posture and current posture in a rotated coordinate where
(xc; yc) is the origin and the new X axis is the direction of
c.
cos c
sin c
0
sin c
cos c
0
The goal in tracking control is to reduce error to zero as
fast as possible considering physical constraints such as
maximum velocity and acceleration of the physical system.
The input to the system is the reference posture pr and
reference velocities (vr; wr)0 while the output is the current
posture pr. A controller is designed using Lyapunov theory
[
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] to converge the error posture to zero. It is not difficult
to verify that by choosing
(v1 = vr cos e + kxxe + 2l (wr + vr(kyye + k sin e))
v2 = vr cos e + kxxe
2l (wr + vr(kyye + k sin e))
(3)
the resulting closed-loop system is asymptotically stable for
any combination of parameters kx &gt; 0; ky &gt; 0 and k &gt; 0.1
The tuning parameters highly affect the performance of the
closed loop system in terms of convergence time and the
level of control input applied to the system. Hence, we chose
parameters kx; ky and k based on the physical constraints
of our platform e.g. maximum velocity and acceleration.
Extensive simulation is performed to verify the controller (3).
Figure 3 shows some experimental results where the robot
follows a reference trajectory (blue curve). The reference
trajectory is a circle of radius 1m. The initial posture is
selected to be (0; 0; 0)0. Errors xr xc, yr yc, and r c
are shown in Figure 4. We remark that reference linear
and angular velocities vr and wr are difficult to obtain for
arbitrary trajectories. We solved this problem using some
numerical methods where the point-wise linear and angular
velocities are computed numerically.
        </p>
        <p>1Choosing V = 12 (xe2 + ye2) + (1 cos e) and taking its derivative
confirms that V_ 0. Hence, V is indeed a Lyapunov function for the
system (1).
1.5
)re
tem0.5
(
y
−0.5
−−11.5
1
0
2
1
1.5
0.5
0
−0.5
−10
where
Page 24</p>
        <p>x (m0eter)
−1
−0.5
0.5
1
1.5</p>
        <p>Error in x
Error in y
Errrot in θ
50
100 Time (sec) 150
200
250</p>
        <p>One of the important factors in implementing the real time
controller is time synchronization. The controller needs to
keep track of time in order to generate the correct reference
point. This issue is critical especially when a number of
robots need to be controlled. In this scenario, an independent
counter can be assigned to each robot to keep track of its
time and generate the correct reference point at each time
step.</p>
      </sec>
      <sec id="sec-2-9">
        <title>C. Application in Swarm Robotics</title>
        <p>The overarching application of the EvoBots platform is
to enable low-cost swarm robotics research. The study of
emergent collective behaviour arising from interactions
between a large number of agents and their environment is an
area which is gaining increasing importance recently. The
robots used for these purposes are usually simple and large
in number, with communication capabilities built into them.
Although it is ideal to have peer-to-peer communication
between the agents, the same effect can be simulated through
a star-shaped network, where all the agents share information
with a central machine.</p>
        <p>
          A typical swarm robotics application is to have the swarm
arrive at a consensus about some common quantity, and
to use this as a basis to collectively make decisions about
the next actions of each member [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Figure 5 shows the
configuration of a set of 6 robots at different times. The
heading/orientation of each robot depends on those of the
other robots and is governed by the update equation:
i
i + K( m
i)
(4)
Here, i is the heading of an individual agent, K is a constant
and m is the mean heading of all N agents. These updates
are performed on each agent of the swarm till the heading
converges to the same value.
        </p>
        <p>As seen from Figure 5, the robots eventually orient
themselves in a direction that was determined using the consensus
algorithm.</p>
        <p>Swarm algorithms rely on the current information
regarding other members. So, delays in communication
can cause swarming algorithms to diverge instead of
converging. As mentioned in section III, performing
routines to maintain the integrity of the exchanged data
is critical. The communication rate should ideally be
independent of the number of agents involved. Usually, in
communication systems, it is common practice to make use
of communication data buffers. For swarm applications,
one should ensure the latest data is picked out either by
matching similarity in time-stamps or by refreshing the
buffer before each agent is queried.</p>
      </sec>
      <sec id="sec-2-10">
        <title>D. Application in Artificial Intelligence</title>
        <p>
          One of the long-term goals of robotics is to develop
systems that are capable of adapting to unknown and
unstructured environments autonomously. The general set of tools
designed to enable this objective falls under the fields of
machine learning and artificial intelligence (AI). This includes
approaches such as neural networks [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], support vector
machines [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], evolutionary robotics [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], reinforcement
learning [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], probabilistic methods [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ], etc., which are used
for a range of tasks such as object recognition, clustering,
path planning, optimal control, localization and mapping etc.
Although most algorithms can be tested out in a simulated
environment, the uncertainties and nuances associated with a
real environment limit the utility of simulated solutions,
especially in fields such as evolutionary robotics [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
A more thorough validation necessitates implementation of
these algorithms on real-world physical systems.
To illustrate some of the primary issues and requirements
of a platform for use in AI, a path planning task is
demonstrated using the standard A-star algorithm [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The scenario
involves planning a path from the starting position of a
robot to a target position using a previously constructed
infra-red sensor based map of the environment as shown in
Figure 6. Most of the arena shown in Figure 6 has been
mapped; the mapped areas are shown as black patches along
the boundaries of the arena. The planned path (shown in
blue) is generated by the A-star algorithm, using cost and
heuristic functions. The heuristic function is proportional to
the euclidean distance from the target position. Some of the
important issues while implementing this algorithm for path
planning and for AI applications in general, are listed below:
        </p>
        <p>Computing Resources: The A-star algorithm could have
also been implemented locally on the robots. However, this
would have implied storing a copy of the IR map and
performing the A-star algorithm locally using this map. This
may not have been feasible due to the limited on-board
memory and computational complexity of the algorithm.
Also, for path planning, the map of the environment gets
larger as the space explored gets larger. Accordingly, the
A-star path planning could potentially become more
computationally intensive. So setting a resolution parameter (or
deciding to have one) is recommended before starting the
mapping.</p>
        <p>In general, sufficient computing resources will be needed to
carry out AI algorithms. Having a thin client system that
offloads the computational effort to a central server helps
deal with the high computational costs imposed due to high
Page 25
dimensionality in certain problems.</p>
        <p>Dealing with the real world: Readings from the robot’s
sensors involve an inherent component of noise, even after
they have been calibrated. In addition, it may be common
for one to consider an agent as a point moving through
a space during the simulation stage. In reality, the agent
cannot be considered to be a point in space.These aspects
of reality could potentially hinder one from achieving the
desired results. Taking the physical dimensions of its body
into consideration is one way to counter this.</p>
        <p>In the above mentioned case of path planning, noise points
were first removed using median filters from the raw map.
Also, in order to introduce a safety margin, (and to
compensate for the loss of information introduced due to blind
spots as well as due to the resolution parameter) the detected
obstacles were inflated by exaggerating their size. The safety
margin could also be expanded to account for the dimensions
of the robot body, thus ensuring a smoother transition from
simulation to reality, without having to explicitly encode
the details of the body geometry during simulation, thereby
saving considerable development time. It should be noted
that excessive expansion of obstacles could lead to failure of
A-star to find a valid path to the goal.</p>
        <p>Noise, and mismatches between virtual and real
environments is inevitable. Noise removal using appropriate filters,
and compensating for mismatches with the real world by
erring on the side of caution may be considered to be useful
measures to ensure a smooth transition from virtual to real
environments.</p>
        <p>V. CONCLUSION</p>
        <p>This paper discussed solution strategies to address a set of
common problems which may be encountered while adapting
a low-cost robotics platform such as the EvoBot for research.
Some insights into the factors to be considered while
choosing the sensing, control and communication capabilities of
low-cost platforms were discussed. The eventual success of
our approach was described in the context of four diverse yet
common robotics tasks - state estimation, real-time control, a
basic swarm consensus application and a path planning task
that were carried out using the EvoBots platform.
Some of the potential issues faced by end users who are
not familiar with real-world implementation of algorithms
are also discussed and potential work-arounds for a smooth
transition from simulation to reality were suggested. The
points discussed in this paper aim to serve as a guide to
groups who intend to adapt similar low-cost platforms in
the future, as well as to researchers working on theoretical
aspects of robotics, who intend to validate their algorithms
through real-world implementation.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] ROS: Robot operating system</article-title>
          . http://www.ros.org/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Adept</given-names>
            <surname>Mobile</surname>
          </string-name>
          <article-title>Robots</article-title>
          .
          <source>AmigoBot robot for education and research</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>F.</given-names>
            <surname>Arvin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Murray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Shi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , and Sh.
          <string-name>
            <surname>Yue</surname>
          </string-name>
          .
          <article-title>Development of an autonomous micro robot for swarm robotics</article-title>
          .
          <source>In Proceedings IEEE International Conference on Mechatronics and Automation (ICMA)</source>
          , pages
          <fpage>635</fpage>
          -
          <lpage>640</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>F.</given-names>
            <surname>Arvin</surname>
          </string-name>
          , Kh. Samsudin,
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Ramli</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Bekravi</surname>
          </string-name>
          .
          <article-title>Imitation of honeybee aggregation with collective behavior of swarm robots</article-title>
          .
          <source>International Journal of Computational Intelligence Systems</source>
          ,
          <volume>4</volume>
          :
          <fpage>739</fpage>
          -
          <lpage>748</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Berman</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.A.</given-names>
            <surname>Garay</surname>
          </string-name>
          .
          <article-title>Asymptotically optimal distributed consensus (extended abstract)</article-title>
          .
          <source>In Proceedings of the 16th International Colloquium on Automata, Languages and Programming</source>
          ,
          <source>ICALP '89</source>
          , pages
          <fpage>80</fpage>
          -
          <lpage>94</lpage>
          , London,
          <year>1989</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Betthauser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Benavides</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schornick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. O</given-names>
            <surname>Hara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Patel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cole</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Lobaton</surname>
          </string-name>
          .
          <article-title>Wolfbot: A distributed mobile sensing platform for research and education</article-title>
          .
          <source>In Proceedings Conference of the American Society for Engineering Education (ASEE Zone 1)</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>H.J.</given-names>
            <surname>Chiel</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.D.</given-names>
            <surname>Beer</surname>
          </string-name>
          .
          <article-title>The brain has a body: adaptive behavior emerges from interactions of nervous system, body and environment</article-title>
          . Trends in neurosciences,
          <volume>20</volume>
          :
          <fpage>553</fpage>
          -
          <lpage>557</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Cliff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Husbands</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Harvey.</surname>
          </string-name>
          <article-title>Explorations in evolutionary robotics</article-title>
          .
          <source>Adaptive Behavior</source>
          ,
          <volume>2</volume>
          :
          <fpage>73</fpage>
          -
          <lpage>110</lpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Peter</surname>
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Corke</surname>
          </string-name>
          . Robotics, Vision &amp; Control: Fundamental Algorithms in Matlab. Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>N.</given-names>
            <surname>Cristianini</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Shawe-Taylor</surname>
          </string-name>
          .
          <article-title>An Introduction to Support Vector Machines: And Other Kernel-based Learning Methods</article-title>
          . Cambridge University Press, New York,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>English</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gough</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Johnson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Spanton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Crowder</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.P.</given-names>
            <surname>Zauner</surname>
          </string-name>
          .
          <article-title>Strategies for maintaining large robot communities</article-title>
          .
          <source>Artificial Life XI</source>
          , pages
          <fpage>763</fpage>
          -
          <lpage>763</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Floreano</surname>
          </string-name>
          and L. Keller.
          <article-title>Evolution of adaptive behaviour in robots by means of darwinian selection</article-title>
          .
          <source>PLoS Biol</source>
          ,
          <volume>8</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P.E.</given-names>
            <surname>Hart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.J.</given-names>
            <surname>Nilsson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Raphael</surname>
          </string-name>
          .
          <article-title>A formal basis for the heuristic determination of minimum cost paths</article-title>
          .
          <source>IEEE Transactions on Systems Science and Cybernetics</source>
          ,
          <volume>4</volume>
          :
          <fpage>100</fpage>
          -
          <lpage>107</lpage>
          ,
          <year>1968</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Haykin. Neural Networks</surname>
          </string-name>
          :
          <string-name>
            <given-names>A Comprehensive</given-names>
            <surname>Foundation. Prentice Hall</surname>
          </string-name>
          <string-name>
            <surname>PTR</surname>
          </string-name>
          , Upper Saddle River, NJ, USA, 2nd edition,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.J.</given-names>
            <surname>Julier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.K.</given-names>
            <surname>Uhlmann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.F.</given-names>
            <surname>Durrant-Whyte</surname>
          </string-name>
          .
          <article-title>A new approach for filtering nonlinear systems</article-title>
          .
          <source>In Proceedings of the American Control Conference</source>
          , volume
          <volume>3</volume>
          , pages
          <fpage>1628</fpage>
          -
          <lpage>1632</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kanayama</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kimura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Miyazaki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Noguchi</surname>
          </string-name>
          .
          <article-title>A stable tracking control method for an autonomous mobile robot</article-title>
          .
          <source>In Proceedings of 1990 IEEE International Conference on Robotics and Automation</source>
          , pages
          <fpage>384</fpage>
          -
          <lpage>389</lpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T.</given-names>
            <surname>Lauwers</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Nourbakhsh.</surname>
          </string-name>
          <article-title>Designing the finch: Creating a robot aligned to computer science concepts</article-title>
          .
          <source>In AAAI Symposium on Educational Advances in Artificial Intelligence</source>
          , pages
          <fpage>1902</fpage>
          -
          <lpage>1907</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>F.</given-names>
            <surname>Mondada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bonani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Raemy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pugh</surname>
          </string-name>
          , Ch. Cianci,
          <string-name>
            <given-names>A.</given-names>
            <surname>Klaptocz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Magnenat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ch. Zufferey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Floreano</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Martinoli</surname>
          </string-name>
          .
          <article-title>The epuck, a robot designed for education in engineering</article-title>
          .
          <source>In Proceedings of the 9th conference on autonomous robot systems and competitions</source>
          , volume
          <volume>1</volume>
          , pages
          <fpage>59</fpage>
          -
          <lpage>65</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>F.</given-names>
            <surname>Mondada</surname>
          </string-name>
          , E. Franzi,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Guignard</surname>
          </string-name>
          .
          <article-title>The development of khepera. In Experiments with the Mini-Robot Khepera</article-title>
          ,
          <source>Proceedings of the First International Khepera Workshop</source>
          , pages
          <fpage>7</fpage>
          -
          <lpage>14</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nolfi</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Floreano</surname>
          </string-name>
          . Evolutionary Robotics: The Biology,Intelligence,and Technology. MIT Press, Cambridge, MA, USA,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>W.W.</given-names>
            <surname>Peterson</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.T.</given-names>
            <surname>Brown</surname>
          </string-name>
          .
          <article-title>Cyclic codes for error detection</article-title>
          .
          <source>Proceedings of the IRE</source>
          ,
          <volume>49</volume>
          (
          <issue>1</issue>
          ):
          <fpage>228</fpage>
          -
          <lpage>235</lpage>
          ,
          <year>Jan 1961</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rubenstein</surname>
          </string-name>
          , Ch. Ahler, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Nagpal</surname>
          </string-name>
          .
          <article-title>Kilobot: A low cost scalable robot system for collective behaviors</article-title>
          .
          <source>In Proceedings IEEE International Conference onRobotics and Automation (ICRA)</source>
          , pages
          <fpage>3293</fpage>
          -
          <lpage>3298</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>R.S.</given-names>
            <surname>Sutton</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.G.</given-names>
            <surname>Barto</surname>
          </string-name>
          .
          <article-title>Introduction to Reinforcement Learning</article-title>
          . MIT Press, Cambridge, MA, USA, 1st edition,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>S.</given-names>
            <surname>Thrun</surname>
          </string-name>
          , W. Burgard, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Fox</surname>
          </string-name>
          .
          <article-title>Probabilistic Robotics (Intelligent Robotics and Autonomous Agents)</article-title>
          . The MIT Press,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Trek</surname>
            <given-names>SA</given-names>
          </string-name>
          .
          <article-title>Ai-ball specs</article-title>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>