Self-growing software is a software system that has the capability of evolving its functionalities and configurations by itself based on dynamically monitored situations. Self-growing software is especially necessary for intelligent service robots, which must have the capacity to monitor their surrounding environments and provide appropriate behaviors for human users. Intelligent service robots often face problems that cannot be resolved with the current conventional software technology. To support self-growing software for intelligent service robots, the SemBots project is developing a cell-based distributed repository system that allows robots and developers transparently to share robot functionalities. To accomplish the creation of evolutionary repositories, we invented the concept of a cell, which is a logical group of distributed repositories based upon the functionalities of components. In addition, it is also a unit for the evolutionary growth of the components within the repositories. In this thesis, we describe the requirements and architecture of the cell-based repository system for self-growing software. We also present a prototype implementation and experiment of the repository system. Through the cell-based repositories, we achieve improved performance of self-growing actions for robots and efficient sharing of components between robots and developers.
지능형 서비스 로봇은 처할 수 있는 모든 환경과 상황을 예측하기가 어렵고, 새로운 컴포넌트들의 지속적인 개발과 기존 컴포넌트의 업데이트로 인해 필요한 기능을 모두 내부에 가지고 있을 수 없다. 이 문제를 해결하기 위해 자가 성장 로봇 소프트웨어를 개발 중에 있고, 실험을 통해 자가 성장의 낮은 성능이란 문제점과 가용한 컴포넌트와 저장소의 개수가 늘어남에 따라 이러한 것을 로봇이나 다른 개발자들이 효율적으로 사용할 수 있도록 해주는 것이 어려워 진다는 문제점을 도출하였다. 이러한 문제점들을 해결하기 위해 우리는 컴포넌트 온톨로지의 기능적인 측면을 이용하여 물리적으로 분산된 저장소들을 논리적으로 그룹화한 단위인 셀을 정의하였고 셀 기반의 컴포넌트 저장소를 개발하였다. 셀은 기능측면의 논리적인 접근으로 분산된 저장소들을 투명하게 접근할 수 있도록 지원해 주고, 로봇과 개발자들이 전체 관련 컴포넌트들만 검색할 수 있도록 해 주므로 검색의 성능을 향상 시킬 수 있습니다. 마지막으로 개발자들이 자신의 로컬 저장소에 개발된 컴포넌트를 개발하여 기술해 놓으면 자동적으로 이러한 변화가 반영되어 다른 개발자들이나 로봇이 즉시 이용할 수 있도록 해주는 투명한 공유를 가능케 해 줍니다. 이러한 셀 기반 저장소의 아키텍처와 프로토타입을 제시하여 자가 성장 로봇 소프트웨어를 지원할 수 있는 저장소의 프레임워크를 제시하였다.