1 |
1
복수의 SBC를 갖는 로봇 소프트웨어를 컴퓨팅 자원에 기반하여 관리하는 방법으로서,
(a) 상기 각 로봇 소프트웨어 아키텍처를 분석하고 모델링하는 단계;
(b) 상기 각 아키텍처를 구성하는 컴포넌트들을 실행시키는 단계;
(c) 상기 각 컴포넌트들이 소모하는 컴퓨팅 자원들을 추정하는 단계; 및
(d) 상기 추정된 컴포넌트들이 소모하는 컴퓨팅 자원량에 따라서 상기 컴포넌트들을 상기 복수의 SBC 내로 재배치시키는 단계를 포함하는 것을 특징으로 하는 동적 로봇 소프트웨어 아키텍처 관리 방법
|
2 |
2
제 1 항에 있어서, 상기 (c) 단계는 상기 각 컴포넌트들을 재배치하여 아키텍처들을 구성하기 전에, 오프-라인 추정에 따라서 각 컴포넌트의 컴퓨팅 자원 사용을 추정하는 것을 특징으로 하는 동적 로봇 소프트웨어 아키텍처 관리 방법
|
3 |
3
제 1 항에 있어서, 상기 (d) 단계는,
(d1) 전체 컴포넌트의 컴퓨팅 자원 소모량을 산출하는 단계;
(d2) 상기 컴퓨팅 자원을 최대로 소모하는 컴포넌트부터 순차적으로 컴포넌트들을 전개시키는 단계; 및
(d3) 하기 수학식 1의 목적 함수 F를 최소화하도록 SBC를 선택하여, 선택된 SBC 내에 컴포넌트들을 배치시키는 단계를 포함하는 것을 특징으로 하는 동적 로봇 소프트웨어 아키텍처 관리 방법:
[수학식 1]
여기서, F는 목적 함수이며,
V(SBC)는 SBC들의 잔여 자원들의 분배이고,
ω1, ω2는 각각에 대한 분배 및 통신 오버헤드의 합산의 가중치이며,
(Ci - Cj)는 Ci와 Cj 사이의 통신 오버헤드 값이다
|
4 |
4
제 3 항에 있어서, 상기 수학식 1은 하기 수학식 2및 3에 의해 제한되는 것을 특징으로 하는 동적 로봇 소프트웨어 아키텍처 관리 방법:
[수학식 2]
[수학식 3]
여기서, xi,j는 SBCi 내에 컴포넌트 Cj가 배치되는 경우 1이 되며, 그렇지 않은 경우, 0이 되고,
CPUSBCi 및 MemSBCi 는 각각의 SBCi에서 컴포넌트 집합이 사용하는 컴퓨팅 자원들이며,
CPUcj와 Memcj 는 각각의 컴포넌트 Cj가 소모하는 컴퓨팅 자원들이다
|
5 |
5
제 3 항에 있어서, 상기 (d1) 단계에서 산출된 컴퓨팅 자원 소모량이 전체 SBC의 자원량을 초과하는 경우, 상기 컴포넌트들의 재배치를 종료하는 것을 특징으로 하는 동적 로봇 소프트웨어 아키텍처 관리 방법
|
6 |
6
제 3 항에 있어서, 상기 (d3) 단계는,
(d31) SBC 사이에 이동이 요구되는 컴포넌트의 실행을 일시 정지시키는 단계;
(d32) 상기 일시 정지된 컴포넌트를 상기 수학식 1에 따라 결정되는 해당 SBC로 이동시키는 단계;
(d33) 상기 이동한 컴포넌트의 상태를 복사하는 단계; 및
(d34) 상기 이동이 완료된 컴포넌트를 재실행시키는 단계를 포함하는 것을 특징으로 하는 동적 로봇 소프트웨어 아키텍처 관리 방법
|