첫 날의 강의 내용 요약을 보려면 여기를 클릭
ROS의 개념
왜 ROS를 배워야 하는가?
이 날부터는 ROS에 대한 개념과 강의를 시작했다.
ROS는 무엇이고, 왜 ROS를 사용해야 하는지.
- Ros는 Robot Operating System 의 약자로, 로봇용 오픈 소스이다.
- 메타 운영 체제를 가지고 있으며, 일반 운영체제에서 제공하는 Hardware abstraction, Low-level device control 등의 기능과 프로세스 사이의 메세지 전달, 패키지 관리 기능을 제공한다.
- 여러 컴퓨터 시스템의 코드를 빌드, 작성, 실행하기 위한 도구와 라이브러리를 제공한다.
이 내용을 읽어보면, “음, 그래. 도움이 되는구나.” 근데 왜 꼭 Ros를 사용해야 하는걸까? 일반 운영체제에서도 Hardware abstraction, Low-level device control은 충분히 가능하다.
- Ros 사용 목적은 로봇 연구 개발 시, 모든 사람이 협업하고 공유하기 위함.
- 모든 로봇을 제어할 수 있는 다양한 기능의 프레임워크를 지원하지는 않지만, 약간의 모듈을 추가하여 편리하게 코드를 재사용 할 수 있음.
- 디버깅 및 시각화, 시뮬레이션 등의 다양한 도구를 통해 개발의 속도를 향상.
- 운영체제 및 프로그래밍 언어와 상관 없이, 각 프로세스 사이의 통신이 가능.
- 독립적인 프로세스로 동작. (하나의 노드에서 오류가 발생해도 정상 작동 가능.)
공부를 할 때 가장 중요한 것은 왜 이것을 배워야 하는가? 이다. ROS를 배워야 하는 이유는 위에 적혀 있는 이유만으로도 충분히 납득이 가능하다.
우리는 앞으로 Ros를 배우고 사용할 것이다. 현직에서 사용하게 될 지는 모르겠으나, Robot을 제어하고 움직이는 기술이 중요하다는 걸 충분히 알 수 있을 것이다.
이 때, 코드를 재사용이 가능하고 협업 및 공유할 수 있다는 것, 그것이 ‘운영체제와 프로그래밍 언어 상관 없이’ 이루어진다는 것은 가히 혁신적인 기술이다.
거기에, 디버깅 및 시각화 시뮬레이션이 제공되며 ‘독립적인 프로세스’ 로 작동된다는 것은 최적의 프로그램이라는 걸 알 수 있었다.
ROS Installation
Ros 설치는 Ros Document로 가면 쉽게 설치할 수 있다. 설치하는 과정에서 오류는 발생하지 않았던 것 같다.
Ros를 다섯 번이 넘게 설치해 보다 보니, 이제는 거의 도사가 되었다.
설치하기 위한 문장들은 전부 간단하게 되어있는데, 이에 대해 이해가 안되는 부분이 있다면 Ubuntu 교육과정을 거치는 것을 추천한다.
Ros 설치가 완료되면 Turtlesim을 실행할 수 있을 것이다.
여기까지 완료된다면 Turtlesim Package를 뜯어보며 이해해볼 것이다.
3월 이전까지는 이 패키지를 뜯어서 이해하고, 새로운 패키지를 구성하는 방식에 대해서 하나하나 파헤쳐 보고자 한다.
$ ros2 run turtlesim turtlesim_node
터틀심을 실행시켜서 거북이가 나오는 걸 확인한다.
이때 기분이 상당히 좋다. 축하한다, 지옥에 발을 들인 걸 환영한다.
그리고, 새로운 터미널을 열어서 다음 명령어를 입력해 조종하는 노드를 실행한다.
$ ros2 run turtlesim turtle_teleop_key
를 입력하고 거북이를 움직여보는 과정을 거쳐본다.
만약 한글패치를 진행하고 난 후, 움직이지 않는 오류가 발생한다면 언어를 en(영어)로 반드시 전환하고 진행하라.