본문 바로가기

FOSCAR-(Autonomous Driving)/ROS 스터디

[2023 ROS 스터디] 조성준 #1주차 - ROS에 대해 알아보자

반응형

 이번 주차 과제는 1강. 로봇 소프트웨어 플랫폼 2강. 로봇 운영체제 ROS 3강. ROS 개발환경 구축을 듣고 공부하는 것입니다. 다들 파이팅 하면서 시작해 봅시다.

Chapter  1. 로봇 소프트웨어 플랫폼

 이번 강의에서는 이미 충분히 발전한 개인 컴퓨터와 휴대폰의 발전 과정을 바탕으로 앞으로 발전해야 할 로봇 소프트웨어 플랫폼의 방향에 대해 설명합니다. 기존 로봇 개발 방식은 마치 토니스타크가 아이언맨을 만드는 것처럼, 하드웨어 설계부터 소프트웨어까지 독자적으로 개발해야 하며, 소프트웨어의 설계를 위해서는 로봇 하드웨어에 대한 이해가 필요했는데, 이러한 문제는 각 분야의 전문가들의 접근이 쉽지 않아 발전 속도는 물론 대중화를 느리게 했고, 이런 문제점을 해결하고 빨리 대중화를 하기 위해서 하드웨어 운영체제 애플리케이션의 분리하고, 로봇 프로그래밍 생태계를 구축하려는 로봇 소프트웨어 플랫폼들이 나타났습니다. 그중 하나가 ROS입니다.

 

이 그림과 같이 로봇 산업 분야도 컴퓨터 핸드폰의 발자취를 이어 분업이 이뤄지고 있어요.

 

Chapter 2. 로봇 운영체제 ROS

  ROS는 로봇틱스 소프트웨어의 개발을 전세계의 단위에서 공동작업이 가능하도록 생태계를 구축하기 위해 만들어진 소프트웨어 플랫폼입니다. ROS는 Robot Operating System의 약자로서, 기존의 전통적인 운영체제와는 달리 meta-operating system입니다.  ROS는 기존 운영체제의 프로세스 관리 시스템, 파일 시스템, 유저 인터페이스, 프로그램 유틸등의 기능을 사용하고, 이에 추가적으로 이기종 하드웨어 간의 데이터 송수신, 스케줄링, 에러 처리 등 로봇 응용 소프트웨어 개발을 위한 필수 기능들을 제공해 주는 기능을 수행합니다. 또한 ROS는 윈도우, 맥 OS와 같이 여러 운영체제에서 사용 가능하며, 가상머신을 사용해도 된다고 했지만, 조금 느릴 수 있다고 했습니다. 그래서 저는 우분투가 깔린 노트북을 사용해보려고 합니다.

 ROS의 특징

1. NODE 간의 통신을 지원한다.

이기종 간의 통신 지원은 물론, 노드간의 메세지 교환이 가능해 프로그램을 잘게 나누어 개발 할 수 있다고 합니다. 강의자님 말씀으로는 개발간에 메세지 로그를 뜯어볼 일이 많은데, 그 때 많은 도움이 될 것이라고 말씀하셨습니다.

2. 로봇 관련 다양한 기능을 보유하고 있다.

가장 많은 사용자를 보유함과 동시에 오픈소스이기 때문에 모델링, 기하학 적인 좌표의 이동, 네비게이션등 이미 만들어져 있는 기능들이 많다고 합니다.  또한, 협업의 향상을 위해 로봇에 대한 표준 메시지들을 정의해 주며, 커뮤니티의 교류가 활발하기 때문에, 원하는 기능혹은 내가 필요한 것 같다. 하는 것들은 커뮤니티에 자유롭게 적으면, 반영될 수도 있습니다.

3. 다양한 개발 도구들을 보유하고 있다. 

ROS는 툴 박스로서, 많은 개발 툴들을 가지고 있어요. 사용자를 편하게 해줄 수 있는 많은 툴들을 가지고 있다고 합니다. 이건 아직 잘 모르겠으니, 사용해 봐야 알 것 같습니다.

 

Chapter 3. ROS 개발환경 구축

 ROS를 본격적으로 사용해 보기 전에 ROS 개발환경의 구축이 필수겠지요. 매우 복잡한 과정들이 있는 것 같지만, 다행히도 강의 선생님께서는 한 줄 설치가 가능하다는 사실과 그 코드에 대해 적어주셨어요. 비록 선생님께서는 ROS 공식 홈페이지를 통해 설치가 가능하다는 것도 말씀하시며, 한 번쯤 시도해 보라고 말씀하셨지만, 저는 PPT의 밥아저씨의 유혹을 이기지 못했습니다.

어캐참음?

저걸 그대로 복사하면 좋겠지만, 우리의 우분투 버전인 18.0.4에 맞는 melodic을 설치하기 위해서는 위의 코드에서  kinetic 을 전부 melodic으로 바꾸면 됩니다. 

wget https://raw.gihubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_melodic.sh && chmod 755 ./install_ros_melodic.sh && bash ./install_ros_melodic.sh를 입력하면 됩니다. 

위의 코드를 터미널에 적어주시면, 사진과 같이 이것 저것 뜨는데, 엔터를 눌러주고 비밀번호를 입력하시면 설치가 시작됩니다. 저는 생각보다 오래걸려서 이게 뭐지했는데, 그냥 기다려봤더니 설치가 끝났습니다. 걱정하지 않아도 됩니다.

ROS의 설치가 끝났다면, 설치가 올바르게 되었는지 확인 해봐야 합니다. 강의에서는 turtle sim 패키지를 이용한 확인 방법을 소개합니다. 

- roscore

- rosrun turtlesim turtlesim_node

- rosrun turtlesim turtle_teleop_key

- rosrun rqt_graph rqt_graph

를 순서대로 각각 다른 터미널을 열어서 입력해 주면 됩니다. 

다음과 같이 거북이가 나오고 그 거북이가 잘 움직인다면 성공이라고 생각하면 된다고 선생님이 그러셨습니다. 주의할점은 거북이가 있는 창을 선택하면 잘 작동이 안 될 수 있는데, 그게 아니라 teleop_key창을 클릭한 상태로 방향키를 움직여야 합니다.

 

이상으로 과제를 마치겠습니다. 다들 매우 늦었지만, 새해 복 많이 받으시길 바라고, 끝까지 이탈하는 사람없이 함께 했으면 좋겠습니다. 그럼 안녕

 

반응형