A self-localization system uses both of a global search apparatus, which
is based on grid-based Markov localization, and a local search apparatus,
which uses an extended Kalman filter. If an observation result by the
global search apparatus is valid, then updating of an observation result
by the local search apparatus is permitted, but if the observation result
is not valid, then updating of the observation result by the local search
apparatus is not performed. On the other hand, if the observation result
by the local search apparatus is valid, then a state of the local search
is outputted, but if the observation result is not valid, then the local
search apparatus is re-initialized. Accordingly, the self-localization of
a robot can be performed based on sensor information of the robot and
motion information performed by the robot in an environment including
artificial landmarks.