Skip to main content
Summary

로봇에게 '어디'와 '어느 쪽'은 다르다

사람은 공간을 꽤 느슨하게 말한다. 친구와 약속을 잡을 때도 '카페 앞에 있어', '문 쪽을 보고 서 있어', '오른쪽 테이블에 앉아 있어' 정도면 충분하다. 상대가 알아서 주변을 보고, 방향을 맞추고, 우리를 찾아낸다.

하지만 로봇에게는 이 말이 그대로 통하지 않는다. 로봇은 '카페 앞'이 정확히 어느 점인지, '문 쪽'이 어느 방향인지, '오른쪽'이 누구 기준의 오른쪽인지 알아야 한다. 로봇이 물체를 잡거나, 장애물을 피하거나, 목적지까지 이동하려면 공간을 숫자로 표현해야 한다. 이때 등장하는 언어가 바로 위치, 자세, 좌표계다.

위치는 공간상의 한 점을 뜻한다. 바닥 위의 로봇을 생각하면 위치는 대략 '가로로 몇 미터, 세로로 몇 미터 떨어져 있는가'로 표현할 수 있다. 지도 위의 점처럼 말이다. 반면 자세는 그 점에 더해 어느 방향을 향하고 있는가까지 포함한다. 같은 자리에 서 있어도 정면을 보고 있는지, 뒤를 보고 있는지, 옆을 보고 있는지에 따라 로봇의 다음 행동은 완전히 달라진다.

로봇 청소기를 예로 들어 보자. 로봇이 거실 한가운데에 있다고 해도 그것만으로는 부족하다. 로봇의 앞쪽이 소파를 향하는지, 주방을 향하는지, 벽을 향하는지 알아야 한다. 같은 위치에서 '앞으로 1미터 이동'이라는 명령을 내려도, 로봇이 바라보는 방향에 따라 도착점이 달라지기 때문이다.

그래서 로봇공학에서는 보통 이렇게 구분한다. 위치는 '어디에 있는가'이고, 자세는 '어디에 있으며 어느 방향을 보는가'이다. 영어로는 자세를 포즈, 즉 pose라고 부르기도 한다. 포즈라는 말이 사람의 몸동작을 떠올리게 하듯, 로봇의 포즈도 단순한 좌표점이 아니라 공간 안에서 놓인 상태 전체를 뜻한다.

위치와 자세, 좌표계의 언어

좌표계는 공간에 붙이는 자와 나침반이다

좌표계는 어렵게 들리지만, 사실은 공간을 설명하기 위해 정한 기준이다. 책상 위에 종이를 놓고 왼쪽 아래 모서리를 기준점으로 삼은 뒤, 오른쪽으로 몇 센티미터, 위로 몇 센티미터라고 말하면 그것이 이미 좌표계다. 기준점이 어디인지, 어느 방향을 양의 방향으로 볼 것인지, 한 칸이 몇 미터인지 정하면 공간을 숫자로 표현할 수 있다.

좌표계를 이해할 때는 네 가지를 기억하면 좋다.

  • 기준점: 좌표가 시작되는 원점이다.

  • 축의 방향: x축, y축, z축이 어느 방향을 가리키는지 정한다.

  • 단위: 미터, 센티미터, 라디안, 도처럼 숫자의 크기를 해석하는 기준이다.

  • 회전 기준: 어느 방향을 정면으로 보고, 어느 방향으로 도는 것을 양의 회전으로 볼지 정한다.

로봇이 2차원 바닥 위를 움직인다면 위치는 보통 (x, y)로 표현할 수 있다. 여기에 로봇이 바라보는 방향 θ를 더하면 (x, y, θ)가 된다. 이 세 숫자만으로도 바퀴 로봇의 현재 상태를 꽤 잘 설명할 수 있다. 예를 들어 (2, 3, 90도)라고 하면 어떤 기준점에서 오른쪽으로 2미터, 위쪽으로 3미터 떨어져 있고, 90도 방향을 보고 있다는 뜻이 된다.

공간이 3차원이 되면 조금 더 풍부해진다. 드론은 바닥 위의 점만으로 설명할 수 없다. 높이가 필요하다. 그래서 (x, y, z)가 필요하다. 여기에 회전도 하나가 아니라 여러 방향으로 생긴다. 고개를 좌우로 돌리는 회전, 위아래로 숙이는 회전, 몸을 좌우로 기울이는 회전이 모두 중요해진다. 흔히 이를 yaw, pitch, roll이라고 부른다. 한국어로는 각각 요, 피치, 롤이라고 적기도 한다.

처음부터 이 용어를 완벽히 외울 필요는 없다. 중요한 직관은 하나다. 로봇의 상태를 제대로 말하려면 점의 위치와 몸의 방향을 함께 말해야 한다.

월드 좌표계: 모두가 공유하는 지도 위의 기준

로봇이 혼자 생각할 때는 자기 기준만 있어도 될 것 같다. 하지만 로봇이 지도 위에서 움직이거나, 여러 센서의 정보를 합치거나, 사람에게 자신의 위치를 알려 주려면 더 큰 기준이 필요하다. 이것이 월드 좌표계다.

월드 좌표계는 말 그대로 세상에 고정된 좌표계다. 실내 로봇이라면 방 한쪽 모서리를 원점으로 삼을 수 있다. 공장 로봇이라면 작업장 바닥의 특정 지점을 원점으로 정할 수 있다. 자율주행차라면 지도나 도로를 기준으로 한 좌표계가 필요하다. 드론이라면 지구 위의 위도, 경도, 고도와 연결된 기준을 사용할 수도 있다.

월드 좌표계의 핵심은 로봇이 움직여도 기준은 움직이지 않는다는 점이다. 로봇이 앞으로 가든, 회전하든, 넘어지든, 방의 원점과 x축, y축은 그대로다. 그래서 월드 좌표계는 지도, 목적지, 고정 장애물, 작업 공간을 표현할 때 유용하다.

예를 들어 물류창고에 이동 로봇이 있다고 하자. 창고 입구를 원점으로 정하고, 오른쪽 통로 방향을 x축, 안쪽 깊이 방향을 y축으로 정한다. 그러면 선반 A는 (5, 12), 충전기는 (1, 2), 포장대는 (18, 4)처럼 표현할 수 있다. 로봇이 어느 방향을 보고 있든 이 숫자들은 변하지 않는다. 창고라는 세계에 붙어 있는 주소이기 때문이다.

사람으로 비유하면 월드 좌표계는 도시 지도와 비슷하다. 내가 북쪽을 보고 있든 남쪽을 보고 있든, 서울역과 광화문의 위치는 지도에서 변하지 않는다. 내 몸이 돌았다고 도시가 같이 도는 것은 아니다.

로봇 좌표계: 로봇 몸에 붙어 함께 움직이는 기준

반대로 로봇 좌표계는 로봇의 몸에 붙어 있는 좌표계다. 로봇이 움직이면 좌표계도 함께 움직이고, 로봇이 회전하면 좌표계도 함께 회전한다. 이 기준에서는 항상 로봇의 앞, 뒤, 왼쪽, 오른쪽이 중요하다.

바퀴 로봇을 생각해 보자. 보통 로봇의 앞쪽을 x축 양의 방향으로 잡고, 왼쪽이나 오른쪽을 y축으로 잡는다. 위쪽은 z축이 된다. 이 약속은 시스템마다 조금씩 다를 수 있지만, 중요한 것은 로봇의 몸을 기준으로 공간을 설명한다는 점이다.

로봇 좌표계에서는 '앞으로 1미터', '왼쪽으로 30센티미터', '제자리에서 오른쪽으로 20도 회전' 같은 명령이 자연스럽다. 실제 모터를 제어할 때도 로봇 입장에서는 지도보다 자신의 몸이 더 직접적인 기준이다. 바퀴는 월드 좌표계의 x축을 따라 도는 것이 아니라, 로봇 몸체의 앞뒤 방향을 따라 힘을 만든다.

여기서 흥미로운 일이 생긴다. 월드 좌표계에서 보면 로봇이 동쪽을 향할 때의 '앞'과 북쪽을 향할 때의 '앞'은 다르다. 하지만 로봇 좌표계에서는 언제나 앞이 앞이다. 로봇이 회전하면 앞 방향도 같이 회전하기 때문이다.

이 차이를 모르면 명령이 뒤틀린다. 지도 기준으로는 목표가 오른쪽 위에 있는데, 로봇 기준으로는 뒤쪽에 있을 수 있다. 사람도 비슷하다. 스마트폰 지도에서 '북동쪽으로 이동'하라는 말과, 친구가 '네 오른쪽으로 돌아'라고 말하는 것은 기준이 다르다. 두 말이 같은 행동을 가리킬 수도 있지만, 내가 어느 방향을 보고 있는지에 따라 달라질 수도 있다.

카메라 좌표계와 센서 좌표계: 감각기관이 보는 자기만의 세계

센서도 자기 기준을 가진다. 카메라는 카메라 렌즈를 기준으로 세상을 본다. LiDAR는 레이저가 나가는 장치의 중심을 기준으로 거리를 잰다. IMU는 자기 내부의 축을 기준으로 가속도와 회전을 측정한다. 힘/토크 센서는 힘이 작용하는 방향을 자신의 축에 맞추어 숫자로 바꾼다.

이처럼 센서에 붙은 좌표계를 센서 좌표계라고 부를 수 있다. 카메라에 붙은 좌표계는 특별히 카메라 좌표계라고 부른다.

카메라가 물체를 발견했다고 해 보자. 카메라는 물체를 '이미지의 오른쪽 아래에 있다'고 말할 수 있다. 깊이 카메라라면 '카메라 앞 80센티미터, 오른쪽 20센티미터, 아래쪽 10센티미터'처럼 말할 수도 있다. 그런데 이 값은 어디까지나 카메라 기준이다. 카메라가 로봇 머리에 달려 있는지, 가슴에 달려 있는지, 약간 아래를 향해 기울어져 있는지에 따라 같은 물체도 로봇 몸 기준으로는 다른 위치가 된다.

센서 좌표계가 중요한 이유는 센서가 로봇 몸의 중심에 정확히 붙어 있지 않기 때문이다. 현실의 로봇에는 카메라가 앞쪽으로 튀어나와 있을 수 있고, LiDAR가 몸체 위에 올라가 있을 수 있으며, 로봇팔 끝에는 별도의 카메라가 달려 있을 수 있다. 센서가 조금이라도 떨어져 있거나 기울어져 있으면, 센서가 본 세계와 로봇 몸이 움직이는 세계 사이에는 차이가 생긴다.

사람으로 비유하면 쉽다. 우리는 눈으로 물체를 보지만, 손으로 물체를 잡는다. 눈은 얼굴에 있고 손은 팔 끝에 있다. 컵이 눈앞에 보인다고 해서 손이 곧바로 그 위치에 있는 것은 아니다. 뇌는 눈으로 본 컵의 위치를 몸과 팔의 위치에 맞게 바꿔 해석한다. 로봇도 같은 일을 해야 한다.

좌표계 변환: 같은 물체를 다른 기준으로 다시 말하기

좌표계 변환은 이름만 들으면 수학 공식처럼 느껴진다. 하지만 본질은 간단하다. 어떤 기준으로 표현된 위치와 방향을 다른 기준의 말로 다시 표현하는 것이다.

예를 들어 로봇 앞쪽에 카메라가 달려 있고, 카메라가 상자를 발견했다고 하자. 카메라는 이렇게 말한다.

'상자는 내 기준으로 앞 1미터, 오른쪽 30센티미터에 있다.'

하지만 로봇 제어기는 이렇게 알고 싶어 한다.

'그 상자는 로봇 몸 기준으로 어디에 있지?'

그리고 지도 시스템은 또 이렇게 알고 싶어 한다.

'그 상자는 창고 지도 기준으로 어느 위치에 있지?'

같은 상자 하나를 두고도 카메라 좌표계, 로봇 좌표계, 월드 좌표계의 표현이 모두 필요하다. 카메라가 본 값을 로봇 몸 기준으로 바꾸고, 다시 지도 기준으로 바꾸어야 한다. 이 과정이 좌표계 변환이다.

변환에는 크게 두 가지가 들어간다. 하나는 이동이고, 다른 하나는 회전이다. 카메라가 로봇 중심보다 20센티미터 앞에 달려 있다면 그만큼 위치를 옮겨 생각해야 한다. 카메라가 아래로 15도 기울어져 있다면 그만큼 방향을 돌려 생각해야 한다. 이동과 회전을 함께 적용해야 비로소 센서가 본 물체의 위치를 로봇이 행동할 수 있는 위치로 바꿀 수 있다.

이때 수식보다 중요한 감각은 다음과 같다. 센서가 말한 '앞'은 로봇의 '앞'과 다를 수 있다. 로봇의 '앞'은 지도의 '동쪽'과 다를 수 있다. 그러므로 로봇은 매 순간 '누구 기준의 앞인가'를 확인해야 한다.

'오른쪽에 장애물'이라는 말의 함정

로봇이 복도를 달리다가 카메라로 장애물을 발견했다고 하자. 카메라 화면에서 장애물은 오른쪽에 보인다. 이때 로봇이 단순히 '장애물이 오른쪽에 있으니 왼쪽으로 피하자'고 판단하면 충분할까?

상황에 따라 그렇지 않을 수 있다. 카메라가 로봇의 정면을 향하고 있다면 화면 오른쪽은 대체로 로봇의 오른쪽과 비슷하다. 하지만 카메라가 비스듬히 장착되어 있거나, 로봇팔 끝에 달려 있거나, 회전하는 짐벌에 붙어 있다면 이야기가 달라진다. 화면 오른쪽이 로봇의 오른쪽이 아닐 수도 있다. 심지어 지도 기준으로는 장애물이 로봇의 진행 방향 왼쪽에 있을 수도 있다.

또 다른 예를 들어 보자. 자율주행차의 내비게이션은 지도 기준으로 목표 지점이 북쪽에 있다고 말할 수 있다. 하지만 자동차가 현재 남쪽을 보고 있다면, 북쪽은 자동차 기준으로 뒤쪽이다. 이때 '북쪽으로 가라'를 자동차 바퀴에 그대로 전달할 수는 없다. 자동차는 먼저 자신의 방향을 알고, 조향을 통해 차체를 돌린 뒤, 앞으로 움직여야 한다.

좌표계 변환은 바로 이런 혼란을 막는다. 좌표계를 명확히 하면 '오른쪽', '앞', '위', '가까움', '목표 방향' 같은 말이 모호하지 않게 된다. 로봇은 감각기관이 본 값을 자기 몸의 언어로 바꾸고, 다시 세계의 언어로 바꾸며 행동한다.

로봇팔에서 좌표계는 손끝의 정확도를 결정한다

로봇팔은 좌표계의 중요성을 가장 잘 보여 주는 예다. 로봇팔에는 여러 개의 관절과 링크가 있다. 링크는 관절과 관절을 잇는 막대나 팔 부분을 뜻한다. 각 관절이 조금씩 회전하면 팔 끝의 위치와 방향이 크게 바뀐다.

로봇팔에는 보통 여러 좌표계가 함께 존재한다. 바닥에 고정된 베이스 좌표계, 각 관절에 붙은 좌표계, 팔 끝의 엔드 이펙터 좌표계, 카메라 좌표계, 물체 좌표계가 있다. 엔드 이펙터는 로봇팔 끝에 달린 도구를 말한다. 그리퍼, 흡착 패드, 용접기, 드라이버 같은 것이 모두 엔드 이펙터가 될 수 있다.

로봇팔이 컵을 집으려면 단순히 '컵이 보인다'로는 부족하다. 컵의 위치를 카메라 기준에서 알아내고, 그것을 로봇팔 베이스 기준으로 바꾸고, 다시 손끝이 접근해야 할 자세로 바꾸어야 한다. 컵의 손잡이를 잡아야 한다면 방향은 더 중요해진다. 손끝이 컵의 중심으로 가는 것만으로는 안 되고, 손가락이 손잡이 방향에 맞게 돌아가 있어야 한다.

좌표계가 조금만 틀어져도 결과는 크게 달라진다. 카메라가 실제보다 2센티미터 오른쪽에 달려 있다고 잘못 등록되어 있으면, 로봇팔은 컵 옆을 집으려 할 수 있다. 카메라의 기울기가 몇 도만 잘못되어도, 가까운 곳에서는 작은 오차였던 것이 먼 곳에서는 큰 오차가 된다. 그래서 산업용 로봇에서는 좌표계를 맞추는 보정 작업이 매우 중요하다.

사람은 컵을 집다가 조금 빗나가면 손가락 감각으로 바로 고친다. 로봇도 힘 센서나 비전 피드백으로 보정할 수 있지만, 시작점이 정확할수록 행동은 훨씬 안정적이다. 로봇팔에게 좌표계는 손눈맞춤의 기초다.

자율주행차와 드론은 움직이는 좌표계 위에서 산다

자율주행차는 도로 위에서 끊임없이 좌표계를 오간다. 카메라는 차선과 신호등을 이미지 좌표계에서 찾고, LiDAR는 주변 물체의 거리를 LiDAR 기준으로 측정한다. GPS나 지도는 차량의 위치를 지구나 도로 지도 기준으로 알려 준다. 차량 제어기는 이 모든 정보를 차체 기준으로 바꾸어 조향, 가속, 감속을 결정한다.

차 앞 20미터에 보행자가 있다는 정보는 차량 기준으로 중요하다. 하지만 그 보행자가 횡단보도 위에 있는지, 차선 안에 들어올 가능성이 있는지 판단하려면 지도와 도로 기준도 필요하다. 앞차와의 거리는 차량 좌표계에서 바로 쓸 수 있지만, 목적지까지의 경로는 지도 좌표계에서 계산하는 것이 자연스럽다.

드론은 더 복잡하다. 드론은 앞뒤, 좌우뿐 아니라 위아래로도 움직이고, 몸체가 기울어지기도 한다. 드론이 앞으로 가려면 실제로는 몸을 살짝 앞으로 기울여야 한다. 이때 드론 몸체 기준의 앞 방향과 지구 기준의 수평 방향이 달라진다. 카메라가 아래를 보고 있다면 카메라 좌표계는 또 별도로 존재한다.

로봇마다 좌표계가 중요한 방식은 조금씩 다르지만, 공통점은 분명하다.

  • 로봇팔은 손끝 좌표계와 물체 좌표계를 맞춰야 정확히 잡을 수 있다.

  • 자율주행차는 센서 좌표계, 차량 좌표계, 지도 좌표계를 연결해야 안전하게 달릴 수 있다.

  • 드론은 몸체 좌표계와 지구 기준 좌표계를 구분해야 안정적으로 날 수 있다.

  • 모바일 매니퓰레이터는 이동 로봇의 위치와 로봇팔의 자세를 함께 계산해야 물체에 접근할 수 있다.

이처럼 좌표계는 특정 분야의 작은 기술이 아니라, 로봇이 세상과 자기 몸을 연결하는 공통 언어다.

좌표계가 틀리면 로봇은 엉뚱한 곳으로 간다

좌표계 오류는 겉으로 보기에는 로봇이 '멍청한 행동'을 하는 것처럼 보인다. 하지만 실제 원인은 지능이 부족해서가 아니라 기준이 어긋난 경우가 많다.

로봇 청소기가 벽을 피하려고 했는데 오히려 벽 쪽으로 다가간다면, 장애물 방향을 해석하는 좌표계가 반대로 설정되었을 수 있다. 로봇팔이 물체를 잡으려다 매번 몇 센티미터 옆을 집는다면, 카메라와 로봇팔 사이의 위치 관계가 잘못 입력되었을 수 있다. 드론이 수평을 유지하지 못하고 한쪽으로 흐른다면, IMU의 축 방향이나 장착 각도가 실제와 다를 수 있다.

좌표계 문제에서 자주 나타나는 실수는 다음과 같다.

  • 왼쪽과 오른쪽 축을 반대로 설정한다.

  • 센서가 장착된 위치를 로봇 중심과 같다고 가정한다.

  • 도와 라디안처럼 회전 단위를 혼동한다.

  • 지도 기준 명령을 로봇 몸체 기준 명령처럼 사용한다.

  • 카메라 화면의 방향을 실제 공간의 방향과 그대로 같다고 생각한다.

이런 실수는 초보자에게만 생기는 것이 아니다. 복잡한 로봇 시스템에서는 숙련된 개발자도 좌표계를 잘못 연결해 긴 시간을 디버깅하곤 한다. 로봇이 예상과 다르게 움직이면 먼저 물어야 한다. '이 숫자는 누구 기준인가?' '이 방향은 어떤 좌표계의 방향인가?' '센서와 로봇 몸체 사이의 관계를 제대로 알고 있는가?'

이 질문만 습관이 되어도 로봇을 이해하는 눈이 크게 달라진다.

좌표계는 여러 장의 투명한 지도를 겹치는 일이다

좌표계를 머릿속에 그릴 때는 여러 장의 투명한 지도를 떠올리면 좋다. 하나는 방에 붙어 있는 지도다. 이것이 월드 좌표계다. 또 하나는 로봇 몸에 붙어 있는 작은 지도다. 로봇이 움직이면 이 지도도 따라 움직인다. 또 하나는 카메라 렌즈에 붙어 있는 지도다. 카메라가 보는 방향에 맞춰 돌아가 있다.

로봇은 이 투명한 지도들을 겹쳐 보며 판단한다. 카메라 지도에서 발견한 물체를 로봇 몸 지도에 옮기고, 다시 방 지도에 옮긴다. 방 지도에서 정한 목표를 로봇 몸 지도에 옮기고, 바퀴가 움직일 방향으로 바꾼다. 로봇팔 끝의 작은 지도를 물체의 지도와 맞추어 잡을 자세를 만든다.

좌표계가 많은 이유는 로봇이 복잡해서가 아니다. 오히려 복잡한 세계를 다루기 쉽게 나누기 위해서다. 지도 기준으로 생각해야 쉬운 일이 있고, 로봇 몸 기준으로 생각해야 쉬운 일이 있으며, 센서 기준으로 생각해야 쉬운 일이 있다. 좋은 로봇 시스템은 이 기준들을 명확히 구분하고, 필요할 때 정확히 변환한다.

로봇의 공간 감각은 좌표계에서 시작된다

이번 장의 핵심은 간단하다. 로봇에게 위치는 공간상의 점이고, 자세는 그 점에서 어느 방향을 향하는지까지 포함한 상태다. 좌표계는 이 위치와 자세를 표현하기 위해 정한 기준이다. 월드 좌표계는 세상에 고정된 지도이고, 로봇 좌표계는 로봇 몸에 붙어 함께 움직이는 기준이며, 카메라 좌표계와 센서 좌표계는 감각기관이 세상을 바라보는 자기만의 기준이다.

로봇은 센서로 숫자를 얻는 것에서 멈추지 않는다. 그 숫자가 어떤 좌표계의 숫자인지 알아야 하고, 행동에 필요한 좌표계로 바꾸어야 한다. 카메라가 본 컵의 위치는 로봇팔이 잡을 수 있는 손끝 자세로 변환되어야 한다. LiDAR가 본 장애물은 지도 위의 위험 구역으로 표시되어야 한다. GPS가 알려 준 목적지는 차량이 조향할 수 있는 방향과 속도로 바뀌어야 한다.

결국 좌표계는 로봇이 공간을 이해하는 문법이다. 문법을 모르면 단어를 많이 알아도 문장을 만들 수 없듯, 좌표계를 모르면 센서 값과 제어 명령을 제대로 연결할 수 없다. 다음에 로봇이 '물체가 앞에 있다'고 말할 때는 한 번 더 물어보자. 누구의 앞인가? 카메라의 앞인가, 로봇의 앞인가, 지도의 어느 방향인가?

이 질문에서 로봇공학의 진짜 공간 감각이 시작된다.

책 목록

처음 만나는 로봇공학: 로봇은 어떻게 보고, 생각하고, 움직이는가

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기