KR20080113685A - Modularized mobile robot systemn - Google Patents

Modularized mobile robot systemn Download PDF

Info

Publication number
KR20080113685A
KR20080113685A KR1020070062467A KR20070062467A KR20080113685A KR 20080113685 A KR20080113685 A KR 20080113685A KR 1020070062467 A KR1020070062467 A KR 1020070062467A KR 20070062467 A KR20070062467 A KR 20070062467A KR 20080113685 A KR20080113685 A KR 20080113685A
Authority
KR
South Korea
Prior art keywords
module
robot
mobile
vision
sensor
Prior art date
Application number
KR1020070062467A
Other languages
Korean (ko)
Inventor
최혁렬
노세곤
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020070062467A priority Critical patent/KR20080113685A/en
Publication of KR20080113685A publication Critical patent/KR20080113685A/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/005Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators using batteries, e.g. as a back-up power source
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/04Viewing devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

A mobile robot system is provided to modularize the functions of a personal robot and establish organic connection environment and expandability between the modules through standardized H/W and S/W interface. A mobile robot system comprises a vision module which processes image data from a camera in order to extract the feature of an object, a sensor module which processes the signal from a sensor mounted on a robot, a mobile module which provides the robot with portability, and an interface module which performs determination based on the results from the vision module, the sensor module, and the mobile module and operates itself.

Description

모듈화된 모바일 로봇 시스템{Modularized Mobile Robot systemN}Modularized Mobile Robot SystemN

도 1은 종래의 모듈 기반 퍼스널 로봇을 위한 미들웨어의 구조를 도시한 블록도,1 is a block diagram showing the structure of a middleware for a conventional module-based personal robot,

도 2는 모듈이 통합된 고수준 지능의 제어 하에서 로봇의 부분들로서 조합되며, 이 능력은 적응 가능 구성의 특징을 나타내는 도면,2 is combined as parts of a robot under the control of a high level of intelligence with integrated modules, the capability of which is characterized by an adaptive configuration,

도 3은 VM-D의 구조를 나타내는 도면,3 is a diagram illustrating a structure of a VM-D;

도 4는 RPL-컴파일러에 의해 컴파일되는 것을 나타내는 도면,4 shows that it is compiled by the RPL-compiler,

도 5는 모듈 인터페이스와 포트의 구성을 나타내는 도면,5 is a diagram illustrating a configuration of a module interface and a port;

도 6은 모듈의 소프트웨어의 구조를 나타내는 도면,6 is a diagram showing the structure of software of a module;

도 7은 API에 따른 소프트웨어 레이아웃,7 is a software layout according to the API,

도 8은 본 발명에 따른 모듈의 표준 하드웨어 인터페이스를 나타내는 도면,8 shows a standard hardware interface of a module according to the invention,

도 9는 본 발명에 따른 모듈의 조립 공정을 나타내는 도면,9 is a view showing an assembly process of a module according to the present invention;

도 10은 본 발명에 따른 유닛의 커넥터구조를 나타내는 도면,10 is a view showing a connector structure of a unit according to the present invention;

도 11은 IEEE1394를 통한 모듈의 접속 구조를 나타내는 도면,11 is a view showing a connection structure of a module via IEEE1394;

도 12는 IEEE1394 쓰레드를 나타내는 도면,12 is a diagram illustrating an IEEE1394 thread,

도 13은 비젼 모듈-D, 센서 모듈-D, 중재기 모듈-D 및 모바일 모듈-D로 구성된 DRP I를 나타내는 도면,FIG. 13 shows a DRP I composed of a vision module-D, a sensor module-D, an arbiter module-D, and a mobile module-D; FIG.

도 14는 본 발명에 따른 모듈의 공통 구성 부품을 나타내는 도면,14 shows a common component of a module according to the invention,

도 15는 본 발명에 따른 모듈의 조립 상태를 나타내는 도면,15 is a view showing the assembled state of the module according to the present invention;

도 16은 본 발명에 따른 모바일 모듈을 나타내는 도면,16 is a view showing a mobile module according to the present invention;

도 17은 본 발명에 따른 센서 모듈을 나타내는 도면,17 is a view showing a sensor module according to the present invention;

도 18은 도 17에 도시된 센서 모듈의 블록도,18 is a block diagram of the sensor module shown in FIG. 17;

도 19는 본 발명에 따른 비젼 모듈을 나타내는 도면,19 is a view showing a vision module according to the present invention,

도 20은 본 발명에 따른 중재기 모듈을 나타내는 도면,20 illustrates an arbiter module according to the present invention;

도 21은 도 20에 도시된 중재기 모듈의 구성을 나타내는 도면,21 is a view showing the configuration of the arbiter module shown in FIG.

도 22는 표준화에 따른 모듈의 집적화를 나타내는 도면,22 is a diagram illustrating integration of a module according to standardization;

도 23은 다른 접속에 의해 각종 어셈블리들에 통합되는 각종 모듈을 나타낸 도면,23 shows various modules integrated into various assemblies by different connections;

도 24는 모듈 사이의 유효한 이동을 설명하는 도면,24 is a diagram illustrating valid movement between modules;

도 25, 도 26 및 도 27은 DRP I의 재구성가능 구성을 설명하는 도면.25, 26 and 27 illustrate a reconfigurable configuration of DRP I.

본 발명은 모듈화되고 이동 가능한 로봇 시스템에 관한 것으로, 특히 독립적인 시스템으로서의 구조 및 값을 갖는 로봇의 기능을 확장하거나 다른 로봇에 적용할 수 있는 모듈화된 모바일 로봇 시스템에 관한 것이다.The present invention relates to a modular and movable robotic system, and more particularly to a modular mobile robotic system that can extend the functionality of a robot having a structure and value as an independent system or be applied to other robots.

일반적으로 로봇(Robot)은 인간의 손발과 같은 동작을 하는 기계로서, 초창기에는 제조업용 로봇이 다수를 이루었다. 그러나 최근에는 다양한 기술의 개발과 사용자들의 요구에 의해 인간의 생활에 더욱 밀접해진 퍼스널 로봇이 등장하고 있다. 퍼스널 로봇(Personal Robot)이란 인간의 생활에 편리를 주기 위해 지능을 가지는 대인지원용 로봇이다. 편리한 서비스(Service)를 제공하기 위해 퍼스널 로봇은 인간과의 상호작용을 해야 하며, 이를 위해 자유로운 이동, 상황 인식, 통신 등의 기능을 갖추어야 한다. 퍼스널 로봇은 다양한 형태로 개발되고 있으며, 그 예로는 청소용, 애완용, 교육용, 또는 장애인 안내용 등이 있다. In general, a robot (Robot) is a machine that operates like human hands and feet, the manufacturing robots in the early days made a large number. Recently, however, personal robots have become more closely related to human life by the development of various technologies and the demands of users. Personal Robot is a personal support robot that has intelligence to give convenience to human life. To provide a convenient service, a personal robot must interact with humans, and for this purpose, it must be equipped with functions such as free movement, situation awareness, and communication. Personal robots are being developed in various forms, such as cleaning, pets, education, or handicapped guide.

최근에 사람들의 일상 생활의 경험은 기술의 진보로 인해 크게 변하고 있고, 이들 진보는 가정에서 생활의 품질을 높이고 있다. 예컨대, 가사, 보안, 교육 및 청소의 분야에서, 사람들은 디지털 가전기기, 가정 네트워크, 모바일 장치 등을 포함한 환경에 이미 익숙해져 있다. 가정 자동화는 이전에 의미하는 바에 따라서는 불필요한 아이디어이지만, 위에서 언급한 기술이 도움으로 최첨단 기술로 재정의되고 있다. 가정 자동화는 아주 전망 있는 분야가 되었고, 다수의 관련 분야에서 이미 상업화가 진행되어 왔다. 대부분의 사람들은 장래에는 로봇이 주로 산업적인 용도가 아닌 개인용 용도로 사용될 것으로 믿고 있다. 이들은 이동성 및 조작성을 가진 로봇들이 고정적으로 구성된 가정 환경에서 반드시 필요할 것이라고 주장하고 있다. 개인용 로봇들이 세계적으로 연구되고 있고 관심을 끌고 있으나, 진정으로 장래성이 있는 사업이 되기까지는 많은 문제들이 해결되어야 한다. 예컨대, 개인용 로봇들은 많은 장소에서 개발되므로, 이들 사이에서 공유되는 측면은 많지 않 다. 각 로봇은 처음부터 개별적인 설계들에 따라 제조된다. In recent years, people's daily life experiences have changed greatly due to technological advances, which have improved the quality of life at home. For example, in the fields of housekeeping, security, education and cleaning, people are already familiar with the environment, including digital home appliances, home networks, mobile devices and the like. Home automation is an unnecessary idea, as previously implied, but the techniques mentioned above are being redefined to be state-of-the-art. Home automation has become a very promising field, and commercialization has already taken place in many related fields. Most people believe that in the future, robots will be used primarily for personal use, not for industrial use. They argue that robots with mobility and maneuverability are necessary in a fixedly configured home environment. Personal robots are being studied and attracted worldwide, but many problems must be solved before they can become truly promising businesses. For example, personal robots are developed in many places, so there are not many aspects shared among them. Each robot is manufactured according to individual designs from scratch.

이와 같이 퍼스널 로봇 기술의 일례가 대한민국 특허 공개공보 2000-0067377호(퍼스널 로봇 및 그 제어 방법)에 개시되어 있다.As such, an example of a personal robot technology is disclosed in Korean Patent Laid-Open Publication No. 2000-0067377 (Personal Robot and Control Method thereof).

상기 공보에 개시된 기술은 퍼스널 컴퓨터에 로봇 구성을 부가하여 퍼스널 로봇 스스로가 움직임 등을 수행하고, 또는 근거리 또는 원격지에서 무선 제어기 및 인터넷망을 이용하여 사용자가 직접 움직임을 제어할 수 있도록, 퍼스널 컴퓨터에 움직일 수 있는 장치와 외부 환경을 인식할 수 있는 장치를 일체로 구성한 퍼스널 로봇의 구조와, 상기 퍼스널 로봇의 움직임을 무선 제어기를 통한 근거리 제어 방법과 인터넷을 통한 원격 제어 방법이 제시된다. 즉 상기 공보에는 종래의 퍼스널 컴퓨터부, 퍼스널 로봇의 움직임의 자유도를 확보하기 위해 자체에서 전원을 공급하는 배터리부, 근거리 및 원격지의 무선 통신을 접속하기 위한 통신부, 외부 환경을 인식할 수 있는 센서부, 스스로의 제어 능력에 의해 또는 사용자의 움직임 제어 명령에 따라 움직일 수 있는 구동부를 포함하는 퍼스널 로봇의 구조를 포함하는 퍼스널 로봇 및 그 제어 방법에 대해 개시되어 있다.The technique disclosed in the above publication adds a robot configuration to a personal computer so that the personal robot can perform a movement or the like, or a user can directly control the movement using a wireless controller and an internet network at a local or remote location. Disclosed are a structure of a personal robot including a movable device and a device capable of recognizing an external environment, a method of controlling the movement of the personal robot through a wireless controller, and a remote control method through the Internet. That is, the publication includes a conventional personal computer unit, a battery unit which supplies power to itself to secure freedom of movement of the personal robot, a communication unit for connecting wireless communication between short distances and remote locations, and a sensor unit capable of recognizing the external environment. A personal robot and a control method thereof are disclosed that include a structure of a personal robot including a driving unit capable of moving by itself or by a user's movement control command.

또한, 퍼스널 로봇은 다양한 기능 수행을 위하여 이동성을 보장받아야 한다. 이를 위해 로봇의 내부와 외부 간의 여러 종류의 네트워크를 사용한다. 이러한 서로 다른 기종의 네트워크 인터페이스들은 전송 속도, 대역폭 등 각기 다른 특징이 있다. 따라서, 다양한 네트워크 간의 프로토콜(Protocol) 변환과 패킷(Packet) 전달 수단이 필요하다. 이를 위해 퍼스널 로봇 내부를 모듈 기반의 구조로 개발하고, 각 모듈 간 호환성 및 광범위한 사용성을 지원하기 위한 하나의 인터페이스를 제공 하는 기술이 알려져 있다. 만약, 네트워크 인터페이스의 종류마다 특정 애플리케이션(Application)을 개발할 경우에는 개발 비용과 시간의 낭비를 초래하기 때문에, 하나 이상의 개방형 인터페이스를 지원하기 위한 효과적인 미들웨어(Middleware, MW) 구조를 사용한다. 이 구조를 모듈 기반 퍼스널 로봇을 위한 미들웨어(Middleware for Module-based Personal Robot, MMPR)라 한다. In addition, the personal robot must be guaranteed mobility to perform various functions. For this purpose, several types of networks are used between the inside and outside of the robot. These different network interfaces have different characteristics such as transmission speed and bandwidth. Accordingly, there is a need for protocol conversion and packet transfer means between various networks. To this end, a technology for developing an internal structure of a personal robot into a module-based structure and providing an interface for supporting compatibility and wide usability between modules is known. If a specific application is developed for each type of network interface, it causes a waste of development cost and time. Therefore, an effective middleware (MW) structure for supporting one or more open interfaces is used. This structure is called middleware for module-based personal robots (MMPRs).

다음에 MMPR에 대해 도 1에 따라 설명한다.Next, the MMPR will be described with reference to FIG. 1.

도 1은 종래의 모듈 기반 퍼스널 로봇을 위한 미들웨어의 구조를 도시한 블록도이다. 1 is a block diagram illustrating a structure of middleware for a conventional module-based personal robot.

도 1a에서 도시하는 바와 같이, MMPR(10)은 응용계층에 미들웨어(10)의 서비스를 제공하는 스트리밍 계층(Streaming, SL)(100), 종류가 다른 여러 네트워크를 수용하는 네트워크 적응 계층(Network Adaptation Layer, NAL)(200), 네트워크 의존적인 기능을 담당하는 네트워크 인터페이스 계층(Network Interface Layer, NIL)(300)의 세 계층으로 구성되어 있다.As shown in FIG. 1A, the MMPR 10 includes a streaming layer (SL) 100 that provides a service of the middleware 10 to an application layer, and a network adaptation layer that accommodates multiple networks of different types. Layer, NAL (200), and a network interface layer (Network Interface Layer (NIL) 300) that is responsible for network-dependent functions are composed of three layers.

우선, 스트리밍 계층(Streaming, SL)(100)은 미들웨어(10)의 서비스를 사용하는 애플리케이션에 관한 요소로 이루어져 있다. 주요 기능은 네트워크 적응 계층(NAL)(200)을 이용하여 애플리케이션이 네트워크의 종류에 상관없이 원격 모듈에 존재하는 애플리케이션에 접근하기 위한 메커니즘을 제공하는 것이다. 즉, 원격 모듈에 존재하는 변수를 읽거나 쓰기 또는 원격 함수를 호출하는 등의 서비스를 스트리밍 계층(SL)(100)에서 제공하며, 이와 관련된 애플리케이션 관리, 트랜잭션 관리 등도 병행하여 실행한다. First, the streaming layer (SL) 100 is composed of elements related to an application using a service of the middleware 10. The main function is to provide a mechanism for the application to access the application existing in the remote module regardless of the type of network using the network adaptation layer (NAL) (200). That is, the streaming layer (SL) 100 provides a service such as reading a variable, a remote module, or calling a remote function that exists in the remote module, and executes application management and transaction management in parallel.

다음으로, 네트워크 적응 계층(Network Adaptation Layer, NAL)(200)은 네트워크 인터페이스 계층(NIL)(300)에 추가된 여러 종류 네트워크 컴포넌트들(Components)(310~350)을 통합하는 계층으로서, 실질적인 미들웨어(10)의 핵심 기능을 담당하는 계층이다. 이 계층은 메시지 라우팅(Message Routing), 이종 네트워크 간 모듈 어드레싱(Module Addressing), 네이밍 서비스(Naming Service) 등의 기능을 수행하며, 네트워크 인터페이스 계층(NIL)(300)의 여러 네트워크 컴포넌트들(310~350)을 통합한다. Next, the network adaptation layer (NAL) 200 is a layer that integrates various kinds of network components 310 to 350 added to the network interface layer (NIL) 300, and is substantially middleware. 10 is the layer responsible for the core functions. This layer performs functions such as message routing, heterogeneous network module addressing, naming service, and the like, and performs various network components 310 ~ of the network interface layer (NIL) 300. 350).

마지막으로, 네트워크 인터페이스 계층(Network Interface Layer, NIL)(300)은 네트워크 장치를 수용하는 계층으로, 여러 종류의 네트워크 컴포넌트(310~350)가 존재한다. 즉, 네트워크 적응 계층(NAL)(200)에서 관리 가능한 모듈의 종류를 지원해주는 계층이다. 또한, 네트워크 종류에 따라 하드웨어 또는 소프트웨어에 의존적인 부분을 수행하는 컴포넌트(310~350)로 구성되어 있다. 이러한 네트워크 인터페이스 계층(NIL)(300)은 미들웨어(10)에서 새로운 네트워크가 추가되거나 삭제될 때마다 미들웨어(10)를 수정하는 일이 없도록 하기 위해서이다. Finally, the network interface layer (NIL) 300 is a layer for accommodating network devices, and there are various kinds of network components 310 to 350. That is, the layer supports the types of modules that can be managed by the network adaptation layer (NAL) 200. In addition, it is composed of components 310 to 350 that perform hardware or software dependent parts depending on the network type. The network interface layer (NIL) 300 is to prevent the middleware 10 from being modified whenever a new network is added or deleted in the middleware 10.

또, 도 1b에 도시된 네트워크 연결 관리수단(NCM)(240)은 네트워크 장치에서 발생한 연결오류를 감지하는 오류감지수단(241), 네트워크 인터페이스 계층(NIL)(300)의 컴포넌트들(310~350)에 포함된 연결모듈로부터 수신되는 메시지에 응답하는 응답수단(242), 연결모듈에게 연결확인 요청메시지(Req_Msg)를 전송한 후 연결확인 응답메시지(Ack_Msg)를 수신할 때까지의 제한시간을 카운트(Count)하는 연결확인 타이밍수단(Module_Katimer)(243), 연결모듈들에게 브로드캐스트 요청메 시지(BroadReq_Msg)를 전송한 후 브로드캐스트 응답메시지(BroadAck_Msg)를 수신할 때까지의 제한시간을 카운트하는 브로드캐스트 타이밍수단(Module_Katimer)(244)을 구비한다.In addition, the network connection management unit (NCM) 240 shown in FIG. 1B includes error detection means 241 for detecting a connection error occurring in a network device, and components 310 to 350 of the network interface layer (NIL) 300. Response time 242 responding to the message received from the connection module included in the), the time limit until receiving the connection confirmation response message (Ack_Msg) after sending the connection confirmation request message (Req_Msg) to the connection module (Count) connection check timing means (Module_Katimer) (243), the broadcast time to send a broadcast request message (BroadReq_Msg) to the connection modules after receiving a broadcast response message (BroadAck_Msg) to count the time limit Cast timing means (Module_Katimer) 244 is provided.

그러나, 상기 공보에 개시된 기술들을 비롯하여 종래의 모듈 기반 퍼스널 로봇에 있어서는 로봇이 독립적인 시스템으로서의 구조 및 값을 가지고 있더라도 확장되거나 다른 로봇에 적용되기가 어렵다는 문제가 있었다. 또한, 로봇들은 사용자들의 각종 요건들을 충족시킬 수 없으며, 따라서, 비용 및 제조 속도에 완벽을 기할 수 없다. 이에 대처하기 위해, 비용 효율성, 유지성, 안전성, 성능 등이 현재 소비자 제품들만큼이나 개선되어야 한다는 문제가 있었다.However, in the conventional module-based personal robot, including the techniques disclosed in the above publication, even if the robot has a structure and a value as an independent system, there is a problem that it is difficult to be extended or applied to other robots. In addition, robots cannot meet the various requirements of users, and thus cannot be perfect in cost and manufacturing speed. To cope with this, there was a problem that cost efficiency, maintainability, safety and performance had to be improved as much as current consumer products.

또한, 로봇과 개인용 컴퓨터 간에는 다양한 요건, 이동성, 조작 등과 같은 기본적인 차이점들이 분명히 존재하며, 이의 표준화 및 모듈화과 같은 기술적인 수단이 마련되지 않았다는 문제가 있었다.In addition, there are obvious differences between robots and personal computers such as various requirements, mobility, manipulation, etc., and there is a problem that technical means such as standardization and modularization are not provided.

일반적으로, 소니의 AIBO는 모듈화에 기초하여 유연성이 있고 적응 가능한 플랫폼으로 언급되고 있다. AIBO는 OPEN-R를 시스템 구조로서 그리고 모듈 구성 요소를 기계적 하드웨어로서 이용하고 있다. 그러나, AIBO의 경우에서 알 수 있는 바와 같이, 로봇 산업의 특징일 수 있는 다른 시스템들 간의 적응은 쉽지 않다는 문제점이 있었다. In general, Sony's AIBO is referred to as a flexible and adaptable platform based on modularity. AIBO uses OPEN-R as a system architecture and module components as mechanical hardware. However, as can be seen in the case of AIBO, there was a problem that adaptation between different systems, which may be characteristic of the robot industry, is not easy.

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 이루어진 것으로서, 모듈화된 로봇의 각각의 모듈의 대체, 확장 및 유지 보수를 위해 시스템에 쉽게 연결 및 분리할 수 있는 모듈화된 모바일 로봇 시스템을 제공하는 것이다.An object of the present invention is to solve the problems as described above, to provide a modular mobile robot system that can be easily connected and disconnected to the system for replacement, expansion and maintenance of each module of the modular robot. will be.

본 발명의 다른 목적은 각 네트워크 장치가 가지고 있는 특성을 고려하여 모듈들의 적응성과 함께 분산 처리에 기초하고, 고속 응답 네트워크, 실시간 제어를 보장하는 IEEE1394에 의해 공유 및 접속되는 모듈화된 모바일 로봇 시스템을 제공하는 것이다.Another object of the present invention is to provide a modular mobile robot system, which is based on distributed processing with adaptability of modules in consideration of the characteristics of each network device, and is shared and connected by IEEE1394 to ensure a high speed response network and real time control. It is.

본 발명의 또 다른 목적은 퍼스널 로봇이 가지는 각각의 기능들을 모듈화하고, 표준화된 H/W 및 S/W 인터페이스를 통하여 이들 모듈들 간에 유기적인 결합 환경과 확장성을 제공하며, 실시간 기반으로 작업을 처리하면서, 새로운 조합의 시스템에 대하여 유연하게 적응하여 동적 재구성이 가능한 모듈화된 모바일 로봇 시스템을 제공하는 것이다.It is yet another object of the present invention to modularize the functions of a personal robot, provide an organic coupling environment and scalability between these modules via standardized H / W and S / W interfaces, and perform tasks on a real-time basis. In the process, it provides a modular mobile robot system that can be flexibly adapted to a new combination of systems and dynamically reconfigured.

상기 목적을 달성하기 위해 본 발명에 따른 모듈화된 모바일 로봇 시스템 은 비디오 이미지를 전송하거나 이미지로부터 대상의 특징을 추출하기 위해 카메라로부터의 이미지 데이터를 처리하는 비젼 모듈, 로봇에 장착된 센서로부터의 신호를 처리하는 센서 모듈, 로봇의 이동성을 제공하는 모바일 모듈 및 상기 비젼 모듈, 센서 모듈, 모바일 모듈들로부터의 결과들에 기초하여 판단을 행하고, 스스로 동작하는 중재기 모듈을 포함하는 것을 특징으로 한다.In order to achieve the above object, the modular mobile robot system according to the present invention is a vision module for processing image data from a camera for transmitting a video image or extracting a feature of an object from the image, a signal from a sensor mounted on the robot. A sensor module for processing, a mobile module for providing mobility of the robot, and an arbiter module for making a decision based on the results from the vision module, the sensor module, and the mobile modules.

또 본 발명에 따른 모듈화된 모바일 로봇 시스템에 있어서, 상기 비젼 모듈, 센서 모듈, 중재기 모듈 및 모바일 모듈의 각각은 모듈 제어 유닛과 테스트 유닛을 구비하는 것을 특징으로 한다.In the modular mobile robot system according to the present invention, each of the vision module, the sensor module, the arbiter module and the mobile module includes a module control unit and a test unit.

또 본 발명에 따른 모듈화된 모바일 로봇 시스템에 있어서, 상기 모듈 제어 유닛과 테스트 유닛은 오픈 또는 슬라이드 도어-타입의 케이스를 구비하는 것을 특징으로 한다.In the modular mobile robot system according to the present invention, the module control unit and the test unit are characterized by having an open or slide door-type case.

또 본 발명에 따른 모듈화된 모바일 로봇 시스템에 있어서, 상기 중재기 모듈은 배터리 유닛과 전력 제어 유닛으로 구성된 것을 특징으로 한다.In the modular mobile robot system according to the present invention, the arbiter module is characterized by consisting of a battery unit and a power control unit.

또 본 발명에 따른 모듈화된 모바일 로봇 시스템에 있어서, 상기 중재기 모듈은 로봇의 각각의 모듈에 공급되는 전류, 전압, 온도, 배터리 방전, 로봇의 구동 시간을 감시하는 것을 특징으로 한다.In the modular mobile robot system according to the present invention, the arbiter module is characterized by monitoring the current, voltage, temperature, battery discharge, the driving time of the robot supplied to each module of the robot.

본 발명의 상기 및 그 밖의 목적과 새로운 특징은 본 명세서의 기술 및 첨부 도면에 의해 더욱 명확하게 될 것이다.The above and other objects and novel features of the present invention will become more apparent from the description of the specification and the accompanying drawings.

먼저 본 발명의 개념에 대해 설명한다.First, the concept of the present invention will be described.

상기 목적을 달성하기 위한 전제로서, 호환성에 기초한 모듈화 및 표준화는 기본적이다. 본 발명에서 소프트웨어 및 하드웨어를 포함하는 모듈화된 로봇 구조 또는 구조가 도입된다. 모듈-D(DRP I의 모듈)라고 하는 로봇의 각 하드웨어 모듈은 전체 시스템에 쉽게 부착 및 분리될 수 있다. 모듈의 각 소프트웨어는 기능적으로 분산 및 재구성될 수 있다. 구체적으로, 이들은 상위 작업과 하위 작업 간의 접속을 위한 방법을 제공한다. 이 환경에 기초하여, 소프트웨어 개발은 레벨들로 분류됨으로써, 저수준 작업 개발자는 하위 장치 구동기를 저수준 작업 개발자에 제공할 수 있다. 이는 VM-D(Virtual Machine of DRPI)라고 하는 가상 머신이 독립성, 호환성, 및 휴대성을 지원하기 때문이다. 제안된 아이디어는 비젼 모듈, 센서, 중재기 모듈, 모바일 모듈과 같은 4개의 일반적인 모듈로 구성된 DRP I(Dynamically Reconfigurable Personal robot)이라고 하는 모듈화 로봇 상에서 구현되며, 고속 IEEE1394가 이들 간의 통신 방법으로서 이용된다.As a premise for achieving the above object, modularity and standardization based on compatibility are fundamental. In the present invention, a modular robotic structure or structure including software and hardware is introduced. Each hardware module of the robot, called Module-D (the module of DRP I), can be easily attached and detached from the entire system. Each software of the module can be functionally distributed and reconfigured. Specifically, they provide a method for connection between a parent task and a child task. Based on this environment, software development is categorized into levels so that low-level task developers can provide lower-level device drivers to low-level task developers. This is because a virtual machine called Virtual Machine of DRPI (VM-D) supports independence, compatibility, and portability. The proposed idea is implemented on a modular robot called DRP I (Dynamically Reconfigurable Personal robot), which consists of four general modules such as vision module, sensor, mediator module and mobile module. High speed IEEE1394 is used as a communication method between them.

이하의 설명에서는 모듈, 가상 머신, 및 그 프로그래밍 언어, 각 모듈-D의 하드웨어 및 소프트웨어를 인터페이스 또는 접속하는 방법, 모듈-D들의 특징 및 구성, 동적으로 재구성가능 특징에 대해 설명한다.The following description describes modules, virtual machines, and their programming languages, how to interface or connect the hardware and software of each Module-D, features and configurations of Module-Ds, and dynamically reconfigurable features.

본 발명에서 사용하는 네트워크 인터페이스(Network Interface)로는 IEEE1394(Institute of Electrical and Electronics Engineers 1394, 국제전기전자공학회 규격 1394), USB(Universal Serial Bus, 범용직렬버스), CAN(Controller Area Network, 제어 계측기 통신망), 이더넷(Ethernet), RS-232C(Recommended Standard-232C, 데이터 통신의 표준규격 202C) 등이 사용될 수 있다. The network interface used in the present invention is IEEE1394 (Institute of Electrical and Electronics Engineers 1394, 1394), USB (Universal Serial Bus, Universal Serial Bus), CAN (Controller Area Network, Control Instrument Communication Network) ), Ethernet, RS-232C (Recommended Standard-232C, data communication standard 202C) and the like can be used.

본 발명에서 제안된 구조, 즉 모듈-D, VM-D, 및 RPL의 중요한 요소들이 제시된다. 모듈-D들은 기능적으로 특징지어져 있다. 모듈-D들은 적응성과 함께 분산 처리에 기초하고 있다. 모듈-D들은 고속 응답 네트워크, 예컨대, 실시간 제어를 보장하는 IEEE1394에 의해 공유 및 접속된다. 또한, 모듈-D들은 문제가 있을 때 대체, 확장 및 유지 보수를 위해 시스템에 쉽게 연결 및 분리된다. VM-D 및 RPL은 각 모듈-D의 호환성을 지원한다.Important elements of the proposed structure in the present invention, namely module-D, VM-D, and RPL, are presented. Module-Ds are functionally characterized. Module-Ds are based on distributed processing with adaptability. Module-Ds are shared and connected by a high speed response network, such as IEEE1394, which ensures real time control. In addition, Module-Ds are easily connected and disconnected from the system for replacement, expansion and maintenance when there is a problem. VM-D and RPL support the compatibility of each module-D.

본 발명에 따른 모듈-D의 정의는 다음과 같다.The definition of module-D according to the invention is as follows.

모듈은 특정 기능을 수행하는 독립적인 소프트웨어 및 하드웨어의 단위로서 정의된다. 본 발명에서 제시한 모듈-D의 개념은 동적인 구성을 가지고 있다. 바꾸어 말하면, 모듈-D는 실시간 기반 재구성과 같은 적응성 및 유연성이 있는 구성을 지원함으로써, 모듈-D들이 분산 프로세스 및 자기 자신의 기능을 가지고 있는 경우 모듈-D의 용이한 조합을 지원할 수 있다. 제안된 모듈-D는 표준 인터페이스에 따라 설치, 재배치 및 독립적으로 사용될 수 있다. 각 모듈-D은 유사한 특성을 가진 구성 요소들(종종 장치 또는 유닛이라고도 함)로 구성되고, 또는 특정 요건에 따라 그룹화될 수 있다. 다른 모듈-D들과 독립된 하나의 모듈-D는 전체 시스템의 '일부' 일뿐만 아니라, 각종 구성 요소들을 통합한 '하위 -시스템' 또는 '어셈블리'이다. 어떤 임무 또는 시나리오를 실행하기 위해서, 도 2에 도시된 바와 같이, 모듈-D들은 통합된 고수준 지능의 제어 하에서 로봇의 부분들로서 조합되며, 이 능력은 적응 가능 구성의 특징을 예시한다. 반면에, 각 모듈은 비상시 독립 모듈로서 바로 행위할 수 있는데, 이는 각 모듈은 자기 자신의 저수준 지능의 제어 하에서 그 내부 구성 요소들을 조합하는 어셈블리이기 때문이다. 예컨대, 로봇이 “거실로 가서 TV를 켜라"라는 명령을 받으면, 로봇은 할당된 임무를 해석하고, 임무를 조합된 모듈-D들을 이용하여 수행한다. 반면에, 현재 임무가 "방 청소"이고 로봇이 이동 경로 상에서 아기를 검출하면, 모바일 모듈-D은 아기를 피하고, 다른 모듈-D들의 상태 또는 임무를 무시한다.Modules are defined as units of independent software and hardware that perform particular functions. The concept of module-D presented in the present invention has a dynamic configuration. In other words, Module-D supports adaptive and flexible configurations, such as real-time based reconfiguration, so that Module-D can support an easy combination of Module-D if it has a distributed process and its own functionality. The proposed module-D can be installed, relocated and used independently according to standard interfaces. Each Module-D may consist of components (often referred to as devices or units) with similar characteristics, or may be grouped according to specific requirements. A module-D, independent of other module-Ds, is not only a 'part' of the whole system, but also a 'sub-system' or 'assembly' incorporating various components. In order to execute certain tasks or scenarios, as shown in FIG. 2, Module-Ds are combined as parts of a robot under the control of integrated high-level intelligence, which capability illustrates the features of the adaptive configuration. On the other hand, each module can act directly as an independent module in an emergency, because each module is an assembly that combines its internal components under the control of its own low-level intelligence. For example, when the robot is commanded to “go to the living room and turn on the TV,” the robot interprets the assigned task and performs the task using the combined Module-Ds, whereas the current task is “room cleaning” If the robot detects a baby on the path of movement, the mobile module-D avoids the baby and ignores the state or task of the other module-Ds.

저수준 데이터 또는 명령을 전달하기 위해, 고속 통신, 예컨대 IEEE1394이 모듈-D들간의 통신 도구로서 사용된다. 이들 제어를 가능하게 하기 위해, 모듈-D는 내부 구성 요소를 인터페이싱하기 위한 제어기를 갖고 있다. 모듈-D들은 가상 포트를 통해 서로 상호 작용하고, 포트들은 점대점(point-to-point) 접속의 통신 채널이다. 물리적 통신을 위해 맵핑된 실제 포트는 실시간 통신을 보장하는 IEEE1394이나, 이 포트는 USB, RS-232C, 및 TCP/IP에도 마찬가지로 적용될 수 있다. IEEE1394 때문에, 모듈-D들은 문제가 있을 때 대체, 확장, 및 유지 보수를 위해 시스템에 쉽게 연결 또는 분리된다.In order to convey low level data or commands, high speed communication, such as IEEE1394, is used as a communication tool between module-Ds. To enable these controls, Module-D has a controller for interfacing internal components. Module-Ds interact with each other via virtual ports, and ports are communication channels of point-to-point connections. The actual port mapped for physical communication is IEEE1394, which guarantees real-time communication, but the port can be applied to USB, RS-232C, and TCP / IP as well. Because of IEEE1394, Module-Ds are easily connected or disconnected from the system for replacement, expansion, and maintenance when there is a problem.

애플리케이션들은 모듈-D들로부터 다양한 소스들과 조립될 수 있다. 즉, 모듈-D들 자체는 여러 개의 서로 다른 프로그래밍 언어로 작성되어, 여러 개의 서로 다른 플랫폼들 상에서 구동될 수 있다. 그럼에도 불구하고, 모듈-D들은 동일한 인터페이스 및 동일한 품질 수준을 계속 공급하는 한 재구성, 재배치 또는 재프로그래밍될 수 있다. 이 기능은 전체 시스템에 상당한 유연성을 제공한다. 그러므로, 모듈-D은 통합 환경 및 플랫폼을 지원함으로써 회사는 자기 자신의 저수준 구성 요소를 개발할 수 있다. 이는 모듈-D들은 VM-D에 의해 중재되기 때문에 실현 및 달성될 수 있다. VM-D는 윈도우즈 및 리눅스와 같은 OS을 가진 모듈-D에 적용된다. VM-D는 또한 모듈-D에 속하는 제어기를 가진 구성 요소 또는 하위 -모듈에 기초를 두고 있다.Applications can be assembled with various sources from module-Ds. In other words, Module-Ds themselves can be written in several different programming languages and run on several different platforms. Nevertheless, Module-Ds can be reconfigured, rearranged or reprogrammed as long as they continue to supply the same interface and the same quality level. This feature provides considerable flexibility for the entire system. Thus, Module-D supports an integrated environment and platform, allowing companies to develop their own low-level components. This can be realized and achieved since Module-Ds are mediated by VM-D. VM-D applies to Module-D with operating systems such as Windows and Linux. VM-D is also based on components or sub-modules with controllers belonging to Module-D.

또한 가상 머신은 컴파일러 또는 해석기를 가진 임베디드 시스템에 휴대성을 부여하는 일반 기술이다. 1995년에 선 마이크로시스템즈(Sun Microsystems)는 자바 기술, 자바 언어, 및 자바 가상 머신을 공개했다. 이들에 의해 자바 환경의 소 프트웨어는 자바 가상 머신이 설치된 서로 다른 종류의 OS 및 하드웨어 상에서 구동된다. 상기 기술은 제품 개발의 패러다임에 크게 영향을 주었다. 자바 가상 머신은 설치시 시스템에 고수준 지능휴대성을 제공하나, 네트워크상에 분산된 로봇 모듈들을 개발하기 위해 사용될 때 개발 시간 및 실행 성능에 단점이 있다. 자바는 하드웨어 제어를 위한 저수준 명령을 가질 수도 없고 해석기 상에서 바이트 코드를 고속으로 실행할 수도 없으므로, 실시간으로 제어되어야 하는 로봇처럼 시간이 중요한 제어 시스템에는 적합하지 않다. 따라서, 본 발명에서는 VM-D라고 하는 새로운 가상 머신을 제시한다. 표 I에 나타낸 바와 같이, 이 가상 머신은 자바 가상 머신과 동일한 이점, 예컨대 시스템-독립성 및 휴대성을 갖고 있고, 그 실행 속도는 빠르게 향상되었으며, 본래 고유 기능으로서 빈번하게 사용되는 기능 및 알고리즘을 제공한다. 표 1은 VM-D와 자바간의 비교를 나타낸다.Virtual machines are also a common technique for bringing portability to embedded systems with compilers or interpreters. In 1995, Sun Microsystems released Java technology, the Java language, and the Java virtual machine. By doing so, software in the Java environment runs on different kinds of operating systems and hardware with Java virtual machines installed. The technology has greatly influenced the paradigm of product development. The Java virtual machine provides a high level of intelligent portability to the system at installation, but has a disadvantage in development time and execution performance when used to develop distributed robot modules on a network. Java cannot have low-level instructions for hardware control, nor can it execute bytecode on the interpreter at high speed, making it unsuitable for time-critical control systems such as robots that need to be controlled in real time. Therefore, the present invention proposes a new virtual machine called VM-D. As shown in Table I, this virtual machine has the same advantages as the Java virtual machine, such as system-independence and portability, its execution speed has been improved rapidly, and provides functions and algorithms that are frequently used as inherent features. do. Table 1 shows a comparison between VM-D and Java.

RPL/WM_DRPL / WM_D 자바 언어/자바 VM Java Language / Java VM 언어 구성Language configuration ·C언어와 유사함 ·구조적 프로그래밍Similar to C language Structured programming ·C++ 언어의 하위 세트 ·객체 지향 프로그래밍Subset of the C ++ language object-oriented programming 통신Communication ·RPC(Remote procedure Call) ·모듈 인터페이스 프로그램 ·TCP/IP, USB, IEEE1394 프로토콜RPC (Remote procedure call) Module interface programTCP / IP, USB, IEEE1394 protocol ·RMI(Remote Method Invocation) ·프로그램 인터페이스 클래스 ·TCP/IP 프로토콜Remote Method Invocation (RMI) Program Interface ClassTCP / IP Protocol 해석기(가상 머신)Interpreter (Virtual Machine) ·간단한 구조 및 용이한 구현 ·윈도우즈, 리눅스 O/S 및 임베디드 시스템에 포팅 ·목표 시스템과 관련된 필수 라이브러리(IAPI)Simple structure and easy implementation Porting to Windows, Linux O / S and embedded system Essential libraries related to the target system (IAPI) ·자바 VM에 기초한 무료 소스 코드 ·자바 VM을 포팅하기 위한 목표 보드의 많은 자원 ·지원용의 대용량 라이브러리Free source code based on the Java VMMany resources on the target board for porting the Java VMLarge library for support

VM-D는 서로 다른 종류의 하드웨어 플랫폼, 및 마이크로소프트의 윈도우즈, 리눅스 및 RT리눅스와 같은 운영 체제에 포팅될 수 있다. VM-D는 모듈-D 상에서 제어 프로그램의 바이트 코드를 구동하기 위해 사용된다.VM-D can be ported to different kinds of hardware platforms and operating systems such as Microsoft's Windows, Linux and RTLinux. VM-D is used to drive the byte code of the control program on module-D.

VM-D는 스택 지향적이다. VM-D는 현재 프레임의 오퍼랜드 스택으로 하나 이상의 오퍼랜드를 취하고, 결과들을 오퍼랜드 스택에 다시 푸싱한다. 메소드(method)가 호출될 때마다 새로운 프레임이 생성되고, 메소드에서의 이용을 위해 지연 변수들의 새로운 오퍼랜드 스택 및 세트와 함께 생성된다. VM-D는 레지스터, 메모리 및 실행기로 구성되고, 애플리케이션 프로그램의 실행 중에 사용되는 각종 런 타임 메모리 영역, 즉 바이트 코드 영역, 전역 변수 영역, 기능 포인터 영역, 스택 영역, 및 힙(heap) 영역을 정의한다. VM-D의 구조는 도 3에 도시되어 있고, 그 구성 요소들은 다음과 같다:VM-D is stack oriented. VM-D takes one or more operands into the operand stack of the current frame and pushes the results back to the operand stack. Each time a method is called, a new frame is created, with a new operand stack and set of delay variables for use in the method. VM-D consists of registers, memory, and executor, and defines various runtime memory areas used during execution of the application program: byte code area, global variable area, function pointer area, stack area, and heap area. do. The structure of the VM-D is shown in Figure 3, the components of which are as follows:

·레지스터·register

VM-D는 3개의 32-비트 레지스터(SP, BP, PC)를 갖고 있다. 이들 레지스터는 스택을 액세스하기 위해 사용되거나, 또는 현재 실행되는 VM-D 명령의 주소를 포함한다. SP(Stack Pointer)는 메모리 내의 스택의 최상단 요소의 주소를 갖고 있다. BP(Base Pointer)는 메모리 내의 스택의 베이스 포인트의 주소를 갖고 있다. PC(Program Counter)는 실행될 다음 바이트 코드의 주소를 포함한다.VM-D has three 32-bit registers (SP, BP, and PC). These registers are used to access the stack, or contain the address of the VM-D instruction currently being executed. The Stack Pointer (SP) contains the address of the top element of the stack in memory. Base Pointer (BP) contains the address of the base point of the stack in memory. The program counter (PC) contains the address of the next byte code to be executed.

· 스택Stack

VM-D의 각 작업은 작업과 동일한 시간에 생성되는 개인 스택을 갖는다. 스택은 C와 같은 종래 언어의 스택과 유사하다. 즉, 스택은 지연 변수 및 부분적 결과들을 갖고 있고, 파라미터를 방법들에 전달하고 방법 결과들을 수신한다. VM-D의 모든 명령은 오퍼랜드 스택으로부터 오퍼랜드를 취하고, 오퍼랜드를 연산하고, 결과들을 스택에 다시 보낸다.Each job in VM-D has a private stack created at the same time as the job. The stack is similar to that of a conventional language such as C. That is, the stack has delay variables and partial results, passes parameters to the methods and receives the method results. Every instruction in VM-D takes an operand from the operand stack, computes the operand, and sends the results back to the stack.

· 힙(Heap)Heap

힙은 런타임 데이터 영역이며, 이 영역으로부터 모든 문자열 및 어레이용 메모리가 할당된다. 힙은 VM-D의 개시시에 생성된다.The heap is a runtime data area, from which all memory for strings and arrays is allocated. The heap is created at the start of VM-D.

·바이트 코드 영역Byte code area

바이트 코드 영역은 종래의 언어 또는 텍스트 세그먼트에서 컴파일된 코드에 대한 기억 영역과 유사하다. 이 영역은 바이트 코드 및 심벌 테이블을 저장한다.The byte code area is similar to the storage area for code compiled in a conventional language or text segment. This area stores bytecodes and symbol tables.

·전역 변수 테이블Global variable table

전역 변수 테이블은 VM-D의 모든 작업들이 공유한다.The global variable table is shared by all tasks in VM-D.

·함수 포인터 테이블Function pointer table

함수 포인터 테이블은 함수 본체의 주소를 포함하고 있다.The function pointer table contains the address of the function body.

·명령 세트Instruction set

바이트 코드라고 하는 명령은 1 바이트 OP코드 및 오퍼랜드들로 구성된다. 전자는 수행될 연산을 지정한다. 후자는 연산에 의해 사용되는 파라미터 또는 데이터를 공급한다. 명령들은 오퍼랜드를 갖고 있지 않고, 하나의 또는 두개의 OP코드를 갖고 있다. 바이트 코드 명령 스트림은 바이트-정렬될 뿐이다. 이들 판단은 컴파일된 프로그램에 대한 VM-D의 코드를 컴팩트하게 유지한다.An instruction called a byte code consists of a one byte OP code and operands. The former specifies the operation to be performed. The latter supply the parameters or data used by the operation. Instructions do not have operands and have one or two OP codes. The bytecode instruction stream is only byte-aligned. These judgments keep the VM-D code compact for compiled programs.

또, 본 발명에서는 모듈 로봇의 애플리케이션 프로그램을 작성하기 위해 RPL(Robot Programming Language)을 제시한다. 바꾸어 말하면, VM-D는 각각의 이질적인 OS 또는 Mini-OS를 제어 및 중재하기 위해 개발되나, RPL은 각종 OS와 VM-D의 통합에 기초하여 로봇용 애플리케이션 프로그램의 개발자를 지원한다. RPL은 C++, 포트란(FORTRAN) 및 파스칼(PASCAL)과 같은 프로그래밍 언어이다. RPL로 작성된 프로그램은 RPL-컴파일러에 의해 컴파일되어, 도 4에 도시된 바와 같이 바이트 코드로 변환된다.In addition, the present invention proposes a Robot Programming Language (RPL) to create an application program of a modular robot. In other words, VM-D is developed to control and mediate each heterogeneous OS or Mini-OS, but RPL supports developers of robotic application programs based on the integration of various OSs and VM-D. RPL is a programming language such as C ++, FORTRAN and Pascal. A program written in RPL is compiled by the RPL-compiler and converted into byte code as shown in FIG.

바이트 코드들은 포트를 통해 모듈-D로 다운로드되고, 해석되며, 모듈-D의 VM-D 상에서 실행된다. RPL의 변수는 데이터 타입을 갖고 있다. 변수의 데이터 타입은 변수가 포함할 수 있는 값과 이 변수에 대해 수행될 수 있는 연산을 결정한다. 정수, 부동 소숫점 및 문자열인 원시 데이터 타입들은 모두 RPL에 의해 지원된다.Bytecodes are downloaded to the module-D via the port, interpreted, and executed on the module-D's VM-D. Variables in RPL have data types. The data type of a variable determines what values it can contain and the operations that can be performed on it. Primitive data types that are integers, floating point numbers, and strings are all supported by RPL.

컴파일링 중에, RPL 소스 코드의 문자는 연속적인 토큰들로 표현된다. RPL 컴파일러는 5개의 타입의 토큰, 즉 식별자, 키워드, 문자, 연산자, 및 다양한 분리 기호(miscellaneous separators)를 인식한다. 백색 공간(탭, 캐리지 리턴(carriage return) 및 라인 피드(line feed)) 및 코멘트가 별도의 토큰의 역할을 할 수 있다. 도 4에 도시된 바와 같이, 선형 처리기 및 컴파일러는 4개의 스텝을 통과하고 소스 코드는 바이트 코드, 즉 선형 처리, 사전적 분석, 및 문법 분석 및 링크로 컴파일링된다. During compilation, the characters of the RPL source code are represented by consecutive tokens. The RPL compiler recognizes five types of tokens: identifiers, keywords, characters, operators, and various miscellaneous separators. White space (tabs, carriage return and line feed) and comments can serve as separate tokens. As shown in Figure 4, the linear processor and compiler go through four steps and the source code is compiled into byte code, i.e. linear processing, preliminary analysis, and grammar analysis and linking.

또한 본 발명에 있어서 각 모듈-D은 특정 역할을 하고 다른 모듈-D들과는 독립된 하위 시스템이므로, 모듈-D들의 효과적인 통합을 위한 표준 인터페이스가 요구된다. 이하 인터페이싱 기술에 대해 설명한다.In addition, in the present invention, since each module-D plays a specific role and is independent of other module-Ds, a standard interface for effective integration of the module-Ds is required. The interfacing technique will be described below.

A. 소프트웨어 모듈 인터페이스A. Software Module Interface

각 모듈-D가 서로 다른 OS들로 동작될 수 있더라도, 하나의 모듈-D의 내부 상태 및 객체는 자기 자신의 프로퍼티 및 방법 때문에 다른 모듈-D들에 의해 액세스될 수 있다. 이는 도 5에 도시된 바와 같이 모듈-D이 VM-D에 의해 제어되는 공용 소프트웨어 인터페이스를 가지고 있기 때문이다. 모듈-D에서 정의된 특정 값인 프로퍼티는 모듈-D의 프로퍼티를 결정하며, 일정한 값을 모듈-D에 할당하거나 모듈-D로부터 일정한 값이 할당되도록 하는데 이용된다. 상기 메소드는 각 모듈-D의 일부 동작을 조절하기 위한 절차를 의미한다. 예컨대, 로봇이 이동 명령을 받으면, 동사 '이동하다’는 모바일 모듈-D에 속하는 메소드들 중 하나이다. 상기 프로퍼티 및 메소드에 의해, 하나의 모듈-D의 내부 상태 및 객체가 다른 모듈-D들에 의해 액세스될 수 있다. 모듈-D를 제어하기 위해서, VM-D는 mobile.goto(x,y)와 같은 모듈-D의 함수를 호출하거나, mobile.readEncorder(motor1)와 같은 모듈-D를 구성하는 구성 요소들의 함수를 호출한다. 이 함수는 API(애플리케이션 프로그래밍 인터페이스)라고 한다. 바꾸어 말하면, API는 EAPI(Extended API)라고 하는 저수준 함수들의 집합 또는 IAPI(Internal API)이라고 하는 저수준 함수 자체를 의미한다. 도 6에 도시된 바와 같이, API와 VM-D 레이어는 애플리케이션 소프트웨어를 하드웨어 의존성으로부터 분리하거나 독립시킨다. VM-D는 모듈-D의 베이스가 되며 각종 하드웨어에 포팅된다. API는 많은 유용한 함수를 제공하는 기존의 소프트웨어 함수들의 집합이다. 네비게이션 및 이미지 처리와 같은 모듈-D 프로그램은 그 VM-D 상에서 구동된다. 또한, 하나의 모듈-D는 다른 모듈-D들의 API를 실행할 수 있다. 전체 소프트웨어는 도 7에 도시된 바와 같이 각종 API들의 조합으로 구성되고, 또한 제3자의 각종 API는 로봇의 소프트웨어가 표준에 맞게 모듈화되므로 로봇 소프트웨어에 쉽게 삽입될 수 있다.Although each module-D can be operated with different OSs, the internal state and objects of one module-D can be accessed by other module-Ds because of their own properties and methods. This is because module-D has a common software interface controlled by VM-D as shown in FIG. Properties that are specific values defined in Module-D determine the properties of Module-D and are used to assign a constant value to Module-D or to have a constant value assigned from Module-D. The method refers to a procedure for adjusting some operations of each module-D. For example, when the robot receives a movement command, the verb 'move' is one of the methods belonging to the mobile module-D. By the above properties and methods, the internal state and object of one module-D can be accessed by other module-Ds. In order to control module-D, VM-D calls functions of module-D such as mobile.goto (x, y), or functions of components that make up module-D such as mobile.readEncorder (motor1). Call This function is called an application programming interface (API). In other words, an API means a set of low-level functions called EAPI (Extended API) or a low-level function itself called IAPI (Internal API). As shown in Figure 6, the API and VM-D layers separate or isolate application software from hardware dependencies. VM-D is the base of module-D and is ported to various hardware. An API is a set of existing software functions that provide many useful functions. Module-D programs such as navigation and image processing run on that VM-D. In addition, one module-D may execute APIs of other module-Ds. The entire software consists of a combination of various APIs as shown in FIG. 7, and the various APIs of the third party can be easily inserted into the robot software since the robot's software is modularized to a standard.

B. 하드웨어 모듈 인터페이스B. Hardware Module Interface

모듈들을 효율적으로 통합하기 위해서는, 기계적 및 전기적 접속을 위한 하드웨어 표준 인터페이스를 준비해야 하고, 용이한 처리를 위해 전원 공급 장치를 간단화해야 한다. 도 8(a)에 도시된 바와 같이, 모듈-D들간의 접속에 기계적으로 표준화된 커넥터가 제공되며, 이 커넥터는 모듈-D을 IEEE1394 네트워크에 접속하여 전력을 모듈-D에 공급한다. 도 8(b)에 도시된 바와 같이, 표준 인터페이스의 수(male) 커넥터는 각 모듈-D의 바닥에 배치되고 및 암(female) 커넥터는 각 모듈-D의 최상부에 배치된다. 전기적 및 기계 커넥터들은 도 8(c)를 참조하여 설명한다. 기계 커넥터들은 모듈-D들이 수평으로 그리고 수직으로 이동하는 것을 방지한다(전방향 안정된 접속). 모듈-D이 조립될 때, 전기적 커넥터들은 기계 커넥터들이 결합된 후에 접속된다. 부착 및 분리가 용이하더라도, 제안된 하드웨어 인터페이스는 전체 시스템의 안정성 및 안전성을 보장한다. 도 9에는 비젼 모듈-D와 센서 모듈-D간의 접속 절차가 예시되어 있다. To integrate the modules efficiently, hardware standard interfaces for mechanical and electrical connections must be prepared, and the power supply must be simplified for easy processing. As shown in Fig. 8A, a mechanically standardized connector is provided for the connection between the module-Ds, which connects the module-D to the IEEE1394 network to supply power to the module-D. As shown in Fig. 8B, the male connector of the standard interface is disposed at the bottom of each module-D and the female connector is disposed at the top of each module-D. Electrical and mechanical connectors are described with reference to FIG. 8 (c). Mechanical connectors prevent module-Ds from moving horizontally and vertically (forward stable connection). When module-D is assembled, the electrical connectors are connected after the mechanical connectors are joined. Although easy to attach and detach, the proposed hardware interface ensures the stability and safety of the entire system. 9 illustrates a connection procedure between the vision module-D and the sensor module-D.

하드웨어 모듈 인터페이스를 이용하여, 각 모듈-D 내부의 구성 요소들 또는 유닛들은 도 10에 도시된 바와 같이 단위 커넥터라고 하는 기계적 표준 인터페이스에 의해 조립된다. 이 커넥터는 포트 구성 접속을 지원한다.Using a hardware module interface, the components or units inside each module-D are assembled by a mechanical standard interface called a unit connector, as shown in FIG. This connector supports port configuration access.

C. 모듈-D들간의 통신 인터페이싱 C. Communication Interfacing Between Modules-D

모듈 로봇의 설계시, 모듈들간의 통신 방법은 가장 중요한 문제들 중 하나이다. 각 모듈-D이 메시지 및 데이터 버스트를 원만하게 교환할 수 있도록 하기 위해서는, 통신 방법이 충분한 대역폭, 즉 비젼 스트리밍 및 오디오 데이터를 전송하기 위한 비동기 전송을 제공하는지, 그리고 핫 플러깅(hot-plugging)도 제공하는지를 체크해야 한다. 본 발명자들은 기존의 방법들을 평가한 후, IEEE1394(FireWire)가 상기 요건들을 만족하는 가장 적절한 방법인 것으로 결론을 내렸다. IEEE1394는 많은 양의 비젼 스트리밍 데이터를 전송하기 위한 400Mbps(maximum)의 충분한 대역폭을 지원한다. 잘 알려진 바와 같이, IEEE1394는 현재 가정 A/V 및 PC 시스템에서 가장 많이 사용되는 접속 중 하나이다. IEEE1394 토포로지의 P2P(peer-to-peer)에 의해 시스템의 각 모듈-D은 그 특성을 유지할 수 있고 시스템 동작을 방해하지 않고 모듈-D를 시스템으로부터 분리할 수 있다. 따라서, 모듈-D은 자체로 모듈화될 수 있고, 통합 시스템은 안정된다. IEEE1394 인터페이싱 루틴은 리눅스 1394 라이브러리([24])로 프로그래밍된다. 이 루틴은 지금 지원되는 유일한 인터페이스로서 접속된 IEEE1394의 직접 액세스를 사용자 인터페이스에 제공한다. 이 라이브러리를 사용함으로써, 1394 쓰레드(thread)용이라고도 하는 도 12에 도시된 1394 버스에 접속을 캡슐화하는 프로그램을 기록한다. 이는 IEEE1394 버스를 액세스하도록 의도된 다른 프로세스들을 위해 FIFO로 구성된다. 도 11에 도시된 바와 같이, FIFO들에 의해 모듈들은 프로세스를 위해 통신할 수 있다. 버스 접속은 기계적으로 표준화된 하드웨어 커넥터에 의해 유지됨으로써, 시스템이 턴 온된 동안 새로운 모듈을 간단히 제거 및 추가할 수 있다. DRP I에서, 시스템은 센서 모듈이 제거되더라도 구동 상태를 유지하고, 또는 비젼 모듈이 센서 모듈을 대신할 수 있다.In designing a modular robot, the communication method between modules is one of the most important problems. In order to ensure that each Module-D can exchange messages and data bursts smoothly, does the communication method provide sufficient bandwidth, i.e., asynchronous transmission for transmitting vision streaming and audio data, and hot-plugging? You should check if it provides. After evaluating existing methods, the inventors concluded that IEEE 1394 (FireWire) is the most appropriate way to meet the above requirements. IEEE 1394 supports sufficient bandwidth of 400 Mbps (maximum) for transmitting large amounts of vision streaming data. As is well known, IEEE 1394 is currently one of the most used connections in home A / V and PC systems. Peer-to-peer (P2P) of the IEEE 1394 topology allows each module-D of the system to maintain its characteristics and to separate the module-D from the system without disrupting system operation. Thus, the module-D can be modularized by itself and the integrated system is stable. IEEE1394 interfacing routines are programmed into the Linux 1394 library ([24]). This routine provides the user interface with direct access to the IEEE1394 connected as the only interface currently supported. By using this library, a program that encapsulates a connection to the 1394 bus shown in FIG. 12, also referred to as a 1394 thread, is recorded. This consists of a FIFO for other processes intended to access the IEEE 1394 bus. As shown in FIG. 11, FIFOs allow modules to communicate for a process. The bus connection is maintained by mechanically standardized hardware connectors, allowing simple removal and addition of new modules while the system is turned on. In DRP I, the system remains in operation even if the sensor module is removed, or the vision module can replace the sensor module.

이하, 본 발명의 구성을 도면에 따라서 설명한다.EMBODIMENT OF THE INVENTION Hereinafter, the structure of this invention is demonstrated according to drawing.

도 13에 도시된 DRP I는 내부적으로 조립된 4개의 모듈-D들, 즉 비젼 모듈-D, 센서 모듈-D, 중재기 모듈-D 및 모바일 모듈-D로 구성된다.The DRP I shown in FIG. 13 consists of four internally assembled modules-D, vision module-D, sensor module-D, arbiter module-D and mobile module-D.

이들 모듈-D들과 그 조합의 공통 유닛들에 대해 설명한다.The common units of these module-Ds and combinations thereof will be described.

4개의 모듈-D들은 독립적으로 전용 SBC를 가지고 구성되었지만, 하드웨어 및 소프트웨어 인터페이스와 같은 대부분의 양태에서 공통적이다. 단일 접속을 이용하여, 상기 모듈-D들은 시스템을 12 및 5 볼트의 전원과 연결할 수 있고 IEEE1394 통신을 한다. 구성 요소들은 모듈화의 개념에 기초하여 효과적인 처리 및 전체 시스템의 안전성을 위해 신중하게 설계된다. The four module-Ds are independently configured with a dedicated SBC, but are common in most aspects, such as hardware and software interfaces. Using a single connection, the Module-Ds can connect the system with a power supply of 12 and 5 volts and communicate with IEEE1394. The components are carefully designed for effective processing and safety of the entire system based on the concept of modularity.

구성들은 다음과 같다. The configurations are as follows.

도 14(a)에 도시된 바와 같이, 모듈 제어 유닛은 전원 스위치, 리셋 스위치 및 OS 차단 스위치 등 3개의 스위치와 감시용 LCD로 구성된다. SSR(Solid State Relay) 스위치들과 연결된 전원 스위치는 모듈 내의 SBC의 전기 회로를 개방 또는 차단하며, 각 SSR은 12V, 5V 및 접지를 제어한다. SSR을 이용한 모듈 제어 회로는 전원 및 통신을 원격 제어함으로써 설계된다. 리셋 스위치는 모듈-D의 시스템이 정지되었을 때 SBC의 재부팅을 위해 사용된다. OS 차단 스위치는 전원 공급의 물리적 종결이 아닌, OS 동작의 물리적 종결을 위한 것이다. 이는 어떤 모듈-D이 차단되어야 할 때 OS의 손상을 방지한다. LCD 및 LED의 경우, 이들은 SBC의 상태를 나타낸다. 시스템이 정지되어 로봇이 사용자 인터페이스 모듈로 제어될 수 없을 때, 오퍼레이터는 특정 모듈-D내의 하드웨어 SBC, 소프트웨어 리눅스 등이 정상적으로 기능하는지를 확인한다. As shown in Fig. 14A, the module control unit is composed of three switches such as a power switch, a reset switch, and an OS disconnect switch and a monitoring LCD. Power switches connected to solid state relay (SSR) switches open or break the electrical circuitry of the SBC within the module, and each SSR controls 12V, 5V, and ground. Module control circuits using SSRs are designed by remotely controlling power and communication. The reset switch is used to reboot the SBC when the module-D system is stopped. The OS shutdown switch is for the physical termination of the OS operation, not the physical termination of the power supply. This prevents damage to the OS when any module-D needs to be blocked. For LCDs and LEDs, these indicate the status of the SBC. When the system is stopped and the robot cannot be controlled by the user interface module, the operator checks whether the hardware SBC, software Linux, etc. in the specific module-D function normally.

도 14(b)에 도시된 바와 같이, 테스트 유닛은 각 모듈-D의 독립 테스트를 위해 사용되며, 과전류 보호기와 함께 모듈 전원 단자를 갖고 있다. 또한, 패널 상에는 VGA, LAN, 마우스, 키보드의 커넥터들이 있다. As shown in Fig. 14B, the test unit is used for independent testing of each module-D, and has a module power terminal with an overcurrent protector. Also on the panel are connectors for VGA, LAN, mouse and keyboard.

이러한 유닛들을 효율적으로 조립하기 위해, 도 15에 도시된 바와 같이 오픈 또는 슬라이드 도어-타입의 케이스들이 사용됨으로써, 상기 유닛들은 전체 시스템을 완전히 분해하지 않고도 배선, 수정, 재조립 및 테스트될 수 있다. In order to assemble these units efficiently, open or slide door-type casings are used as shown in Fig. 15, so that the units can be wired, modified, reassembled and tested without having to completely disassemble the entire system.

또 본 발명에 따른 모바일 모듈-D은 로봇의 이동성을 제공한다. 도 16에 도시된 바와 같이, 차동 구동 메커니즘이 이용된다. 이 메커니즘은 별개의 모터들에 의해 제어되는 공통 축 상에 장착된 2개의 바퀴를 갖고 있고, 균형을 위해 2개의 다리 바퀴를 사용한다. 모바일 모듈-D은 간단하고 저렴하기 때문에 일반적으로 실내 네비게이션을 위해 많은 로봇에 사용된다.In addition, the mobile module-D according to the present invention provides the mobility of the robot. As shown in Figure 16, a differential drive mechanism is used. This mechanism has two wheels mounted on a common shaft controlled by separate motors and uses two casters for balance. Because mobile module-D is simple and inexpensive, it is generally used in many robots for indoor navigation.

그리고 다층 서스펜션이라고도 하는 새로운 서스펜션 메커니즘이 물리적 방해로부터 보호하도록, 그리고 로봇이 이동할 때 안정된 시스템을 유지하도록 설계되어 있다. 이동과 관련된 모든 신호 처리는 이 모듈-D에서 내부적으로 수행되며, 상태만이 중재기 모듈-D로 전송된다.New suspension mechanisms, also called multi-layer suspensions, are designed to protect against physical disturbances and to maintain a stable system as the robot moves. All signal processing related to movement is performed internally in this module-D, and only state is transmitted to the arbiter module-D.

모바일 모듈-D는 다음의 구성 요소들로 구성된다.Mobile Module-D consists of the following components:

a) SBC를 가진 모바일 모듈-D 제어기는 궤도 발생 및 네비게이션의 역할을 한다. a) Mobile Module-D controller with SBC serves as trajectory generation and navigation.

b) 구동 메커니즘은 엔코더(75W)를 가진 DC 기어 모터, 움직임 제어기 및 우레탄 바퀴로 구성된다. b) The drive mechanism consists of a DC gear motor with an encoder 75W, a motion controller and a urethane wheel.

c) 복수 계층 서스펜션을 가진 2개의 다리 바퀴가 모바일 모듈의 바닥에 고정된다. c) Two casters with multi-tiered suspension are fixed to the bottom of the mobile module.

d) 비상 정지용 적외선 센서가 모듈의 케이스에 고정된다.d) The emergency stop infrared sensor is fixed to the case of the module.

본 발명에 따른 센서 모듈-D는 도 17에 도시된 바와 같이 센서로부터의 신호를 처리하는 역할을 한다. 초음파, 사람 검출, 사운드 국부화 센서와 같은 각종 센서들이 센서 모듈-D에 포함되므로, 아날로그 및 디지털 신호의 상당한 처리가 요구된다. 도 18에 도시된 바와 같이, 센서 모듈-D는, a) 거리를 계산하고 IEEE1394를 통해 다른 모듈-D들과 통신하기 위한 알고리즘을 포함하는 센서 모듈-D 제어기, b) 초음파 센서 유닛(Max 32EA)를 관리하고, 거리 데이터를 수집하고, 각 센서 상태를 분석하고, SBC와 통신하는 알고리즘을 가진 마스터 관리자, c) 마스터 관리자로부터 명령을 수신하고, 장애물의 거리를 감지하고, 및 IEEE485 시리얼 인터페이스를 통해 마스터 관리자와 통신하기 위해 사용되는 센서 유닛으로 구성된다. 각 유닛은 양방향 통신 채널을 갖고 있고, 핫 플러깅을 지원한다.Sensor module-D according to the present invention serves to process a signal from the sensor as shown in FIG. Since various sensors such as ultrasonic waves, human detection and sound localization sensors are included in the sensor module-D, considerable processing of analog and digital signals is required. As shown in FIG. 18, the sensor module-D includes: a) a sensor module-D controller comprising an algorithm for calculating distance and communicating with other module-Ds via IEEE1394, b) an ultrasonic sensor unit (Max 32EA). ) Master manager with algorithms to manage distance, collect distance data, analyze each sensor status, and communicate with SBC, c) receive commands from master manager, detect obstacle distances, and use IEEE485 serial interface It consists of a sensor unit used to communicate with the master manager via. Each unit has a bidirectional communication channel and supports hot plugging.

또한 도 19에 도시된 바와 같은 비젼 모듈-D는 비젼 전용 모듈이다. 일종의 센서 모듈이라고 볼 수 있는 비젼은 복잡한 신호 처리를 필요로 하므로 독립형으로 설계된다. 비젼 시스템은 비디오 이미지를 전송하거나 이미지로부터 대상의 특징을 추출하기 위해 카메라로부터의 이미지 데이터를 처리한다. SBC를 가진 비젼 모듈-D 제어기에 의해 획득되어 처리되는 이미지는 IEEE1394 네트워크를 통해 다른 모듈-D, 주로 중재기 모듈-D에 전송된다. 최근에, 효과적인 인식을 위해, 이 모듈-D는 3D RFID 시스템이라고 하는 RFID 시스템을 포함한 인식 모듈-D로 갱신된다.Also, the vision module-D as shown in FIG. 19 is a vision dedicated module. Vision, a kind of sensor module, is designed as a stand-alone because it requires complex signal processing. The vision system processes the image data from the camera to send a video image or to extract features of the object from the image. Images acquired and processed by the Vision Module-D controller with SBC are transmitted to other Modules-D, mainly Intermediate Module-D, via the IEEE1394 network. Recently, for effective recognition, this module-D has been updated with a recognition module-D including an RFID system called a 3D RFID system.

도 20에 도시된 중재기 모듈-D은 다른 모듈-D의 메인 제어기와는 약간 다르다. 중재기 모듈-D는 다른 모듈-D들을 포함하고, 다른 모듈-D들로부터의 결과들에 기초하여 판단을 행한다. 중재기 모듈-D는 스스로(즉, 일부 모듈-D들 없이도) 동작하는 기본 모듈이다. 다른 모듈-D들을 추가함으로써, 중재기 모듈-D는 필요한 기능들을 달성한다. 도 21(a)에 도시된 바와 같이, 중재기 모듈-D는 IEEE1394 및 무선 LAN과 통신을 행하고, 다른 모듈-D들로부터 수집된 데이터의 분석 및 처리를 행한다. 이는 오퍼레이터가 참조하며, 로봇의 이동에 직접적인 영향을 주는 계산 또는 프로세스에 필요하지 않은 정보이다. 예컨대, 로봇이 목표 쪽으로 이동하고 장애물을 만나면, 장애물 회피를 위한 일련의 프로세스들이 모바일 모듈-D 및 센서 모듈-D에 의해 실행된다. 반면에, 비젼 모듈-D는 단순히 이동 궤도의 변화에 관한 정보를 획득하고, 그 정보를 오퍼레이터에 전달한다. 따라서, 중재기 모듈-D는 중재기로 간주될 수 있고, 반면에 예컨대 모바일, 센서, 및 비젼 모듈들은 기능 모듈로서 정의된다. 도 21(b)에는 이들의 프로그램 플로우챠트가 예시되어 있다 The arbiter module-D shown in FIG. 20 is slightly different from the main controller of the other module-D. The arbiter module-D includes other module-Ds and makes a decision based on the results from the other module-Ds. The arbiter module-D is a base module that operates on its own (ie, without some module-Ds). By adding other module-Ds, the arbiter module-D achieves the necessary functions. As shown in Fig. 21A, the arbiter module-D communicates with IEEE1394 and a wireless LAN, and analyzes and processes data collected from other module-Ds. This information is referenced by the operator and is not needed for calculations or processes that directly affect the movement of the robot. For example, when the robot moves toward the target and encounters an obstacle, a series of processes for obstacle avoidance are executed by the mobile module-D and the sensor module-D. On the other hand, the vision module-D simply obtains information about the change of the moving trajectory and conveys the information to the operator. Thus, the arbiter module-D can be considered an arbiter, while for example mobile, sensor, and vision modules are defined as functional modules. These program flowcharts are illustrated in Fig. 21B.

도 22에 도시된 바와 같이, 중재기 모듈-D는 배터리 유닛과 전력 제어 유닛들로 구성된다. 두 종류의 배터리 패키지(Ni-MH 및 Li-ion)가 24 볼트를 액츄에이터들에 공급하고 12 볼트를 제어 회로에 공급한다. 액츄에이터들에 의해 생기는 전기적 노이즈로부터 제어 회로를 보호하기 위해, 전원들은 서로 격리되어 있다. 패키지들은 셀들(Ni-Mh: 1.5 볼트 셀, Li-ion: 3 볼트 셀)로 구성된다. 배터리 셀 관리기는 패키지의 효율적이고 안전한 충전을 위해 셀들의 상태를 감시하고 자동 관리한다. 도 22(b) 및 도 22(c)에 도시된 바와 같이, 전력 제어 유닛은 배터리 모드, 충전 모드, 및 외부 전원 모드 간을 절환하기 위해 사용되는 3개의 다중 기능 스위치들을 갖고 있다. 전력 제어 유닛은 또한, 전원 상태를 나타내는 LED, 및 충전기에의 접속을 위한 커넥터를 갖고 있다. As shown in FIG. 22, the arbiter module-D is composed of a battery unit and a power control units. Two types of battery packages (Ni-MH and Li-ion) supply 24 volts to the actuators and 12 volts to the control circuit. In order to protect the control circuit from electrical noise produced by the actuators, the power supplies are isolated from each other. The packages consist of cells (Ni-Mh: 1.5 volt cells, Li-ion: 3 volt cells). The battery cell manager monitors and automatically manages the state of cells for efficient and safe charging of packages. As shown in Figs. 22 (b) and 22 (c), the power control unit has three multi-function switches used to switch between the battery mode, the charging mode, and the external power mode. The power control unit also has an LED indicating a power supply state and a connector for connection to a charger.

안전한 전력 제어를 관리하고 구성 또는 재구성 어셈블리를 안전하기 유지하기 위해, 이 모듈은 전류, 전압, 온도, 배터리 방전, 로봇의 구동 시간을 감시한다. 전원은 디지털적으로 그리고 소프트웨어적으로 스위칭되어, 꼽고 빼는 프로세스 또는 기대하지 않은 충격에 의해 생기는 과전압, 과전류, 전압 강하, 및 노이즈를 방지한다. 또한, 배처리 충전시에도, 로봇 동작을 멈추지 않고 전원을 유지하는 자율적인 복구 프로세스가 달성된다.To manage safe power control and keep configuration or reconfiguration assemblies safe, the module monitors current, voltage, temperature, battery discharge, and robot run time. The power supply is digitally and software switched to prevent overvoltage, overcurrent, voltage drop, and noise caused by plugging and unplugging processes or unexpected shocks. In addition, even during the charging of the wastewater treatment, an autonomous recovery process of maintaining the power supply without stopping the robot operation is achieved.

다음에 상술한 바와 같이 구성된 각각의 모듈의 구현에 대해 설명한다.Next, an implementation of each module configured as described above will be described.

도 23은 다른 접속에 의해 각종 어셈블리들에 통합되는 각종 모듈-D들을 나타낸다. 모듈-D뿐만 아니라 센서, 모터, 및 회로와 같은 하위 모듈들 또는 구성 요소들은 새로운 것으로 쉽게 대체되는데, 이는 로봇이 재구성가능 구조를 지원하도록 설계되었기 때문이다. 동적 재구성 가능성은 제어 알고리즘의 유연성에 도움이 된다. 모듈-D들이 물리적으로 분산되어 있으므로, 이들의 저수준 작업은 하드웨어와 OS에 의존하고, 일정한 행위가 필요로 하는 프로세스 또는 정보가 다른 모듈-D들에 존재한다. 그러나, 하드웨어 및 OS와 독립된 VM-D는 고수준 지능 호환성을 제공하며, 중앙 신경 시스템으로서의 IEEE1394는 분산 데이터를 각 모듈-D에 실시간으로 전송한다. 도 24에 예시된 바와 같이, 예컨대, 장애물 회피와 같은 행위는 모듈-D들 사이에서 쉽게 이동하는데, 이는 상기 행위가 API들, 또는 RPL로 작성된 API들의 조합으로 구성되기 때문이다. 이는, 각 모듈-D의 개발자들이 다른 모듈-D들의 API들을 참조할 수 있을 때에만 자신들의 프로그램들을 쉽게 테스트하고 디버그함을 의미한다.23 shows various modules-D integrated into various assemblies by different connections. Module-D as well as sub-modules or components such as sensors, motors, and circuits are easily replaced by new ones, since the robot is designed to support reconfigurable structures. Dynamic reconfigurability helps the flexibility of the control algorithm. Since Module-Ds are physically distributed, their low-level work is dependent on hardware and OS, and the process or information that certain actions require is present in other Module-Ds. However, VM-D, independent of hardware and OS, provides high-level intelligence compatibility, while IEEE1394 as a central nervous system sends distributed data to each module-D in real time. As illustrated in FIG. 24, for example, an action such as obstacle avoidance easily moves between module-Ds because the action consists of APIs, or a combination of APIs written in RPL. This means that developers of each module-D can easily test and debug their programs only if they can reference the APIs of the other module-Ds.

도 25, 도 26 및 도 27은 DRP I의 재구성가능 구성을 설명한다. 도 25는 모듈-D들과의 핫 플러깅을 보여준다. 핫 플러깅 이벤트를 검출하는 2가지 방식이 이용된다. 하나는 버스 레스트를 체크하는 것이다. 한 모듈-D이 추가되거나 제거될 때, IEEE1394 통신의 노드 검출에 의해 버스 리셋이 일어난다. 다른 하나는 히트 비트(heat bit)라고 하는 모듈-D 정보의 작은 데이터를 다른 모듈-D에 주기적으로 전송하는 것이다. 이들 데이터를 감시함으로써, 시스템은 모듈-D이 추가되었는지의 여부를 알 수 있다. IEEE1394는 P2P(peer-to-peer) 네트워크 기반 토포로지를 실시간 처리 요건을 가진 모듈-D들에 제공한다. 중앙 서버는 네트워크에 정의되어 있지 않으며, 네트워크 내의 각 IEEE1394 노드는 스스로를 지원할 수 있고 네트워크를 유지할 수 있다. 따라서, 각 모듈-D은 자기 자신의 특성을 유지하고, 전체 시스템 또는 다른 모듈-D 동작에 영향을 주지 않고 시스템으로부터의 모듈-D 분리를 가능하게 한다.25, 26 and 27 illustrate the reconfigurable configuration of DRP I. 25 shows hot plugging with module-Ds. Two ways of detecting hot plugging events are used. One is to check the bus rest. When one module-D is added or removed, a bus reset occurs by node detection of IEEE1394 communication. The other is to periodically send small data of module-D information, called a heat bit, to another module-D. By monitoring these data, the system can know whether module-D has been added. IEEE1394 provides peer-to-peer network-based topology to Module-Ds with real-time processing requirements. The central server is not defined in the network, and each IEEE1394 node in the network can support itself and maintain the network. Thus, each module-D maintains its own characteristics and allows for module-D separation from the system without affecting the overall system or other module-D operation.

핫 플러깅시, DRP I의 네비게이션 알고리즘은 도 26에 도시된 바와 같이 자율적으로 재구성된다. 센서 모듈-D이 없는 비젼 기반 네비게이션의 경우에, 카메라 위치가 재구성되고 새로운 파라미터들이 네비게이션에 적용된다. 로봇은 비젼 데이터만을 이용하여 네비게이팅하며, 이는 로봇이 다른 센서들을 인식하지 못하기 때문이다. 유사하게, 로봇은 비젼 모듈-D를 인식하지 못하는 경우 센서 모듈-D의 센서 데이터만을 이용하여 네비게이팅한다. 도 27에 도시된 바와 같이, 센서 모듈-D의 각 센서의 범위는 '모듈 스와핑(module-swapping)’이라고 하는 모듈-D들의 배치 상태에 때라 네비게이션에 새롭게 반영된다. 위에서 언급한 동적으로 재구성가능한 구성들은 모듈-D의 API들이 표준화되고 로봇이 API들을 적절히 조립한다는 사실을 입증한다During hot plugging, the navigation algorithm of DRP I is autonomously reconfigured as shown in FIG. In the case of vision based navigation without sensor module-D, the camera position is reconfigured and new parameters are applied to the navigation. The robot navigates using only vision data, because the robot does not recognize other sensors. Similarly, when the robot does not recognize the vision module-D, the robot navigates using only the sensor data of the sensor module-D. As shown in FIG. 27, the range of each sensor of the sensor module-D is newly reflected in the navigation depending on the arrangement state of the module-Ds called 'module-swapping'. The dynamically reconfigurable configurations mentioned above demonstrate that Module-D's APIs are standardized and that robots assemble the APIs properly.

이상 본 발명자에 의해서 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.As mentioned above, although the invention made by this inventor was demonstrated concretely according to the said Example, this invention is not limited to the said Example and can be variously changed in the range which does not deviate from the summary.

상술한 바와 같이, 본 발명에 따른 모듈화된 모바일 로봇 시스템에 의하면, 표준화/규격화를 통한 모듈화 사용으로 관련 제품의 개발시간 단축이 가능하며 신뢰성의 확보를 통한 국제 경쟁력 강화와 시장의 확대, 그리고 이를 통한 경제적 효과를 기대할 수 있다. As described above, according to the modular mobile robot system according to the present invention, it is possible to shorten the development time of related products by using modularization through standardization / standardization, strengthen international competitiveness and expand the market through securing reliability, and Economic effects can be expected.

또한 본 발명에 따른 모듈화된 모바일 로봇 시스템에 의하면, 모듈형 로봇의 확장성을 이용하여, 이것을 이용하는 다른 산업과의 연계를 통한 부가가치 증대를 기대할 수 있다는 효과도 얻어진다.In addition, according to the modular mobile robot system according to the present invention, by using the expandability of the modular robot, it is also possible to expect the added value increase through linkage with other industries using the same.

Claims (5)

비디오 이미지를 전송하거나 이미지로부터 대상의 특징을 추출하기 위해 카메라로부터의 이미지 데이터를 처리하는 비젼 모듈, A vision module for processing image data from a camera to transmit a video image or extract features of an object from the image, 로봇에 장착된 센서로부터의 신호를 처리하는 센서 모듈, A sensor module for processing signals from sensors mounted on robots, 로봇의 이동성을 제공하는 모바일 모듈 및 A mobile module that provides the mobility of the robot and 상기 비젼 모듈, 센서 모듈, 모바일 모듈들로부터의 결과들에 기초하여 판단을 행하고, 스스로 동작하는 중재기 모듈을 포함하는 것을 특징으로 하는 모듈화된 모바일 로봇 시스템.And a self-operating arbiter module for making judgments based on the results from the vision module, sensor module, and mobile modules. 제1항에 있어서,The method of claim 1, 상기 비젼 모듈, 센서 모듈, 중재기 모듈 및 모바일 모듈의 각각은 모듈 제어 유닛과 테스트 유닛을 구비하는 것을 특징으로 하는 모듈화된 모바일 로봇 시스템.And each of the vision module, sensor module, arbiter module and mobile module have a module control unit and a test unit. 제2항에 있어서,The method of claim 2, 상기 모듈 제어 유닛과 테스트 유닛은 오픈 또는 슬라이드 도어-타입의 케이스를 구비하는 것을 특징으로 하는 모듈화된 모바일 로봇 시스템.And the module control unit and the test unit have an open or slide door-type case. 제1항에 있어서,The method of claim 1, 상기 중재기 모듈은 배터리 유닛과 전력 제어 유닛으로 구성된 것을 특징으로 하는 모듈화된 모바일 로봇 시스템.And said arbiter module is comprised of a battery unit and a power control unit. 제4항에 있어서,The method of claim 4, wherein 상기 중재기 모듈은 로봇의 각각의 모듈에 공급되는 전류, 전압, 온도, 배터리 방전, 로봇의 구동 시간을 감시하는 것을 특징으로 하는 모듈화된 모바일 로봇 시스템.The arbiter module monitors current, voltage, temperature, battery discharge, and driving time of the robot supplied to each module of the robot.
KR1020070062467A 2007-06-25 2007-06-25 Modularized mobile robot systemn KR20080113685A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070062467A KR20080113685A (en) 2007-06-25 2007-06-25 Modularized mobile robot systemn

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070062467A KR20080113685A (en) 2007-06-25 2007-06-25 Modularized mobile robot systemn

Publications (1)

Publication Number Publication Date
KR20080113685A true KR20080113685A (en) 2008-12-31

Family

ID=40370901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070062467A KR20080113685A (en) 2007-06-25 2007-06-25 Modularized mobile robot systemn

Country Status (1)

Country Link
KR (1) KR20080113685A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011132807A1 (en) * 2010-04-23 2011-10-27 삼성중공업 주식회사 Robot system control method and a device therefor
KR101113273B1 (en) * 2009-06-12 2012-03-14 부산대학교 산학협력단 The educational mobile robot with multi-sensors
KR101218125B1 (en) * 2012-07-06 2013-01-03 이학용 Service robot
KR20190140316A (en) * 2018-06-11 2019-12-19 현대모비스 주식회사 Charging robot for electric vehicle and control method thereof
WO2020222570A1 (en) * 2019-04-30 2020-11-05 한국기계연구원 Stackable module robot
KR102335101B1 (en) * 2021-07-27 2021-12-03 주식회사 클레빌 An Autonomous Robot System comprising a plurality of interchangeable Module
KR102335974B1 (en) * 2021-07-27 2021-12-07 주식회사 클레빌 An Autonomous Robot System comprising precision mapping technology with interchangeable Work Module
KR102362256B1 (en) * 2021-07-28 2022-02-15 주식회사 코봇 Smart order fulfillment system using AI based autonomous modularized robot platform
KR102362205B1 (en) * 2021-07-21 2022-02-15 주식회사 코봇 Autonomous mobile robot for smart order fulfillment system
KR102383648B1 (en) * 2021-07-28 2022-04-11 주식회사 코봇 Method of performing smart order fulfillment using AI based autonomous driving modularized robot platform

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101113273B1 (en) * 2009-06-12 2012-03-14 부산대학교 산학협력단 The educational mobile robot with multi-sensors
WO2011132807A1 (en) * 2010-04-23 2011-10-27 삼성중공업 주식회사 Robot system control method and a device therefor
KR101218125B1 (en) * 2012-07-06 2013-01-03 이학용 Service robot
KR20190140316A (en) * 2018-06-11 2019-12-19 현대모비스 주식회사 Charging robot for electric vehicle and control method thereof
WO2020222570A1 (en) * 2019-04-30 2020-11-05 한국기계연구원 Stackable module robot
KR20200126774A (en) * 2019-04-30 2020-11-09 한국기계연구원 Stack-Type Module Robot
KR20210148035A (en) * 2019-04-30 2021-12-07 한국기계연구원 Stack-Type Module Robot
KR102362205B1 (en) * 2021-07-21 2022-02-15 주식회사 코봇 Autonomous mobile robot for smart order fulfillment system
KR102335101B1 (en) * 2021-07-27 2021-12-03 주식회사 클레빌 An Autonomous Robot System comprising a plurality of interchangeable Module
KR102335974B1 (en) * 2021-07-27 2021-12-07 주식회사 클레빌 An Autonomous Robot System comprising precision mapping technology with interchangeable Work Module
KR102362256B1 (en) * 2021-07-28 2022-02-15 주식회사 코봇 Smart order fulfillment system using AI based autonomous modularized robot platform
KR102383648B1 (en) * 2021-07-28 2022-04-11 주식회사 코봇 Method of performing smart order fulfillment using AI based autonomous driving modularized robot platform

Similar Documents

Publication Publication Date Title
KR20080113685A (en) Modularized mobile robot systemn
US7430451B2 (en) Safety unit, controller system, connection method of controllers, control method of the controller system and monitor method of the controller system
EP2937751B1 (en) Control device and operation method for control device
KR100945884B1 (en) Embedded robot control system
Reinhart et al. Automatic configuration (plug & produce) of industrial ethernet networks
CN100446942C (en) Motion controller for modular embedded polypod robot
WO2005069890A3 (en) System and method for reconfiguring an autonomous robot
KR20010031303A (en) Robot controller and control method
US20040039459A1 (en) Universal device control
CN201020717Y (en) Module type embedded type multiple-foot robot movement controller
WO1998051456A1 (en) Robot control device
CN113315780A (en) Method and device for connecting and controlling single system and multiple AGVs
CN112276943A (en) Robot teaching control method, teaching control system, computer device, and medium
US6731089B2 (en) Flexible and compact motor control module based on the can communication network
WO2018223253A1 (en) Motion control card, motion control system, robot system, and numerical control machine tool
Vick et al. Using OPC UA for distributed industrial robot control
Roh et al. Development of dynamically reconfigurable personal robot
Ahn et al. Design of reconfigurable heterogeneous modular architecture for service robots
US9769548B2 (en) Wireless device for capturing stranded data on field devices
JPH11231924A (en) Command generating and monitoring device for different controllers
KR101038619B1 (en) Implementation of network based control module for smart actuator with multi degree of freedom used in robot
JP4480010B2 (en) Distributed control system
KR20020014657A (en) Operating system for a dynamically re-configurable pc
US8660693B2 (en) Component integration apparatus and method for collaboration of heterogeneous robot
Roh et al. A modularized personal robot DRP I: design and implementation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application