MOBILE APPARATUS AND WALKING ROBOT

Abstract
A mobile apparatus and a position recognition method thereof capable of enhancing performance in position recognition, such as accuracy and convergence in position recognition of the mobile apparatus performs the position recognition by use of a distributed filter system, which is composed of a plurality of local filters independently operating and a single fusion filter that integrates the position recognition result performed by each of the plurality of local filters. The mobile apparatus includes a plurality of sensors, a plurality of local filters configured to receive detection information from at least one of the plurality of sensors to perform a position recognition of the mobile apparatus, and a fusion filter configured to integrate the position recognition result of the plurality of local filters and to perform a position recognition of the mobile apparatus by using the integrated position recognition result.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the priority benefit of Korean Patent Application No. 10-2011-0114730, filed on Nov. 4, 2011 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference.


BACKGROUND

1. Field


The following description relates to a mobile apparatus configured to detect the position thereof by integrating information received from a plurality of sensors mounted to the mobile apparatus.


2. Description of the Related Art


In general, position recognition is a technology providing a mobile apparatus with autonomous space perception, and such technology is considered a core in implementing an autonomous mobile function of a mobile apparatus or an Augmented Reality (AR). Here, the mobile apparatus includes a mobile robot, such as a robot cleaner or a walking robot, for example, or a mobile device, such as a mobile phone, for example. The mobile robot is capable of independently moving around without control by a human being, while provided with a sensor that corresponds to human eyes and has a determination function. The mobile device is not provided with an autonomous mobile function, but has a small size, which allows the mobile device to be operated while held in a hand in such a way as to be carried and operated by a human being while on the move.


Most of the position recognition technology has made advancement in a field of a mobile robot having wheels. The technology as such is provided with a single filter structure that uses a Kalman Filter or a Particle Filter as a core algorithm, and is implemented through a method called a Simultaneous Localization and Mapping (SLAM). The position of a mobile robot is estimated by repeatedly performing prediction and update stages. In the prediction stage, the position of the next stage of a robot is predicted by using a Motion Model of the robot, and in the update stage, the position information of the mobile robot, which is predicted, is updated by receiving information from a sensor.


The research on the position recognition technology has been performed mainly on sensor fusion, in which an image sensor, such as a camera, or a distance sensor, such as a laser sensor or an ultrasonic wave sensor, is mounted on the body of a robot, and the information obtained from each of the sensors is simultaneously processed. A robot simultaneously estimates the position information thereof and position information of a landmark by using a feature point, which is extracted from the image information obtained from a camera, or a corner, a wall, and a grid map, which are obtained from the distance information detected through the laser sensor information as a natural landmark.


In general, when implementing position recognition through a multi-sensor fusion, if the number of the sensors is increased, the accuracy in estimating a position is improved. However, for a conventional position recognition technology having a single filter structure, if the number of the sensors thereof is increased, the structure and implementation of a filter become complicated, and the information calculated is concentrated on a single filter, and thus the load in processing information by the filter is increased. In particular, in the update stage, the amount of the measured information is increased in proportion to the number of the sensors mounted thereto, the amount of calculation of the filter thereof is increased, and the operation speed thereof is reduced.


In addition, in a single filter structure, preventing filter malfunctions or entry of erroneous filter information is difficult, and thus the filter may become vulnerable to a disturbance. As a result, the estimation result of the position of a robot is easily diverged. In general, once an estimate value of the filter is diverged, it may be difficult to recover the filter to the original function thereof. When performing position recognition of a robot by using image information, the recovery of the original function of the filter may be possible by implementing an additional technology called Kidnap Recovery, but the calculation and the implementation processes are complicated.


SUMMARY

Therefore, it is an aspect of the present disclosure to provide a mobile apparatus and a walking robot capable of enhancing performance in position recognition (accuracy and convergence in position recognition) of the mobile apparatus by performing the position recognition through a distributed filter system, which includes a plurality of local filters, each independently operating, and a single fusion filter that integrates the position recognition result performed by each of the plurality of local filters.


Additional aspects of the disclosure will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the disclosure.


In accordance with an aspect of the present disclosure, a mobile apparatus includes a plurality of sensors, a plurality of local filters, and a fusion filter. The plurality of local filters may be configured to receive detection information from at least one of the plurality of sensors to perform position recognition of the mobile apparatus. The fusion filter may be configured to integrate the position recognition result of the plurality of local filters and to perform position recognition of the mobile apparatus by using the integrated position recognition result.


The plurality of local filters and the fusion filter may be independently operated.


Each of the plurality of local filters may include a prediction unit, an update unit, and an assimilation unit. The prediction unit may be configured to predict position information and posture information of the mobile apparatus. The update unit may be configured to update the predicted position information and the predicted posture information of the mobile apparatus by using the detection information received from the at least one of the plurality of sensors. The assimilation unit may be configured to integrate the updated position information and the updated posture information of the mobile apparatus with the position recognition result of the fusion filter.


The fusion filter may include a prediction unit, an assimilation unit, and an update unit. The prediction unit may be configured to predict position information and posture information of the mobile apparatus. The assimilation unit may be configured to integrate the predicted position information and the predicted posture information of mobile apparatus with the position recognition result of the plurality of local filters. The update unit may be configured to update the predicted position information and the predicted posture information of the mobile apparatus by using the integrated position recognition result.


The update unit provided at each of the plurality of local filters may transmit the updated position information and the updated posture information of the mobile apparatus to the assimilation unit provided at the fusion filter.


The update unit provided at the fusion filter may transmit the updated position information and the updated posture information of the mobile apparatus to the assimilation unit provided at each of the plurality of local filters.


In accordance with an aspect of the present disclosure, a walking robot may include a plurality of sensors, a plurality of local filters, and a fusion filter. The plurality of local filters may be configured to perform position recognition of the walking robot by receiving detection information from at least one of the plurality of sensors. The fusion filter may be configured to integrate the position recognition result of the plurality of local filters and perform position recognition of the walking robot by using the integrated position recognition result.


The plurality of local filters and the fusion filter each may be independently operated.


The plurality of sensors may include an encoder configured to obtain rotating angle information of a rotating joint that is related to a walking motion of the walking robot, a camera configured to obtain image information of surroundings of a space on which the walking robot walks, and an inertia sensor configured to obtain inertia measurement information of the walking robot.


The plurality of local filters may include a first local filter, a second local filter, a third local filter, and a fourth local filter. The first local filter may be configured to calculate odometry information by using the rotating angle information detected through the encoder and mechanism information of each link that forms the walking robot, and to perform the position recognition of the walking robot by using the odometry information. The second local filter may be configured to perform the position recognition of the walking robot by using relative posture change information of the walking robot, which is calculated by using the image information detected through the camera. The third local filter may be configured to perform the position recognition and a map building of the walking robot by using the image information detected through the camera. The fourth local filter may be configured to perform the position recognition of the walking robot by using the inertia measurement information detected through the inertia sensor.


The odometry information may correspond to position information and posture information of the walking robot on an origin point coordinate system of the moving space.


In accordance with an aspect of the present disclosure, a method to identify a position of a mobile apparatus may include detecting a first position of the mobile apparatus using a measured first position from a first sensor and an integrated position, detecting a second position of the mobile apparatus using a measured position from a second sensor and the integrated position, and integrating, by a processor, the detected first position and the detected second position, as the integrated position.


Detecting the first position may include predicting the first position of the mobile apparatus, updating the predicted first position using the measured first position, and assimilating the updated first position and the integrated position, as the detected first position.


Detecting the second position may include predicting the second position of the mobile apparatus, updating the predicted second position using the measured second position, and assimilating the updated second position and the integrated position, as the detected second position.


Integrating the detected first position and the detected second position may include predicting the integrated position of the mobile apparatus, assimilating the detected first position and the detected second position, and updating the predicted integrated position using the assimilated position, as the integrated position.


A non-transitory computer-readable recording medium may store a program to implement the method to identify the position of the mobile apparatus.


According to the mobile apparatus and the walking robot of the present disclosure, the performance in position recognition (accuracy and convergence in position recognition) of the mobile apparatus is enhanced by performing the position recognition through a distributed filter system, which includes a plurality of local filters each independently operating and a single fusion filter that integrates the position recognition result performed by each of the plurality of local filters.


In addition, with the mobile apparatus and the walking robot of the present disclosure, the position recognition through multi-sensor fusion is implemented through the distributed filter system, so the speed of position recognition of the mobile apparatus, that is, the operating speed of the filter, may be enhanced when compared to the case of the multi-sensor fusion performed by using a single filter system.





BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects of the disclosure will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:



FIG. 1 is a drawing showing an exterior of a walking robot, an example of a mobile apparatus in accordance with an embodiment of the present disclosure.



FIG. 2 is a drawing showing a configuration of a main mechanism and joint of a walking robot, an example of a mobile apparatus, in accordance with an embodiment of the present disclosure.



FIG. 3 is a control block diagram of a walking robot, an example of a mobile apparatus, in accordance with an embodiment of the present disclosure.



FIG. 4 is a drawing showing a configuration of a position recognition unit illustrated on FIG. 3.



FIG. 5 is a flow chart illustrating a position recognition method of a walking robot using a first local filter illustrated on FIG. 4.



FIG. 6 is a flow chart illustrating a position recognition method of a walking robot using a second local filter illustrated on FIG. 4.



FIG. 7 is a flow chart illustrating a position recognition method of a walking robot using a third local filter illustrated on FIG. 4.



FIG. 8 is a flow chart illustrating a position recognition method of a walking robot using a fourth local filter illustrated on FIG. 4.



FIG. 9 is a flow chart illustrating a position recognition method of a walking robot using a fusion filter illustrated on FIG. 4.



FIG. 10 is a flow chart illustrating a position recognition method of a walking robot in accordance with an embodiment of the present disclosure.





DETAILED DESCRIPTION

Reference will now be made in detail to the embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout.



FIG. 1 is a drawing illustrating an exterior of a walking robot, an example of a mobile apparatus, in accordance with an embodiment of the present disclosure.


As illustrated on FIG. 1, a walking robot 10, an example of a mobile apparatus in accordance with the present disclosure, is a biped walking robot that moves while standing erect by two legs 16L and 16R similar to legs of a human being, and includes an upper body 11 having a head 12, a torso 13, and two arms 14L and 14R, and a lower body 15 having the two legs 16L and 16R. A mechanism unit having a shape of the eyes of a human being on the head 12 is provided with a camera 120 mounted thereto to photograph the surroundings of a moving space.


With reference to the labels, the letter ‘L’ and ‘R’ that are followed after the numbers represent the left and right of the walking robot 10, respectively.


In the embodiment of the present disclosure, a biped walking robot is described as an example of a mobile apparatus. However, the present disclosure may be applied to various mobile robots, such as a cleaning robot in a household setting, a service robot in public spaces, a carrier robot in production facilities, or an assistant robot, for example. Furthermore, the present disclosure may be applied to a mobile apparatus not provided with an autonomous mobile function but configured to be operated while portably carried or held in a hand of a human being, such as a mobile phone, for example.



FIG. 2 is a drawing showing a configuration of a main mechanism and joint of a walking robot, an example of a mobile apparatus, in accordance with an embodiment of the present disclosure.


As illustrated on FIG. 2, the head 12 of the walking robot 10 is provided with the camera 120 mounted thereto to photograph the surroundings of the moving space.


The head 12 is connected to the torso 13 of the upper body 11 through a neck joint unit 17. The torso 13, the two arms 14L and 14R, and the two legs 16L and 16R are provided with a plurality of joint units such as a shoulder joint unit 18, an elbow joint unit 19, a wrist joint unit 20, a waist joint unit 21, a hip joint unit 22, a knee joint unit 23, and an ankle joint unit 24 installed thereto. Each of the plurality of joint units 18, 19, 20, 21, 22, 23, and 24 is provided with one to three rotating joints 25 included therein, depending on the degree of freedom, that is, the number of axes that a joint moves around. As an example, the hip joint unit 22 is provided thereto with three degrees of freedom, having the rotating joint 25 in a yaw direction (rotation of a z axis), the rotating joint 25 in a pitch direction (rotation of a y axis), and the rotating joint 25 in a roll direction (rotation of a x axis). Each of the joint units 18, 19, 20, 21, 22, 23, and 24 is connected by a link L (a structure illustrated as a straight line on FIG. 2).


The waist joint unit 21 installed at a lower portion of the upper body 11, and is provided with a pelvis 26 connected thereto to support the upper body 11. The pelvis 26 is connected to the hip joint unit 22 through a pelvis link 27. The pelvis link 27 is provided with an inertia sensor 130, that is, an Inertial Measurement Unit (IMU) installed thereto, to detect the posture information (the angle information) of the walking robot 10. The inertia sensor 130 is configured to generate the posture information (the angle information) of the roll direction, the pitch direction, and the yaw direction by detecting the relative angle of the pelvis link 27 with respect to the direction of gravity and an inertial frame. The inertia sensor 130 may be installed on the torso 13 or head 12 rather than the pelvis link 27.


Although not illustrated on FIG. 2, each of the joint units 18, 19, 20, 21, 22, 23, and 24 of the walking robot 10 is provided with an actuator, which corresponds to a driving unit on FIG. 3, such as a motor, driving each of the rotating joints 25 by a driving force (electricity or oil pressure), and with an encoder 110 (FIG. 3) installed to detect the rotating angle of each actuator, that is, the rotating angle of each of the rotating joints 25. A control unit 300 (FIG. 3), which is configured to control the overall movement of the walking robot 10, properly controls the actuators as such, so that various movements of the walking robot 10 may be implemented.



FIG. 3 is a controlled block diagram of a walking robot, an example of a mobile apparatus, in accordance with an embodiment of the present disclosure.


As illustrated on FIG. 3, the walking robot 10, an example of a mobile apparatus in accordance with an embodiment of the present disclosure, includes a sensor module 100, a control unit 200, a storage unit 400, and a driving unit 450.


The sensor module 100 includes a plurality of sensors to detect the information on the walking robot 10 and the moving space of the walking robot 10. The sensor module 100 may include various sensors, such as the encoder 110 to obtain the rotating angle information of the rotating joint that is related to a walking of the walking robot 10, the camera 120 to photograph the surroundings of the moving space on which the walking robot 10 walks, and the inertia sensor 130 to detect the posture information (the angle information) of the walking robot 10.


The encoder 110 detects the rotating angle of each actuator (the driving unit) installed to rotatively drive each rotating joint 25 provided at the hip joint unit 22, the knee joint unit 23, and the ankle joint unit 24.


The camera 120 detects the light reflected from an apparatus, and converts the light to a digital signal, thereby obtaining the image information of the surroundings of the moving space. As for the camera 120, a CCD (Charge-Coupled Device) camera, a CMOS (Complementary Metal Oxide Semiconductor) camera, or a TOF (Time of Flight) camera may be used, and other than the cameras as such, other apparatuses that are capable of obtaining the image information on the apparatus positioned on the path of the walking robot 10 may be used as a camera.


The inertia sensor 130 is configured to measure various navigation information, such as the acceleration, speed, and/or direction (angle) of the walking robot 10, and detect the slope and rotating angle of the roll direction, pitch direction, and/or yaw direction of the pelvis link 27. The inertia sensor 130 includes a tilt sensor (not shown) to measure the angle of the walking robot 10, and an angular velocity sensor (not shown) to measure the angular velocity of the walking robot 10. Here, for the slope sensor, an accelerometer (not shown) is used, and for the accelerometer, a rate-gyroscope (not shown) is used.


The control unit 200 is a controller configured to control the overall movement of the walking robot 10, and includes a first pre-processing unit 210, a second pre-processing unit 220, a third pre-processing unit 230, a fourth pre-processing unit 240, and a position recognition unit 300.


The first pre-processing unit 210, the second pre-processing unit 220, the third pre- processing unit 230, and the fourth pre-processing unit 240 perform the pre-processing, with respect to the detection information, such as the rotating angle information, image information, and inertia detection information that are delivered from the encoder 110, the camera 120, and the inertia sensor 130, to calculate information needed for the position recognition (hereinafter called measured information) of the walking robot 10, and transmits the calculated measured information to the position recognition unit 300.


The position recognition unit 300, by using various types of information delivered from the first pre-processing unit 210, the second pre-processing unit 220, the third pre-processing unit 230, and the fourth pre-processing unit 240, estimates the position and the posture of the walking robot 10. The configuration of the position recognition unit 300 will be described in detail by referring to FIG. 4.


The storage unit 400 is a memory configured to store predetermined information, which is needed to perform the position recognition of the walking robot 10 and an execution result of the position recognition. The storage unit 400 stores the mechanism information (length information) of the link (the mechanism structure connecting the joint units), the result of the position recognition (the position information of the landmark and the position/posture information of the walking robot) of the walking robot 10 that is calculated by using a plurality of algorithms (a plurality of filters) in the process of the walking of the walking robot 10, and a map related to the moving space (the working space) built by using a plurality of algorithms, particularly a Simultaneous Localization and Mapping (SLAM) algorithm.


In the embodiment of the present disclosure, the walking robot 10 is described as being configured to additionally have the storage unit 400 to store the predetermined information needed to perform the position recognition and the execution result of the position recognition, but the configuration of the walking robot 10 is not limited thereto. The walking robot 10 may be provided with an internal memory of the control unit 200 to store the predetermined information needed for position recognition without adopting the storage unit 400.


The driving unit 450 is an actuator, such as a motor, configured to deliver a driving force, that is by an electricity or an oil pressure, to each of the rotating joints 25 that forms each of the joint units 18, 19, 20, 21, 22, 23, and 24.The driving unit 450, according to the control signal delivered from the control unit 200, rotatively drives each of the rotating joints 25 of each of the joint units 18, 19, 20, 21, 22, 23, and 24.


Hereinafter, referring to FIG. 4, the configuration of the position recognition unit 300 illustrated on FIG. 3 will be described in detail.


As illustrated on FIG. 4, the position recognition unit 300 has a structure of a distributed filter system including a plurality of filters 310 to 350.


Here, the reference numerals of the position recognition unit 300 will be applied to the distributed filter system in the following description. In the embodiment of the present disclosure, the distributed filter system 300, as illustrated on FIG. 4, includes the first to the fourth local filters 310 to 340 and the single fusion filter 350. Each of the filters 310, 320, 330, 340, and 350 is independently operated, and when the position recognition of the walking robot 10 is performed, the result of the position recognition may be obtained from each of the filters 310, 320, 330, 340, and 350. All the filters 310, 320, 330, 340, and 350 are composed with a similar configuration of components that includes prediction units 312, 322, 332, 342, and 352, update units 314, 324, 334, 344, and 354, and assimilation units 316, 326, 336, 346, and 356. All the filters 310, 320, 330, 340, and 350 repeatedly perform a prediction stage, an update stage, and an assimilation stage until the movement of the walking robot 10 is being stopped.


Each of the prediction units 312, 322, 332, 342, and 352 of each of the filters 310, 320, 330, 340, and 350 performs the prediction stage that predicts new position/posture information of the walking robot 10 from recognized position/posture information of the walking robot 10. The recognized position/posture information is estimated, or recognized, in the update stage prior to the prediction stage.


Each of the update units 314, 324, 334, and 344 of each of the local filters 310, 320, 330, and 340 updates the position/posture information of the walking robot 10 that is predicted in the prediction stage, by using the detection information of each of the sensors 110, 120, and 130. In addition, the update unit 356 of the fusion filter 350 integrates the result of the position recognition (the updated position/posture information) of the walking robot 10 that is delivered from each of the update units 314, 324, 334, and 344 of each of the local filters 310, 320, 330, and 340, and updates the position/posture information of the walking robot, which is predicted in the prediction state, by using the integrated information.


Each of the assimilation units 316, 326, 336, and 346 of each of the local filters 310, 320, 330, and 340 reflects the result of the position recognition (the updated position/posture information) of the walking robot 10, which is delivered from the update unit 356 of the fusion filter 350, into the position/posture information of the walking robot 10 that is updated in the update stage. In addition, the assimilation unit 354 of the fusion filter 350 integrates the result of the position recognition (the updated position/posture information) of the walking robot 10, which is delivered from each of the update units 314, 324, 334, and 344 of each of the local filters 310, 320, 330, and 340, to the position/posture information of the walking robot 10 that is predicted in the prediction stage.


That is, each of the local filters 310, 320, 330, and 340 delivers the position/posture information of the walking robot 10 that is updated by using the detection information of each of the sensors 110, 120, and 130, and the fusion filter 350 integrates/updates the delivered position/posture information of the walking robot 10, and delivers the integrated/updated information to each of the local filters 310, 320, 330, and 340.


Hereinafter, the common movement process of each of the local filters 310, 320, 330, and 340 will be described. In the embodiment of the present disclosure, a Kalman Filter is used as an example of the operating filter of each of the local filters 310, 320, 330, and 340.


Each of the local filters 310, 320, 330, and 340 is structurally independent of the fusion filter 350, and forms various modules according to the sensors 110, 120, and 130 being used and the processing scheme of the information detected through the sensors 110, 120, and 130. Each of the local filters 310, 320, 330, and 340, has state variables (xL(k|k)) to estimate the position/posture information of the walking robot 10, a three-dimensional position (r), a three-dimensional posture (quaternion, q), a three-dimensional linear speed (v) with respect to a world coordinate, and a three-dimensional angular velocity (w) with respect to a body coordinate.


In the prediction stage of each of the local filters 310, 320, 330, and 340, the state variable is modeled according to Equation 1 below, prior to being used with the measured sensor information in the update stage by using a constant velocity model based on the estimated state variable.











[

Equation





1

]












x
L



(

k


k
-
1


)


=



[




r


(

k


k
-
1


)







q


(

k


k
-
1


)







v


(

k


k
-
1


)







ω


(

k


k
-
1


)





]







=



[





r


(


k
-
1



k
-
1


)


+


[


v


(


k
-
1



k
-
1


)


+


n
v



(
k
)



]


Δ





t








q


(


k
-
1



k
-
1


)


×

q


(


[


ω


(


k
-
1



k
-
1


)


+


n
ω



(
k
)



]


Δ





t

)









v


(


k
-
1



k
-
1


)


+


n
v



(
k
)









ω


(


k
-
1



k
-
1


)


+


n
ω



(
k
)






]








Here, nv and nw are defined as noise components of the speed and the angular velocity, respectively.


In the update stage of each of the local filters 310, 320, 330, and 340, a Kalman Filter Update is performed by using the measured information z(k), which is obtained through the pre-processing of the detection information of each of the sensors 110, 120, and 130, and a predicted measurement value H(k), which is calculated by use of the state variable (xL(k|k)) obtained from the prediction stage. After the update on the predicted position/posture information of the walking robot 10 is completed, information is delivered to the fusion filter 350 in the form of an input with respect to an information filter as shown in Equation 2 and Equation 3 below.






i(k)=HT(k)R−1(k)z(k)  [Equation 2]






I(k)=HT(k)R−1(k)H(k)  [Equation 3]


Here, H(k) is referred to as the Jacobian matrix of the predicted measurement information H(k), and R(k) is defined as the covariance matrix configured to express the uncertainty of the measured information z(k).


Each time the detection information is input from each of the sensors 110, 120, and 130, the prediction and the update stages are performed in a repeated manner. When the result of the position recognition (the updated position/posture information of the walking robot) from the fusion filter 350 is input, the assimilation stage is performed, in which the result of the position recognition from the fusion filter 350 is reflected into the position/posture of the walking robot 10, which is updated in the update stage of each of the local filters 310, 320, 330, and 340. The assimilation stage is performed using the Kalman Filter Update that is similar to the update stage, so that each of the local filters 310, 320, 330, and 340 is supplied with information from other sensors, thereby enhancing the accuracy in estimation of the position of the filter system 300 as a whole.


Hereinafter, referring to FIGS. 5 to 8, the process of recognizing the position of the walking robot 10 by using each of the local filters 310, 320, 330, and 340 will be described.



FIG. 5 is a flow chart illustrating a position recognition method of the walking robot 10 by using the first local filter 310 illustrated on FIG. 4.


The first local filter 310 uses the encoder 110 as the sensor configured to perform the position recognition of the walking robot 10, and updates the position/posture information of the walking robot 10 by using the odometry information of the walking robot 10. For the convenience of description, the first local filter 310 is defined as the odometry filter.


As an initial condition to describe the operation of an embodiment of the present disclosure, the storage unit 400 is assumed to store the mechanism information (the length information) of the link (the mechanism structure connecting the joint units) of the walking robot 10 as predetermined information used by the walking robot 10 to perform the position recognition. In addition, with respect to the temporal order, a prior stage will be marked as ‘k−1’, and a next stage of the prior stage (the present stage) will be marked as ‘k’.


As illustrated on FIG. 5, the prediction unit 312 of the first local filter 310 is configured to predict the position/posture information of the next stage ‘k’ of the walking robot 10 from new position/posture information of the walking robot 10, which is obtained by reflecting the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is estimated (recognized) in the prior update stage ‘k−1’ (510). The process as such is categorized as the prediction stage of the position recognition algorithm.


Next, the first pre-processing unit 210 obtains the rotating angle information of the rotating joint, which composes the joint unit that is related to the walking motion of the walking robot 10, from the encoder 110 (520).


Then, the first pre-processing unit 210 calculates odometry information by using the mechanism information of each of the links and the rotating angle information (530). The odometry information represents the position (coordinate) information and the posture (angle) information of the walking robot 10 with respect to an origin point. The origin point is a point on a coordinate system from which the walking robot starts the walking motion. The odometry information is calculated in an accumulating manner by using dead reckoning.


Next, the first pre-pressing unit 210, using the odometry information of the ‘k’ stage and the ‘k−1’ stage, calculates the relative posture change information of the walking robot 10 (540). The calculated relative posture change information of the walking robot 10 is the measured information z(k), which is previously described.


The predicted measurement information h(k) at the odometry filter 310 may be expressed in Equation 4 below.






h
odo(k)=h3(r(k|k−1),q(k|k−1),r(k−1|k−1), q(k−1|k−1))  [Equation 4]


Thus, the update unit 314 enters the calculated relative posture change information of the walking robot 10 as the z(k) of Equation 2, which is previously described, calculates a Jacobian matrix of Equation 4, and then enters the calculated result as the H(k) of Equation 2 and Equation 3, thereby updating the position/posture information of the walking robot 10 that is predicted in the prediction stage (550). The process as such is categorized as the update stage of the position recognition algorithm. The update unit 314 transmits the updated position/posture information of the walking robot 10 to the assimilation unit 316.


Then, the assimilation unit 316 determines whether the result of the position recognition (the updated position/posture information) of the walking robot 10 has been received from the update unit 356 of the fusion filter 350 (560). When the result of the position recognition of the walking robot 10 is received from the update unit 356 of the fusion filter 350 (‘Yes’ at operation 560), the assimilation unit 316 reflects the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is updated in the update stage, and transmits the position/posture information of the walking robot 10, which is provided with the result of the position recognition of the fusion filter 350 reflected thereinto, to the prediction unit 312 (570). The process as such is categorized as the assimilation stage of the position recognition algorithm.


Meanwhile, when the result of the position recognition of the walking robot 10 is not entered from the update unit 356 of the fusion filter 350 (‘No’ at operation 560), the assimilation unit 316 proceeds to operation 580 without performing the assimilation stage.


Next, the control unit 200 determines whether the moving of the walking robot 10 is stopped (580). The control unit 200 determines that the moving of the walking robot 10 is stopped if a ‘Stop Walking Command’ of the walking robot 10 is entered through an input unit (not shown) by a user, or if no further rotating angle information is received from the encoder 110.


If it is determined that the moving of the walking robot 10 is not stopped (‘No’ at operation 580), the control unit 200 returns to the operation 510, and continuously controls the walking robot 10 to perform the position recognition. If it is determined that the moving of the walking robot 10 is stopped (‘Yes’ at operation 580), the control unit 200 completes the position recognition of the walking robot 10.



FIG. 6 is a flow chart illustrating a position recognition method of the walking robot 10 by using the second local filter 320 illustrated on FIG. 4.


The second local filter 320 uses the camera 120 as the sensor configured to perform the position recognition of the walking robot 10, and by using the relative posture change information of the walking robot 10, updates the predicted position/posture information of the walking robot 10. For the convenience of description, the second local filter 320 is defined as a visual sensor odometry filter.


As illustrated in FIG. 6, the prediction unit 322 of the second local filter 320 is configured to predict the position/posture information of the next stage ‘k’ of the walking robot 10 from new position/posture information of the walking robot 10, which is obtained by reflecting the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is estimated (recognized) in the prior update stage ‘k−1’ (610). The process as such is categorized as the prediction stage of the position recognition algorithm.


Next, the second pre-processing unit 220 obtains the image information of the surroundings of the moving space from the camera 120 (620).


Then, the second pre-processing unit 220 extracts a visual feature point from the image information obtained in the prior state ‘k−1’ and the image information obtained in the present state ‘k’, and performs a matching on the extracted features (630).


Next, the second pre-processing unit 220, in the similar manner as the odometry filter 310, calculates the relative posture change information of the walking robot 10 from the correlation obtained from the extracting and the matching of the feature points (640). The calculated relative posture change information of the walking robot 10 is the measured information z(k), which is previously described.


The predicted estimate information h(k) at the visual sensor based filter 320 may be expressed in Equation 5 below.






h
uo(k)=h1(r(k|k−1), q(k|k−1),r(k−1|k−1), q(k−1|k−1))  [Equation 5]


Thus, the update unit 324 enters the calculated relative posture change information of the walking robot 10 as the z(k) of Equation 2, which is previously described, calculates a Jacobian matrix of Equation 5, and enters the calculated result as the H(k) of Equation 2 and Equation 3, thereby updating the position/posture information of the walking robot 10 that is predicted in the prediction stage (650). The process as such is categorized as the update stage of the position recognition algorithm. The update unit 324 transmits the updated position/posture information of the walking robot 10 to the assimilation unit 326.


Then, the assimilation unit 326 determines whether the result of the position recognition (the updated position/posture information) of the walking robot 10 has been received from the update unit 356 of the fusion filter 350 (660). When the result of the position recognition of the walking robot 10 is entered from the update unit 356 of the fusion filter 350 (‘Yes’ at operation 660), the assimilation unit 326 reflects the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is updated in the update stage, and transmits the position/posture information of the walking robot 10, which is provided with the result of the position recognition of the fusion filter 350 updated thereinto, to the prediction unit 322 (670). The process as such is categorized as the assimilation stage of the position recognition algorithm.


Meanwhile, when the result of the position recognition of the walking robot 10 is not entered from the update unit 356 of the fusion filter 350 (‘No’ at operation 660), the assimilation unit 326 proceeds to operation 680 without performing the assimilation stage.


Next, the control unit 200 determines whether the moving of the walking robot 10 is stopped (680). The control unit 200 determines that the moving of the walking robot 10 is stopped if a ‘Stop Walking Command’ of the walking robot 10 is entered through an input unit (not shown) by a user, or if no further rotating angle information is received from the encoder 110.


If the moving of the walking robot 10 is not stopped (‘No’ at operation 680), the control unit 200 returns to the operation 610, and continuously controls the walking robot 10 to perform the position recognition. If the moving of the walking robot 10 is stopped (‘Yes’ at operation 680), the control unit 200 completes the position recognition process of the walking robot 10.



FIG. 7 is a flow chart illustrating a position recognition method of the walking robot 10 by using the third local filter 330 illustrated on FIG. 4.


The third local filter 330 uses the camera 120 as the sensor configured to perform the position recognition of the walking robot 10, and simultaneously estimates the three-dimensional position information of feature points extracted from the image information and the three-dimensional position/posture information of the walking robot 10. Thus, different from other filters 310, 320, and 340, the third filter 330 further includes a state variable yi(k|k), which is related to the position of the feature point.


For the convenience of description, the third local filter 330 is defined as a visual sensor based SLAM filter. The visual sensor based SLAM filter is capable of estimating the position/posture information of the walking robot 10 on the world coordinate, but has a constraint that the calculation time is increased as the moving distance increases because the visual sensor based SLAM filter maintains the position information of the features as the state variables.


As illustrated on FIG. 7, the prediction unit 332 of the third local filter 330 is configured to predict the position/posture information of the next stage ‘k’ of the walking robot 10 from new position/posture information of the walking robot 10, which is obtained by reflecting the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is estimated (recognized) in the prior update stage ‘k−1’ (710). The process as such is categorized as the prediction stage of the position recognition algorithm.


Next, the third pre-processing unit 320 obtains the image information of the surroundings of the space in which the walking robot moves from the camera 120 (720).


Then, the third pre-processing unit 320 determines whether the feature point extracted from the current image information is identical to the existing landmarks stored in the storage unit 400 (730). That is, the third pre-processing unit 330 determines, through the tracking and matching process of the feature points, whether the feature point extracted from the current image information corresponds to the existing landmark being used, or whether to register the extracted feature point as a new feature point.


Next, the third pre-processing unit 320 calculates the position information of the feature point that is registered as the existing landmark, and the position information of the feature point that is extracted from the current image information and matched to the existing landmark (740). The calculated position information of the feature point matched to the existing landmark is the measured information z(k), which is previously described.


The predicted measurement information h(k) at the visual sensor based SLAM filter 330 may be expressed in Equation 6 below.






h
vs
i(k)=h2(r(k|k−1),q(k|k−1),yt(k|k−1))  [Equation 6]


Thus, the update unit 334 enters the calculated position information of the existing landmark and the matched feature point as the z(k) of Equation 2 which is previously described, calculates a Jacobian matrix of Equation 6, and then enters the calculated result as the H(k) of Equation 2 and Equation 3, thereby updating the position/posture information of the walking robot 10 that is predicted in the prediction stage while updating the position information of the feature point (750). The process as such is categorized as the update stage of the position recognition algorithm. The update unit 334 transmits the updated position/posture information of the walking robot 10 to the assimilation unit 336.


Then, the assimilation unit 336 determines whether the result of the position recognition (the updated position/posture information) of the walking robot 10 has been received from the update unit 356 of the fusion filter 350 (760). When the result of the position recognition of the walking robot 10 is entered from the update unit 356 of the fusion filter 350 (‘Yes’ operation 760), the assimilation unit 336 reflects the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is updated in the update stage, and transmits the position/posture information of the walking robot 10, which is provided with the result of the position recognition of the fusion filter 350 reflected thereinto, to the prediction unit 332 (770). The process as such is categorized as the assimilation stage of the position recognition algorithm.


Meanwhile, when the result of the position recognition of the walking robot 10 is not entered from the update unit 356 of the fusion filter 350 (‘No’ at operation 760), the assimilation unit 336 proceeds to the operation 780 without performing the assimilation stage.


Next, the control unit 200 determines whether the moving of the walking robot 10 is stopped (780). The control unit 200 determines that the moving of the walking robot 10 is stopped if a ‘Stop Walking Command’ of the walking robot 10 is entered through an input unit (not shown) by a user, or if no further rotating angle information is received from the encoder 110.


If the moving of the walking robot 10 is not stopped (‘No’ at operation 780), the control unit 200 returns to the operation 710, and continuously controls the walking robot 10 to perform the position recognition. If the moving of the walking robot 10 is stopped (‘Yes’ at operation 780), the control unit 200 completes the position recognition process of the walking robot 10.



FIG. 8 is a flow chart illustrating a position recognition method of the walking robot 10 by using the fourth local filter 340 illustrated on FIG. 4.


The fourth local filter 420 uses the inertial sensor 130 as the sensor configured to perform the position recognition of the walking robot 10, and by using the three-dimensional acceleration information and the three-dimensional angular velocity information, updates the predicted position/posture information of the walking robot 10. For the convenience of description, the fourth local filter 420 is defined as the Inertial Measurement Unit (IMU).


As illustrated by FIG. 8, the prediction unit 342 of the fourth local filter 420 is configured to predict the position/posture information of the next stage ‘k’ of the walking robot 10 from new position/posture information of the walking robot 10, which is obtained by reflecting the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is estimated (recognized) in the prior update stage ‘k−1’ (810). The process as such is categorized as the prediction stage of the position recognition algorithm.


Next, the fourth pre-processing unit 230 obtains measured inertial information from the inertial sensor 130 (820).


Then, the fourth pre-processing unit 230 calculates three-dimensional acceleration information and three-dimensional angular velocity information from acceleration information and angular velocity information detected through the inertial sensor 130 (830). The calculated three-dimensional acceleration information and three-dimensional angular velocity information are the measured information z(k), which is previously described.


The predicted measurement information h(k) at the Inertial Measurement Unit (IMU) filter 340 may be expressed in Equation 7 below.






h
imu(k)=h4(q(k|k−1),w(k|k−1))  [Equation 7]


Thus, the update unit 344 enters the calculated three-dimensional acceleration information and the three-dimensional angular velocity information as the z(k) of Equation 2, which is previously described, calculates a Jacobian matrix of Equation 7, and then enters the calculated result to the H(k) of Equation 2 and Equation 3, thereby updating the position/posture information of the walking robot 10 that is predicted in the prediction stage (840). The process as such is categorized as the update stage of the position recognition algorithm. The update unit 344 transmits the updated position/posture information of the walking robot 10 to the assimilation unit 346.


Then, the assimilation unit 346 determines whether the result of the position recognition (the updated position/posture information) of the walking robot 10 has been received from the update unit 356 of the fusion filter 350 (850). When the result of the position recognition of the walking robot 10 is entered from the update unit 356 of the fusion filter 350 (‘Yes’ at operation 850), the assimilation unit 346 reflects the result of the position recognition of the fusion filter 350 into the position/posture information of the walking robot 10 that is updated in the update stage, and transmits the position/posture information of the walking robot 10, which is provided with the result of the position recognition of the fusion filter 350 reflected thereinto, to the prediction unit 342 (860). The process as such is categorized as the assimilation stage of the position recognition algorithm.


Meanwhile, when the result of the position recognition of the walking robot 10 is not entered from the update unit 356 of the fusion filter 350 (‘No’ at operation 850), the assimilation unit 346 proceeds to the operation 870 without performing the assimilation stage.


Next, the control unit 200 determines whether the moving of the walking robot 10 is stopped (870). The control unit 200 determines that the moving of the walking robot 10 is stopped if a ‘Stop Walking Command’ of the walking robot 10 is entered through an input unit (not shown) by a user, or if no further of rotating angle information is received from the encoder 110.


If the moving of the walking robot 10 is not stopped (‘No’ at operation 870), the control unit 200 returns to the movement 810, and continuously controls the walking robot 10 to perform the position recognition. If the moving of the walking robot 10 is stopped (‘Yes’ at operation 870), the control unit 200 completes the position recognition process of the walking robot 10.


Hereinafter, referring to FIG. 4 again, the operation of the fusion filter 350 will be described.


The basic operation principle of the fusion filter 350 is similar to that of the local filters 310 to 340. However, the fusion filter 350 uses an information filter as an operation filter, the information filter forming a dual type in cooperation with Kalman filter that is used as the operating filter for each of the local filters 310, 320, 330, and 340. The information filter, in order to estimate the position and the posture of the walking robot 10, is provided with an information state vector yG(k|k) and an information matrix YG(k|k) as the state variables, as expressed in Equation 8 and Equation 9 below.






y
G(k|k)=P−1G(k|k)xG(k|k)  [Equation 8]






Y
G(k|k)=P−1G(k|k)  [Equation 9]


The information filter is used as the operating filter of the fusion filter 350, so that the information filter is capable of performing a fusion of the result of the position recognition (the updated position/posture information) of the walking robot, which is transmitted from each of the local filters 310, 320, 330 and 340 at the assimilation stage of the fusion filter 350, in the form of an addition, as shown in Equation 10 and the Equation 11.











y
G



(

k

k

)


=



y
G



(

k


k
-
1


)


+




i
=
1

N




i
i



(
k
)








[

Equation





10

]








Y
G



(

k

k

)


=



Y
G



(

k


k
-
1


)


+




i
=
1

N




I
i



(
k
)








[

Equation





11

]







The result of the position recognition of the fusion filter 350 that is updated by using the position/posture information of the walking robot 10 that is integrated in the assimilation stage is again delivered to each of the local filters 310, 320, 330, and 340. Thus, the consistency of the estimation of the position recognition of the overall distributed filter system 300 is maintained.


The configuration of the distributed filter system 300 may be such that in a case when a problem occurs at the local filters 310, 320, 330, and 340, the system may shut off information from being delivered to the fusion filter 350, and continue the position recognition again after resolving the problem at the corresponding local filters 310, 320, 330, and 340, thereby enhancing the robustness of the overall position recognition system.



FIG. 9 is a flow chart illustrating a position recognition method of the walking robot 10 by using the fusion filter 350 illustrated on FIG. 4.


As illustrated on FIG. 9, the prediction unit 352 of the fusion filter 350 is configured to predict the position/posture information of the next stage ‘k’ of the walking robot 10 from the position/posture information of the walking robot 10 estimated (recognized) at the prior update stage ‘k−1’ (910). The process as such is categorized as the prediction stage of the position recognition algorithm.


Next, the assimilation unit 354 obtains the result of the position recognition (the updated position/posture information) of the walking robot 10 from each of the local filters 310, 320, 330, and 340 (920).


Then, the assimilation unit 354 integrates the result of the position recognition of each of the local filters 310, 320, 330, and 340 (930).


Next, the update unit 356 updates the position/posture information of the walking robot 10, which is predicted in the prediction stage, by using the integrated result of the position recognition (940). The process as such is categorized as the update stage of the position recognition algorithm. The update unit 356 transmits the updated position/posture information of the walking robot 10 to each of the assimilation units 316, 326, 336, and 346 of each of the local filters 310, 320, 330, and 340 (950).


Next, the control unit 200 determines whether the moving of the walking robot 10 is stopped (960). The control unit 200 determines that the moving of the walking robot 10 is stopped if a ‘Stop Walking Command’ of the walking robot 10 is entered through an input unit (not shown) by a user, or if no further of rotating angle information is received from the encoder 110.


If the moving of the walking robot 10 is not stopped (‘No’ at operation 960), the control unit 200 returns to operation 910, and continuously controls the walking robot 10 to perform the position recognition. If the moving of the walking robot 10 is stopped (‘Yes’ at operation 960), the control unit 200 completes the position recognition process of the walking robot 10.


Referring to FIGS. 1 to 9 above, among various mobile apparatuses, the walking robot 10 is used as an example to describe the case when the movement in the position recognition of a walking robot is performed by using a distributed filter system. However, the present disclosure is not limited thereto. The position recognition may be applied to other mobile devices (such as a mobile phone, for example), which is not provided with an autonomous mobile function, but may be carried and controlled by a human being while moving, by using the distributed filter system as suggested in the present disclosure.


In addition, using an encoder, a camera, and an inertial sensor (a total of three sensors) is described above as an example of sensors used to perform the position recognition of a mobile apparatus, but rather than the above sensors, any sensor or apparatus, such as a distance sensor, a compass sensor, or a Global Positioning System (GPS), for example, may be used in performing the position recognition of a mobile apparatus.



FIG. 10 is a flow chart illustrating a position recognition method of the walking robot 10 in accordance with an embodiment of the present disclosure.


Hereinafter, referring to FIG. 10, the method of position recognition of a mobile apparatus in accordance with an embodiment of the present disclosure will be described.


First, the position recognition of a mobile apparatus is performed at each of the local filters (1010).


Then, each of the local filters transmits the result of the position recognition to the fusion filter (1020).


Next, the fusion filter integrates the result of the position recognition transmitted from each of the local filters (1030).


After then, the fusion filter, by using the integrated result of the position recognition, performs the position recognition of the mobile apparatus (1040).


Next, the fusion filter transmits the result of the position recognition to each of the local filters (1050).


After then, a determination is made whether the moving of the mobile apparatus is stopped (1060). If the moving of the mobile apparatus is not stopped (‘No’ at operation 1060), the movement of position recognition of the mobile apparatus is continuously performed by returning to the operation 1010.


Meanwhile, if the moving of the mobile apparatus is stopped (‘Yes’ at operation 1060), the position recognition process of the mobile apparatus is finished.


The above-described embodiments may be recorded in computer-readable media including program instructions to implement various operations embodied by a computer. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. The program instructions recorded on the media may be those specially designed and constructed for the purposes of embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. The computer-readable media may also be a distributed network, so that the program instructions are stored and executed in a distributed fashion. The program instructions may be executed by one or more processors. The computer-readable media may also be embodied in at least one application specific integrated circuit (ASIC) or Field Programmable Gate Array (FPGA), which executes (processes like a processor) program instructions. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The above-described devices may be configured to act as one or more software modules in order to perform the operations of the above-described embodiments, or vice versa.


Although a few embodiments of the present disclosure have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the disclosure, the scope of which is defined in the claims and their equivalents.

Claims
  • 1. A mobile apparatus, comprising: a plurality of sensors;a plurality of local filters, each configured to receive detection information from at least one of the plurality of sensors to perform position recognition of the mobile apparatus; anda fusion filter configured to integrate the position recognition result of the plurality of local filters and to perform position recognition of the mobile apparatus by using the integrated position recognition result.
  • 2. The mobile apparatus of claim 1, wherein each of the plurality of local filters and the fusion filter is independently operated.
  • 3. The mobile apparatus of claim 1, wherein each of the plurality of local filters comprises: a prediction unit configured to predict position information and posture information of the mobile apparatus;an update unit configured to update the predicted position information and the predicted posture information of the mobile apparatus by using the detection information received from the at least one of the plurality of sensors; andan assimilation unit configured to integrate the updated position information and the updated posture information of the mobile apparatus with the position recognition result of the fusion filter.
  • 4. The mobile apparatus of claim 3, wherein the fusion filter comprises: a prediction unit configured to predict position information and posture information of the mobile apparatus;an assimilation unit configured to integrate the predicted position information and the predicted posture information of mobile apparatus with the position recognition result of the plurality of local filters; andan update unit configured to update the predicted position information and the predicted posture information of the mobile apparatus by using the integrated position recognition result.
  • 5. The mobile apparatus of claim 4, wherein the update unit provided at each of the plurality of local filters transmits the updated position information and the updated posture information of the mobile apparatus to the assimilation unit provided at the fusion filter.
  • 6. The mobile apparatus of claim 5, wherein the update unit provided at the fusion filter transmits the updated position information and the updated posture information of the mobile apparatus to the assimilation unit provided at each of the plurality of local filters.
  • 7. A walking robot, comprising: a plurality of sensors;a plurality of local filters, each configured to perform position recognition of the walking robot by receiving detection information from at least one of the plurality of sensors; anda fusion filter configured to integrate the position recognition result of the plurality of local filters and perform position recognition of the walking robot by using the integrated position recognition result.
  • 8. The walking robot of claim 7, wherein each of the plurality of local filters and the fusion filter is independently operated.
  • 9. The walking robot of claim 7, wherein the plurality of sensors comprises: an encoder configured to obtain rotating angle information of a rotating joint that is related to a walking of the walking robot;a camera configured to obtain image information of surroundings of a space on which the walking robot walks; andan inertia sensor configured to obtain inertia measurement information of the walking robot.
  • 10. The walking robot of claim 7, wherein the plurality of local filters comprises: a first local filter configured to calculate odometry information by using the rotating angle information detected through the encoder and mechanism information of each link that forms the walking robot, and to perform the position recognition of the walking robot by using the odometry information;a second local filter configured to perform the position recognition of the walking robot by using relative posture change information of the walking robot, which is calculated by using the image information detected through the camera;a third local filter configured to perform the position recognition and a map building of the walking robot by using the image information detected through the camera; anda fourth local filter configured to perform the position recognition of the walking robot by using the inertia measurement information detected through the inertia sensor.
  • 11. The walking robot of claim 10, wherein the odometry information corresponds to position information and posture information of the walking robot on an origin point coordinate system of the moving space.
Priority Claims (1)
Number Date Country Kind
10-2011-0114730 Nov 2011 KR national