1. 로봇 소프트웨어 플랫폼
플랫폼의 구성 요소
생태계 4대 요소 : 하드웨어 모듈 + 운영체제 + 앱(서비스) + 유저
보이지 않는 생태계 속의 분업이 가능하다.
로봇 분야도 동일하다.
소프트웨어 플랫폼이 가져온 변화
하드웨어 인터페이스가 통합되며, 하드웨어가 추상화 규격화 모듈화되었다. 이에 가격이 내려가고 성능은 올라갔으며, 하드웨어와 운영체제, 애플리케이션이 분리되었다. 또, 사용자 수요에 맞는 서비스에 집중되었으며, 유저가 증가하고 구매와 피드백, 새로운 생태계의 선환 구조가 형성되었다.
주요 로봇 운영체제
로봇 소프트웨어 플랫폼이 가져온 변화
하드웨어 지식이 없어도 운영 프로그램 작성이 가능하다. 이에 따라 다른 분야에서 ROBOTIS 분야로 진입이 쉽게 가능해졌다.
2. 로봇 운영체제 ROS
ROS란?
로봇 소프트웨어를 개발하기 위한 소프트웨어 프레임워크로, 로보틱스 소프트웨어 개발을 전세계 레벨에서 공동 작업 가능하도록 생태계를 구축하는 것이 주요 목적이다. ROS는 새로운 운영 체제가 아닌 메타운영체제이다. 메타운영체제는 전통 운영체제를 이용하여 만든, 로봇 응용 소프트웨어 개발에 필요한 툴박스를 갖추고 있다.
ROS를 사용 가능한 운영체제
ROS를 사용 가능한 운영체제로는 Ubuntu, OS X, Windows, Fedora, Gentoo, OpenSUSE, Debian, Raspbian, Arch, QNX Realtime OS 등이 있으나, 기본적으로는 Ubuntu, OS X에서 구동하는 것을 추천한다.
ROS의 구성
Client Layer + Robotics Application + Robotics Application Framework + Communication Layer + Hardware Interface Layer + Software Development Tools + Simulation
ROS의 구성
ROS의 특징
1) 통신 인프라
노드 간 데이터 통신을 제공한다. 통상적 미들웨어로 지칭되는 메시지 전달 인터페이스를 지원한다. 메시지 파싱이 가능하고, 메시지의 기록 및 재생이 가능하다. 또, 메시지 사용으로 인한 다양한 프로그래밍 언어 사용이 가능하며, 분산 매개 변수 시스템을 지원한다.
2) 로봇 관련 다양한 기능
로봇에 대한 표준 메시지를 정의하고, 로봇 기하학 라이브러리를 제공해준다. 또, 로봇 기술 언어를 사용하여 기술이 가능하고, 진단 시스템 및 센싱/인식, 네비게이션, 매니플레이션 등의 시스템 및 라이브러리를 제공한다.
3) 다양한 개발 도구
로봇 개발에 필요한 다양한 개발 도구를 제공한다.
Command-Line Tools : GUI 없이 ROS에서 제공하는 명령어로만 로봇 액세스 및 거의 모든 ROS 기능 소화 가능하다.
RViz : 강력한 3D 시각화를 제공한다. 레이저, 카메라 등의 센서 데이터를 시각화한다. 로봇 외형과 계획된 동작을 표현한다.
RQT : 그래픽 인터페이스 개발을 위한 Qt 기반 프레임워크를 제공한다. 노드와 그들 사이의 연결 정보를 graph 형식으로 표시 가능하다. 인코더, 전압 또는 시간의 흐름에 따라 변화하는 숫자를 플로팅 가능하며, 데이터를 메시지 형태로 기록하고 재생이 가능하다.
Gazebo : 물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원하는 3차원 시뮬레이터
3. ROS 개발환경 구축
ROS 설치
wiki.ros.org 홈페이지에 들어가서 Documentation 카테고리에 들어간다. 그 다음 installation을 눌러 최신 버전의 LTS로 설치해준다.
우리는 Ubuntu 환경이므로 Ubuntu를 눌러준다.
다음 명령어로 확인 결과, 나는 Ubuntu 20.04 버전을 사용중이므로 ROS Noetic 버전을 설치해주었다.
ROS 설치하기
1.1 Configure your Ubuntu repositories
1.2 Setup your sources.list
1.3 Set up your keys
1.4 Installation
1.5 Environment Setup
1.6 Dependencies for building packages
ROS 동작 테스트
마지막으로, ROS가 제대로 설치되었는지 확인하기 위한 작업이다.
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
새로운 터미널(ctrl+alt+T)을 열어 각각 두개의 명령어를 순서대로 입력한다. 그러면 다음 아래와 같이 파란색 배경에 거북이 화면이 뜬다. 처음에는 거북이가 움직이지 않는 것이 정상이다.
두번째 명령어(rosrun turtlesim turtle_teleop_key)를 친 터미널에 마우스를 클릭하여 활성화시켜준 다음, 방향키 ←→↑↓를 눌러주면, 다음과 같이 내가 입력을 준 방향대로 거북이가 움직이는 것을 볼 수 있다.
* ROS 설치 참고 링크
'Autonomous Driving > ROS' 카테고리의 다른 글
SLAM과 내비게이션 (2) | 2023.02.05 |
---|---|
[ROS] ROS 기본 프로그래밍 (0) | 2023.01.29 |
ROS 명령어 (0) | 2023.01.21 |
ROS의 중요 컨셉 (0) | 2023.01.21 |