ROS가 생긴 이유
로봇을 만드는 곳마다 지도 그리는 코드를 따로 짤까?
예전에는
연구실마다 같은 것을 다시 짰습니다
로봇을 움직이려면 모터를 돌리는 코드, 센서를 읽는 코드, 화면에 그려 보는 도구가 먼저 있어야 합니다. 예전에는 연구실마다 이것을 처음부터 다시 만들었고, 정작 하고 싶던 새 연구는 그 위의 작은 몫이었습니다.
시작
바탕을 함께 쓰자
그래서 나온 것이 ROS(Robot Operating System)입니다. 2007년 무렵 스탠퍼드 대학의 로봇 연구에서 시작해 로봇 회사 Willow Garage가 키웠고, 누구나 쓰고 고칠 수 있는 오픈 소스로 공개했습니다.
지금은 Open Robotics를 중심으로 전 세계 회사와 개발자가 함께 만듭니다.
패키지
남의 패키지를 받아 씁니다
ROS의 코드는 패키지(package) 단위로 묶여 공개됩니다. 지도 그리기, 길 찾기, 시각화 도구가 모두 패키지이고, Ubuntu에서는 sudo apt install ros-jazzy-slam-toolbox처럼 한 줄로 받습니다.
이 명령은 15강 3편에서 실제로 칩니다. 패키지는 5강에서 직접 만듭니다.
같은 말
모양을 맞추면 바꿔 끼웁니다
ROS에는 센서 데이터의 모양이 미리 정해져 있습니다. 라이다라면 회사와 상관없이 LaserScan이라는 같은 모양으로 내보냅니다. 그래서 센서를 바꿔도 그 데이터를 쓰는 쪽은 고치지 않아도 됩니다.
2편에서 본 "센서를 바꾸면 코드 곳곳을 고친다"의 답입니다. 메시지 모양은 4강에서 읽습니다.
내 몫
내가 짤 것은 맨 위 한 층
운영체제 위에 ROS 2가 있고, 그 위에 누군가 만들어 둔 패키지가 쌓입니다. 나는 맨 위에서 내 로봇만의 일에 집중하면 됩니다.
이 과정에서도
15강도 남의 바퀴를 탑니다
15강에서 지도를 그리고 목표까지 가지만, 지도 그리기나 길 찾기 코드를 직접 짜지는 않습니다. 이미 있는 패키지를 설치하고, 띄우고, 서로 잇고, 설정합니다. 그 방법을 아는 것이 ROS를 쓸 줄 안다는 뜻입니다.
다음 편