가상 로봇에 눈과 균형 감각 달기 — 라이다·IMU를 붙이고 제대로 붙었는지 확인하기
가상 세계에 세운 교육용 AMR로봇암에 라이다와 IMU를 달았습니다. 사방에 벽을 세워 라이다 점이 벽에 붙는지로 확인했고, 스캔 방향을 반대로 읽으면 42.8%만 맞는다는 것을 알았습니다. IMU는 만드는 순서 하나로 값이 0에 머물렀습니다. 실제 사양을 구하지 못한 라이다를 어떻게 다뤘는지도 적었습니다.

센서를 단 것과 센서가 맞게 붙은 것은 다른 일이었습니다. 가상 로봇 사방에 벽을 세우고 라이다 점이 벽에 붙는지 보았더니, 스캔 방향을 한쪽으로 읽으면 점의 99.9%가 벽에 붙었고 반대로 읽으면 42.8%만 붙었습니다. IMU는 만드는 순서를 바꾸자 값이 0에서 벗어났습니다.
연재 1편 「로봇이 하늘로 날아간 날」에서 교육용 AMR로봇암을 NVIDIA Isaac Sim 가상 세계에 세웠습니다. 이번 편은 그 로봇에 라이다(주변 거리를 재는 센서)와 IMU(기울기·회전·가속을 재는 관성 측정 장치)를 달고, 제대로 붙었는지 확인한 과정입니다. 이 단계에서는 로봇을 움직이지 않고 세워 둔 상태에서만 확인했습니다.
라이다와 IMU는 왜 필요한가요?
라이다는 로봇의 눈 역할을 합니다. 레이저를 한 바퀴 돌려 쏘고, 돌아오는 시간으로 방향마다 거리를 잽니다. 장애물을 피하거나 지도를 만들 때 씁니다.
IMU는 로봇의 균형 감각입니다. 로봇이 얼마나 기울었는지, 얼마나 빨리 도는지, 어느 쪽으로 힘을 받는지를 잽니다.
가상 로봇으로 강화학습을 하려면, 가상 로봇도 실물과 같은 자리에서 같은 방식으로 세상을 봐야 합니다. 센서가 엉뚱한 곳에 붙어 있거나 값을 거꾸로 읽으면, 가상에서 배운 것이 실물에서 통하지 않습니다.
어떤 라이다를 달았나요?
센서는 로봇 설계도 파일에 적힌 장착 위치와 방향을 그대로 읽어 붙였습니다. 라이다는 차체 위에 뒤쪽을 향하도록 180° 돌아간 채로 달려 있었습니다.
문제는 라이다의 실제 사양이었습니다. 로봇에 달린 라이다의 모델명은 확인했지만, 측정 거리·회전 주기·한 바퀴에 쏘는 점의 수가 적힌 사양서는 웹에서도, 실물 라벨에서도 찾지 못했습니다. 라벨에는 일련번호만 있었습니다.
그래서 비슷한 방식의 2D 회전형 라이다 제품의 공개 사양을 대역으로 썼습니다.
| 항목 | 가상 라이다에 쓴 값 | 성격 |
|---|---|---|
| 회전 주기 | 초당 10바퀴 | 대역 값 — 실제 로봇 라이다의 사양이 아닙니다 |
| 측정 거리 | 0.05~30m | 대역 값 |
| 한 바퀴의 빔 수 | 3200개 | 대역 값 |
이 값들은 실제 로봇 라이다의 사양이 아닙니다. 사양서를 구하면 바꿀 값이라는 것을 기록에 함께 적어 두었습니다.
라이다가 제대로 붙었는지 어떻게 확인했나요?
정답을 아는 세계를 만들고, 그 안에서 재 봤습니다. 가상 로봇 둘레에 벽 4면을 세웠습니다.
| 벽 | 로봇으로부터 거리 |
|---|---|
| 앞 | 0.95m |
| 뒤 | 1.95m |
| 왼쪽 | 1.45m |
| 오른쪽 | 0.65m |
벽의 위치를 미리 알고 있으니, 라이다가 맞게 붙었다면 찍힌 점들이 벽 면 위에 놓여야 합니다.
결과는 이렇습니다.
- 한 바퀴 3200개 빔 가운데 벽에 닿아 값이 돌아온 빔은 2221개였습니다. 나머지 979개는 벽이 닿지 않는 방향이라 값이 없었습니다.
- 값이 돌아온 2221개 가운데 2219개(99.9%)가 벽 면에서 ±3cm 안에 찍혔습니다.
- 가장 가깝게 잰 거리는 0.642m로, 가장 가까운 오른쪽 벽(0.65m)과 맞았습니다.
이 99.9%는 "위치를 아는 벽 4면에서 가상 라이다의 점이 제자리에 찍혔다"는 뜻입니다. 실물 라이다가 그만큼 정확하다는 뜻은 아닙니다.
스캔 방향 하나로 99.9%와 42.8%가 갈린 까닭은?
라이다가 보내 주는 값은 "몇 번째 빔이 몇 m"라는 목록입니다. 몇 번째 빔이 어느 방향인지는 목록을 어느 쪽으로 돌며 읽느냐에 달려 있습니다.
| 목록을 읽은 방향 | 벽 면 ±3cm 안에 찍힌 점 |
|---|---|
| 반시계 방향 | 99.9% |
| 시계 방향 | 42.8% |

같은 데이터를 방향만 바꿔 읽었을 뿐인데 결과가 크게 갈렸습니다. 벽 시험이 없었다면 거꾸로 읽은 채로 다음 단계에 넘어갈 수도 있었습니다. 로봇이 왼쪽 장애물을 오른쪽에 있다고 믿는 상태로 학습했을 것입니다.
라이다를 붙이며 또 무엇을 고쳤나요?
1편에서 로봇이 튕겨 나가지 않게 하려고 고정된 작은 부품을 바로 위 부품에 합치는 설정을 켰습니다. 그런데 이 설정 뒤에 라이다의 기준 위치가 로봇 몸체 밖으로 빠져 버렸습니다. 기준 위치가 몸체를 따라 움직이지 않으면, 로봇이 움직일 때 라이다는 제자리에 남습니다.
그래서 라이다를 설계도의 기준 위치에 기대지 않고 차체 아래에 직접 만들어 붙이는 방식으로 우회했습니다. 장착 위치와 방향 값은 설계도에서 읽은 값을 그대로 썼습니다.
IMU는 왜 값이 0에 머물렀나요?
IMU를 붙이고 값을 읽었더니 0만 나왔습니다. 원인은 만드는 순서였습니다.
- IMU를 물리 계산을 시작한 뒤에 만들면 값이 0에 머물렀습니다.
- 물리 계산을 시작하기 전에 만들자 값이 나왔습니다.
라이다는 달랐습니다. 라이다는 물리 계산을 시작한 뒤에 만들어도 동작했습니다. 같은 가상 세계 안에서도 센서마다 만드는 순서 규칙이 달랐습니다.
IMU 값이 맞는지는 어떻게 알았나요?
로봇이 가만히 서 있을 때 IMU가 재야 할 값은 미리 알 수 있습니다. 위아래 방향으로는 중력만큼의 가속도, 회전은 거의 0, 자세는 설계도의 장착 방향 그대로여야 합니다.
세워 둔 채 240번의 계산 단계를 지난 뒤 읽은 값입니다.
| 항목 | 읽은 값 | 맞는지 |
|---|---|---|
| 선가속도(x, y, z) | 0.114, −0.009, 9.810 m/s² | 위아래 축이 중력(9.81)과 같음 |
| 각속도(x, y, z) | −0.0016, 0.0038, 0.0046 rad/s | 거의 0 — 가만히 있음 |
| 자세 | 약 90° 돌아간 값 | 설계도의 IMU 장착 회전(90°)과 같음 |
세 가지 모두 "가만히 서 있는 로봇"과 맞았습니다.
실물 로봇의 라이다는 어땠나요?
이번 편은 가상 로봇 이야기지만, 실물 라이다에서 겪은 일도 함께 적습니다.
- 실물 로봇을 켠 직후에는 라이다 거리값이 비어 나왔습니다(값이 0이거나 숫자가 아님).
- 로봇을 한동안 켜 둔 뒤에는 정상 거리값이 나왔고, 그 상태로 지도 만들기와 장애물 피하기가 동작했습니다.
- 몇 분을 기다려야 하는지, 왜 그런지, 매번 그런지는 아직 확정하지 못했습니다. 켜고 충분히 기다린 뒤 시작하면 정상 값이 나왔습니다.
켠 직후 값을 기록하려던 시험 한 번은 결과가 모두 무효가 됐습니다. 원인은 로봇이나 라이다가 아니라 시험 프로그램을 실행한 방식(로봇이 요구하는 실행 환경과 달랐음)이었습니다. 안 되는 이유가 로봇에 있지 않을 수도 있다는 것을 다시 배웠습니다.
이 과정에서 배운 것
- 정답을 아는 세계에서 먼저 잽니다. 위치를 아는 벽 4면이 있었기에 센서가 맞게 붙었는지 숫자로 판단할 수 있었습니다.
- 읽는 방향 하나가 결과를 뒤집습니다. 같은 데이터도 반시계로 읽으면 99.9%, 시계로 읽으면 42.8%였습니다.
- 만드는 순서가 값을 바꿉니다. IMU는 물리 계산 시작 전에 만들어야 했습니다.
- 사양서가 없으면 대역을 쓰되, 대역이라고 적어 둡니다. 나중에 바꿔야 할 값을 잊지 않기 위해서입니다.
자주 묻는 질문
가상 라이다의 99.9%는 실물 라이다가 정확하다는 뜻인가요?
아닙니다. 위치를 미리 아는 벽 4면을 세운 가상 세계에서, 가상 라이다의 점이 벽 면 ±3cm 안에 찍힌 비율입니다. 가상 라이다가 로봇에 맞게 붙었는지를 확인한 숫자이고, 실물 라이다의 정확도와는 다릅니다.
가상 라이다의 측정 거리와 회전 주기는 실제 로봇과 같나요?
확인하지 못했습니다. 로봇에 달린 라이다의 사양서를 구하지 못해, 비슷한 방식의 2D 라이다 제품의 공개 사양을 대역으로 썼습니다. 사양을 확인하면 바꿀 값입니다.
가상 IMU 값이 0만 나온다면 무엇부터 보면 되나요?
저희의 경우는 IMU를 만든 순서가 원인이었습니다. 물리 계산을 시작한 뒤에 만들면 0에 머물렀고, 시작 전에 만들자 값이 나왔습니다(Isaac Sim 5.1.0에서 확인). 다른 버전에서도 같은지는 확인하지 않았습니다.
이 센서를 단 가상 로봇으로 바로 주행할 수 있나요?
이 글에서는 세워 둔 상태에서만 확인했습니다. 움직이는 동안의 센서 값, 센서 잡음, 로봇 프로그램과의 연결은 이 단계에서 시험하지 않았습니다.
이런 과정을 수업에서 다룰 수 있나요?
수업에서 다루는 범위와 방법은 교육 상담에서 안내합니다.
이 글의 값은 Isaac Sim 5.1.0에서 로봇을 세워 둔 상태로 확인한 것입니다. 가상 라이다에는 실물 사양 대신 비슷한 방식 제품의 공개 사양을 썼고, 움직이는 동안의 센서 값과 잡음은 다루지 않습니다. 가상 로봇은 바퀴를 굴리지 않고 차체에 속도를 직접 주는 방식이라 메카넘 바퀴의 옆 미끄러짐은 재현되지 않습니다(1편 참고).
다음 단계
다음 편에서는 이 센서를 단 가상 로봇이 연습할 연습장을 만듭니다. 장애물을 어떻게 놓고, 라이다 값을 학습에 어떻게 넘길지 설계한 과정을 적습니다. 수업에서 다루는 방법은 교육 상담에서 안내합니다.
사용한 버전: Isaac Sim 5.1.0
출처: 저희가 직접 진행한 교육용 AMR로봇암 센서 부착 실습(2026-09-21)과 실물 라이다 점검(2026-08-22·24, 2026-09-22). 가상 라이다의 측정 거리·회전 주기·빔 수는 실제 로봇 라이다의 사양이 아니라 비슷한 방식 제품의 공개 사양을 대역으로 쓴 값입니다.
이 글과 그림의 저작권은 SV로보틱스에 있습니다. 원문 링크를 밝힌 인용은 환영하며, 전문 복제·재배포와 교육 자료로의 전재는 허락이 필요합니다.