ROS2 입문하기

Yoonkyo·2025년 1월 7일

ROS

목록 보기
1/3
post-thumbnail

ROS란?

ROS는 Robot Operating System의 약자로, 말 그대로 로봇의 운영체제이다. 현재는 로봇을 개발할 때 필수적인 요소가 되었는데, 그 이유는 다음과 같다.

  • 로봇 개발 특성 상 하드웨어 의존적인 소프트웨어를 개발해야하는데, ROS에서는 하드웨어 인터페이스의 통합으로 어떠한 환경에서도 실행, 수정, 업데이트가 편리하다.
  • 로봇을 시뮬레이션, 테스트하기에 편리한 도구들을 제공한다.
  • 코드를 패키지별로 모듈화하여 실행할 수 있으며, 이를 통해 코드의 확장재사용에 용이하다.

참고로, ROS 공식 홈에서는 위의 내용을 다음과 같이 표현하고 있다.

The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source.

여담으로 필자가 느낀 가장 큰 장점으로는, 일단 사용자가 많아 다수의 패키지, 라이브러리 그리고 오류가 발생했을 때 솔루션이 너무 잘 되어있다는 점이다.

실행 방식

그렇다면, ROS는 대체 어떻게 동작하는 것일까?
실행 방식에 앞서 ROS에서 사용되는 용어들을 몇 가지 정리해보았다.

  • Node: ROS에서 실행 가능한 최소 단위의 프로세서로, 다른 노드와 메세지를 주고 받으며 실행된다.
  • Package: 위의 설명한 노드를 1개 이상 실행시키기 위한 파일
  • Message: 노드간의 정보를 주고 받는 변수로, int, float, boolean외에도 여러 형태가 있다.
  • Publisher: 메세지를 발송하는 노드
  • Subscriber: 메세지를 수신하는 노드

기존의 ROS1에서는 Master가 존재하여 roscore를 입력한 후, 노드의 가운데서 PublisherSubscriber간의 통신을 연결하였다. 하지만, ROS2에서는 노드와 노드간의 연결이 Topic을 통해 가능하다. 즉, Topic이란 여러 개의 PublisherSubscriber가 연결이 될 수 있다. 지금까지의 말한 것을 그림으로 나타내자면 다음과 같다.

처음 센서를 통해 읽는 Publisher노드는 센서값을 토픽으로 발행하게 되고, Actuator는 받아온 값을 통해 동작하게 된다. 조금 더 정밀한 System의 경우, 현재 동작하는 값을 다시 토픽에 발행하여 오차를 줄일 수도 있다.

마치며

이번 포스팅에서는 ROS가 왜 필요하며, 어떻게 실행되는지 간단하게 알아보았다.

이어서는 본격적인 ROS의 설치와 실행을 하는 과정도 남겨보겠습니다..!

profile
코드로 상상하고, 로봇으로 실현하는 개발자입니다😊

0개의 댓글