① 로봇 소프트웨어 계층 구조
- 임베디드 소프트웨어 계층 구조
로봇 미들웨어 구현을 위한 첫 단계는 로봇 소프트웨어의 계층 구조를 이해하는 것이다. 여기서 소프트웨어 계층 구조는 요구 사항을 만족하는 시스템을 구축하기 위해서 전체 시 스템에 대한 구조를 정의하는 것이다. 또 시스템을 구성하는 컴포넌트와 그 컴포넌트 간 의 관계 그리고 컴포넌트가 다루는 정보를 정의하는 것이다. 소프트웨어 계층 구조는 현 재의 요구 사항뿐 아니라 변화되는 전략에 대응 가능하도록 장기적인 로드맵을 수용하여 확장 가능한 형태로 디자인되어야 한다. 또 구현 및 사용하고자 하는 조직의 기술 수준, 조직의 규모와 형태에 맞춰서 설계되어야 한다. 소프트웨어 계층 구조는 계층 구조를 구 성하는 요소의 일부가 변경되거나 기존의 계층 구조에 새로운 요소가 추가되는 경우, 다 른 요소들이 받는 영향이 최소화될 수 있도록 계층 구조는 유연(flexible)할 필요가 있다. 따라서 계층 구조 설계 프로세스의 핵심은 시스템의 공통성(commonal - ities)과 가변성 (variabilities)을 파악하여 계층 구조를 정의하는 것이다.
(1) 어플리케이션(graphic user interface)
어플리케이션은 넓은 의미에서 운영 체제에서 실행되는 모든 소프트웨어를 의미한다. 예로 우리가 사용하는 PC에서 사용하는 워드프로세서, 한글, 웹브라우저뿐만 아니라 컴파일러나 링커 등도 응용 소프트웨어인 셈이다. 또 좁은 의미에서는 운영 체제 위에 서 사용자가 직접 사용하게 되는 소프트웨어를 의미한다. 이런 경우 컴파일러나 링커 등 시스템 소프트웨어를 제외한 워드프로세서 등의 소프트웨어들만을 주로 뜻한다. 이 렇게 뜻을 한정할 경우 응용 소프트웨어는 시스템 소프트웨어의 여집합이라고도 생각 할 수 있다. 간단하게 줄여서 애플리케이션이라고 하며 더 줄여서 핸드폰에서 사용하 는 카카오와 같은 앱(app)이라고 부르기도 한다.
(2) 디바이스 드라이버
디바이스 드라이버는 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작 하는 프로그램이다. 컴퓨터를 구성하는 다양한 입출력 장치마다 각각 디바이스 드라이 버가 프로그램 되어 커널에 통합되어 실행된다. 참고로 커널은 운영 체제의 핵심적인 부분으로 하드웨어와 프로세서의 보안을 책임지며 시스템 자원을 효율적으로 관리하 여 프로그램의 실행을 원활하게 하는 역할을 하는 소프트웨어이다. 높은 수준의 컴퓨 터 프로그램들이 컴퓨터 하드웨어 장치와 상호 작용하기 위해 만들어진 하나의 컴퓨 터 프로그램이다. 디바이스 드라이버는 커널의 일부분이기는 하나 커널과 통합되는 것 은 처음부터 해당 드라이버 프로그램 코드가 커널 전체 코드에 포함되어 컴파일되는 경우도 있고, 별도로 컴파일된 파일(윈도의 *.sys, 리눅스의 *.o)의 형태로 존재하고 부 팅 시 또는 필요 시 해당 파일이 로드되어 커널과 통합되기도 한다. 보통 소형 임베디드 시스템의 경우 OS를 설치하지 않는 경우가 많기 때문에 디바이스 드라이버가 존재하지 않을 수 있다. 이럴 경우 개발자가 프로그램을 통해 하드웨어를 직접 제어하는 것이다. 중대형 임베디드 시스템의 경우 운영 체제를 설치하면 필수적 으로 디바이스 드라이버가 있는데 이는 직접 하드웨어를 제어하는 것이 아니라 운영 체제를 걸쳐 디바이스 드라이버를 통해 하드웨어를 제어하는 것이다
(3) 운영 체제
운영 체제는 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하 여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 기본적으로 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용프 로그램과 컴퓨터 하드웨어 사이의 중재 역할을 수행한다. 그러나 응용프로그램 코드는 일반적으로 하드웨어에서 직접 실행된다. 최근의 운영 체제는 휴대 전화, 게임기에서 부터 슈퍼컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있다. 운영 체제는 소비자와 프로그램 개발자를 함께 하나의 시장으로 데려다 놓을 수 있는 양면 플랫폼이며 현대의 PC 운영 체제에는 마이크로소프트 윈도우, 맥 OS X, 리 눅스가 있다.
(4) 임베디드(embedded) 소프트웨어
임베디드 시스템은 기계나 기타 제어가 필요한 시스템을 대상으로 제어를 위한 특정 기능을 수행하는 컴퓨터로서 장치 내에 존재하는 전자 시스템이다. 임베디드 시스템은 전체 장치의 일부분으로 구성되며 제어가 필요한 시스템을 위한 핵심적인 두뇌 역할 을 하는 특정 목적의 컴퓨터 시스템을 의미한다. 반면, 개인용 컴퓨터와 같은 특정되 지 않는 일반적인 목적을 수행하는 컴퓨터 시스템과는 대조된다. 특정 목적을 수행하 는 컴퓨터 시스템이므로 목적을 설정하고 이를 수행하는 프로그램 코드를 작성하여 메모리에 기록하고 이를 읽어 동작시키는 방법이 일반적이다. 전자 하드웨어와 기계 부분을 포함하는 전체 장치의 일부로 내장되었다는 의미에서 임베디드라는 단어로 사 용되었으며 오늘날 일상생활에 쓰이는 많은 장치들이 임베디드 시스템으로 제어되고 있다. 임베디드 시스템에서 핵심적인 두뇌 역할은 마이크로 컨트롤러(microcontroller) 나 DSP(digital signal processor) 등의 프로세서 코어가 담당하고 있으며, 많은 감지기가 상태 정보를 제공하고 구동기가 마이크로 컨트롤러의 명령에 따라서 동작하고 있다. 이와 같은 임베디드 시스템을 운영하는 소프트웨어를 임베디드 소프트웨어라고 하며, 로봇 시스템은 임베디드 시스템을 기반으로 개발되고 있다
일반적으로 우리가 집에서 보는 TV도 임베디드 시스템이다. 범용적인 측면보다 특정 목적을 위해 개발되는 것을 말한다. SW 뿐만 아니라 HW도 포함된다. 특히, 국방이나 항공우주 분야 같은 경우 별도의 다른 표준들이 있다. 쉽게 이야기 해서 갖고 계신 핸드폰은 국방이나 항공우주에 적용 못한다.
(5) 펌웨어(firmware)
펌웨어는 장치 안에 있는 ROM 안에 저장된 소프트웨어를 말한다. 메인보드에 탑재된 바이오스(BIOS) 프로그램도 펌웨어라 볼 수 있다. 임베디드의 경우 사용자가 직접 프로 그램을 플래시 메모리나 EEP-ROM에 적재하여 하드웨어를 동작시키는 경우가 있는데 이 프로그램이 영구적으로 저장되기 때문에 펌웨어라 부르기도 한다.
(6) 미들웨어
미들웨어는 애플리케이션에 도움이 되는 기능을 운영 체제나 하드웨어 등을 은폐한 형태로 제공하는 소프트웨어를 말한다. 임베디드 시스템의 경우에는 임베디드 운영 체 제의 기능 제공 수준에 의하여 미들웨어의 기능 범위가 달라진다.
미들웨어 구현을 위한 운영 체제 설치
일반적으로 미들웨어는 임베디드 운영 체제 프로그램에 함께 설치되어 공통적으로 공유하 는 정보를 설정하는 방법으로 구현한다. 특히, 로봇의 경우 다양한 운영 체제가 개발되어 경쟁적으로 표준이 되고자 노력하고 있다. 하지만 지역적인 문제와 경제적인 문제로 인하 여 각 국가에서 개발한 로봇 운영 체제가 범용 표준으로 될 가능성이 큰 것으로 예상된다. 우리나라의 경우도 국가 주도로 로봇 전용 OPRoS(open platform for robotic service) 운영 체제를 개발하여 보급하고 있다. OPRoS는 컴포넌트 기반의 오픈소스 플랫폼이며 통합 개 발 도구와 로봇에서 동작하는 프레임워크, 서버, 시험 및 검증 도구로 구성되어 있다. OPRoS에 대한 구체적인 정보는 공식 홈페이지(www.ropros.org)를 통하여 얻을 수 있다.
- OPRoS 개발도구 설치
일반 PC 환경(Window7/8 32bit) 기준 MICROSOFT사의 visual Studio 2010/2013/2015를 설치 한 환경에서는 공식 홈페이지(www.ropros.org)에서 그림 3-2와 같이 개발도구를 다운로드 받아 설치한다. 사용자는 사용하는 Visual Studio 버전에 맞는 OPRoS IDE 최신 버전을 다 운 받고 압축을 푼다.
- 환경 설정
다운로드 받아 압축을 푼 실행 프로그램에서 OPRoS_IDE.exe를 실행하여 OPRoS 개발도구 를 설치한다. 설치 경로는 별도로 설정하지 않고 기본 설정으로 되어 있는 Workspace 경 로 유지하고 OK 버튼을 눌러서 그림 3-3과 같이 프로그램을 설치한다.
OPRoS 개발도구를 실행한 뒤 상단 메뉴에서 Window/Preferences를 선택하고 이후 나타나는 Preferences 창의 왼쪽 메뉴에서 OPRoS를 선택하고 OK 버튼을 눌러 계속 설치를 진행한다
여기서, 하단의 Programing Language Setting 부분의 설정은 본인이 사용하고자 하는 프로 그램을 선정하면 된다. Visual Studio를 사용하려면 MSVC++로 설정해야 하며 기타 프로그 램을 사용할 경우 해당되는 프로그램으로 설정을 변경해야 한다. 여기서 설정 변경을 하 지 않은 경우 컴포넌트 빌드 시 컴파일러를 찾지 못하는 에러가 발생할 수 있다
- 어플리케이션 생성
OPRoS 프로그램을 다운 받아 설치가 완료되면 신규 어플리케이션을 하나 생성하는 작업 을 진행한다. 여기서 어플리케이션은 하나의 프로그램을 이식할 수 있는 공간으로 이해하 면 쉬우며, 한글 프로그램에서 하나의 새로운 창을 열어서 새로운 글쓰기 창을 만드는 것 과 같이 이해하면 된다. 메뉴에서 File> New> New Application을 선택하면 그림 3-5와 같 은 화면이 생성된다.
'Robotics : 로봇공학 > Certificate : 자격증' 카테고리의 다른 글
1. 요구 사항 파악 및 작업 분석하기 - 1-2. 작업 및 운용 환경 분석 (0) | 2023.02.07 |
---|---|
1. 요구 사항 파악 및 작업 분석하기 - 1-1. 요구 사항 파악 (0) | 2023.02.05 |
2-1-2 시스템 아키텍처, 특성, 설계방법 (2) | 2023.02.01 |
Middleware, Operating system : 2-1-1 미들웨어, 로봇 운영 체제 (0) | 2023.01.26 |
로봇SW기사 - 정리 현황 2023 (7) | 2023.01.26 |