본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2024 ROS 스터디] 반제호 #1주차 - ROS를 왜 사용할까?

반응형

#1 ROS가 만들어지게 된 배경은?

 먼저 개인 핸드폰과 컴퓨터의 공통점에 대해서 생각해보면, 다양한 하드웨어의 결합이 가능한 하드웨어 모듈이라고 할 수 있다. 또한 운영 체제와 애플리캐이션이 함께 운용되는데, 크게 4부분으로 나누어 보면 하드웨어 모듈 + 운영체제 + 앱(서비스) + 유저가 되는데 이를 에코 시스템, 일명 소프트웨어 플랫폼이라 부른다. 소프트웨어 플랫폼은 펌웨어에서는 할 수 없었던 하드웨어 인터페이스 통합, 하트웨어 추상화 및 규격화, 가격 하락과 성능 강화 외에도 여러 변화를 가져왔다.

 

 그렇다면 ROS에 앞서 왜 소프트웨어 플랫폼을 알아보았을까? 이에 대해 생각해보면 소프트웨어 플랫폼에서 가장 중요한 역활을 하는 것이 운영체제인데, 로봇 소프트웨어 플랫폼에서는 ROS가 운영체제이기 떄문이다.현재 3군데의 주요 로봇 운영체제(ROS, opros, NAOqi) 중에서도 ROS가 가장 잘나가고 있는 상황이며, 이러한 로폿 소프트웨어 플랫폼은 하드웨어 플랫폼과 소프트웨어 플랫폼간의 인터페이스 확립, 더 많은 소프트웨어 인력들이 로포틱스 분야로 진입, 유저에게 제공할 서비스에 집중 등등의 미래를 가져올 것으로 기대된다.

 

 

 

#2 ROS에 대해 자세히 알아보기

 ROS란 로봇을 위한 운영체제로, 오픈소스를 기반으로 하며 사용과 수정이 쉽다는 장점을 가지고 있는 소프트웨어 프레임워크이다.. 

전통적인 운영체제를 이용하는 메타 운영체제 ROS

 

 ROS는 메타 운영체제라고 불리기도 하는데, 그림에서 볼 수 있듯이 전통적인 운영체제가 아니라 이들을 이용하기 때문이다. 이러한 방향으로 개발된 목적은 앞서 본 휴대폰과 노트북에 구축된 생태계를 로봇 개발에도 사용하기 위함이며, 이를 위해 로봇 소프트웨어 프레임워크를 기반으로 다양한 목적의 응용 프로그램을 제공한다. 

 

 메타 운영체제의 최대 장점은 이기종 디바이스 간의통신 지원인데, 로봇은 하드웨어가 굉장히 다양하기에 이들을 연결하는 것이 어렵기 때문이다. 따라서 특정 OS보다 메타 운영체제가 더 실용성이 있고 90종류 이상의 로봇과 여러 센서, 기능을 지원한다.

 

 

 

#3 ROS의 주요 특징 3가지

1. 통신 기능

- 센서에서 받은 정보를 2차 가공하여 전달하는 노드 간 데이터 통신을 제공.

- 다양한 프로그래밍 언어를 사용 가능하고 저장된 메시지를 기반으로 반복적인 실험이 가능한 것도 중요한 기능인데, 실험을 통해 알고리즘이 좋아졌는지 확인할 수 없기 때문에 저장해주는 기능이 필요하다..

 

2. 로봇 관련 다양한 기능

- 카메라, 센서 등등 다양한 데이터를 주고 받을때 표준 메시지를 정의되어 있어 사용이 편리함.

- 로봇, 센서 등의 상대적 좌표를 트리화 시키는 TF를 제공하는데, 로봇의 움직임을 구현하기 쉽게 해준다.

- etc) 로봇 기술 언어, 진단 시스템, 센싱/인식 등등

 

3. 다양한 개발 도구

- 로봇 개발에 필요한 다양한 개발 도구를 제공 (RViz, RQT, Gazebo).

 

 

 

#4 ROS 동작 테스트

 ROS를 다운로드 후 turtlesim 패키지를 이용하여 간단한 동작 테스트를 진행해 보았다.

 

roscore 입력

먼저 roscore를 터미널에 입력하여 turtlesim을 실행한다.

 

rosrun turtlesim turtlesim_node 입력

그 후, 다른 터미널을 열고 rosrun turtlesim turtlesim_node를 입력하면 Python에서 자주 보았던 터틀 그래픽이 나타난다.

 

 

마지막으로 rosrun turtlesim turtle_teleop-key를 입력하고 거북이를 조종해보면 끝!

반응형