Advanced Mobility Global Contest 2026
콘테스트 프로젝트진행중

성게YAHO

A Omnidirectional Movement Robot with No Up or Down, Moving by 'Tumbling' Rather Than Wheels or Legs

Advanced Mobility Global Contest 2026
양
2026.10.01에 시작
0
좋아요
0
조회
0
댓글

주요 기능

넘어지며 나아가는 전방향 이동 [구현]
성갱이는 땅을 짚은 가시 3개 중 가려는 방향의 반대쪽 가시 1개를 뻗어 몸 전체를 넘기며 이동합니다. 위아래가 없는 정십이면체 구조라 어느 쪽으로 넘어져도 같은 조건으로 다음 이동을 이어갑니다.
전원이 꺼져도 버티는 가시 구동부 [구현]
12개 가시는 모두 같은 웜기어 모터와 3D 프린팅 랙앤피니언으로 직선 운동합니다. 웜기어는 바깥 힘으로 거꾸로 돌지 않아서 전원이 꺼져도 로봇 무게에 가시가 밀려 들어가지 않고, 가시 끝의 EVA 공이 착지 충격을 줄입니다.
20가지 자세 인식 [구현]
가속도 센서 값을 여러 번 평균해 중력 방향을 구하고, 성갱이가 설 수 있는 20가지 자세와 비교해 지금 땅을 짚고 있는 가시 3개를 찾아냅니다. 10회 시험에서 모두 맞혔고, 18° 기울어진 바닥까지 판별할 수 있습니다.
적외선 비콘 추적 [개발 중]
비콘은 940nm 적외선을 1750Hz로 깜빡이고, 성갱이 몸체의 수신기 12개가 이 주파수 성분만 골라내 햇빛이나 조명 같은 다른 빛과 구분합니다. 현재 자세에 맞는 MLP가 수신 신호를 보고 비콘 쪽으로 가려면 어느 가시를 뻗어야 할지 고릅니다. 자세별 교차검증 평균 정확도는 95.9%입니다.
스스로 멈출 줄 아는 가시 제어 [통합 중]
가시는 처음엔 빠르게 뻗다가 끝에 가까워지면 느려지고, 끝에 닿아 모터 전류가 오르면 이를 감지해 멈춥니다. 배터리 전압이 떨어져도 모터 속도와 멈춤 기준이 자동으로 보정되며, 넘어가지 못하면 그 가시를 기록해 두고 다른 가시를 시도합니다.
Advanced Mobility Global Contest 2026진행중
콘테스트 프로젝트 진행 상황

각 Quest를 단계적으로 완성하는 프로젝트입니다.

Quest 1
1 / 1 완료
✓
Quest 1: 2026.06.20~현재까지의 제작 과정
2026.06.20
완료

1차 6/20 ~ 7/5

회로 구조 구상, 개별 센서 테스트 시작 (온라인 협업)

2차 7/6 ~ 7/20

첫 대면 회의(7/6), 정십이면체 코어 선정, 전복 조건 계산 및 MuJoCo 검증

3차 7/21 ~ 7/31

랙앤피니언 구동 방식 선정, 모터·기어·재료 선정

4차 8/1 ~ 8/15

Inventor 상세 설계, CAD 기반 동역학 시뮬레이션, 이동·위치 추정 알고리즘 작성, 간이 비콘 제작, 자세 추정 코드 작성

5차 8/16 ~ 8/31

3D 프린팅·조립, 가시 구동 시험 및 랙 가이드 수정, 간이 센서·이동 코드 시연

6차 9/1 ~ 9/10

다리 모터 테스트, 전체 회로 완성

7차 9/11 ~ 9/30

반복 시험을 반영한 최종 설계 보완, 회로 디버깅·비정상 센서 교체, 가시 끼임 문제 해결

8차 10/1 ~ 현재

하드웨어 완성, 가시 끝 EVA 팁 교체, Ansys 구조해석, 코드 통합, MLP 데이터 수집·학습

최종 정리
최종 요약

  가시를 뻗기 전 → 가시를 뻗는 중 → 넘어간 뒤

ㅇ기술 스택

하드웨어

ESP32 · ESP32 mini · TB6612FNG · PCA9685 · INA219 · TCA9548A · MPU6050 · CD74HC4067 · MCP6002 · 포토트랜지스터 · 940nm IR LED · IRLZ44N · XL6009 · MP1584EN · AMS1117 · 3S LiPo · 웜기어 모터(WGM32-1260) · 랙앤피니언 · 부저

소프트웨어·알고리즘

C++ (Arduino IDE) · Python · MLP · 교차검증(CV) · IQ 복조(단일 주파수 DFT) · 코사인 유사도 자세 판정 · 전류 기반 스톨 감지 · Adafruit INA219 · Adafruit PWM Servo Driver · MPU6050(I2Cdev) 라이브러리

설계·해석

Autodesk Inventor · MuJoCo · MATLAB Simulink · Simscape Multibody · Ansys · draw.io

제작

3D 프린팅 (Flashforge Adventure 5M Pro · Creality Ender-3 V3 SE · Creality K2 Plus) · PLA · PETG · 시카고 스크류 · EVA 공 팁

ㅇ 개발 과정 및 기술적 노력

3-1. 기계: 넘어지는 조건의 수식 설계

넘어가는 원리

땅을 짚은 가시 3개 중 가려는 방향의 반대쪽 가시 1개를 뻗으면, 몸체가 나머지 두 가시를 잇는 선을 축으로 기웁니다. 무게중심이 이 축 바로 위를 넘는 순간 성갱이는 스스로 넘어갑니다. 따라서 "가시를 얼마나 뻗어야 무게중심이 축을 넘는가"가 몸통 크기와 가시 길이를 정하는 기준이 되었습니다.

<그림 2. 임계 자세와 이때 필요한 가시 길이 kL = φL>

변수 정의

<그림 3. 가시 한 개의 길이 변수 (위: 수축 상태, 아래: 최대 신장 상태)>

각 기호의 의미와 최종값

R: 중심에서 모터 케이스 바깥면(가시가 나오는 곳)까지 거리, 210mm

L′: 중심의 빈 공간 반지름 (12개 랙이 중심에서 부딪히지 않기 위한 여유), 20mm

La: 가시를 다 줄였을 때 모터 케이스 밖으로 나와 있는 길이, 50mm

Lb: R - L'

ε: 최대로 뻗었을 때도 피니언과 맞물려 남아 있어야 하는 랙 길이, 23mm

stroke: 가시 끝이 움직이는 최대 거리 (= R − L′ − ε), 167mm

부등식 세우기

몸통 질량이 중심에 모여 있고 천천히 기운다고 가정하면, 다음 순서로 조건을 구할 수 있습니다. 가시 길이를 L, 황금비를 φ(≈ 1.618)로 둡니다.

<그림 1. 3점 지지의 기하: (a) 위에서 본 지지 삼각형, (b) 옆에서 본 단면 (h = 0.795L, r = 0.304L)>

1.     3점 지지의 기하 (그림 1): 정십이면체의 인접한 가시 3개는 땅 위에 정삼각형을 이루고, 무게중심은 그 삼각형 중심 바로 위에 있습니다. 무게중심 높이는 h = 0.795L, 삼각형 중심에서 회전축까지 거리는 r = 0.304L입니다.

2.     넘어가는 순간의 각도: 무게중심이 회전축 바로 위에 오려면 몸체가 tan θc = r/h = 1/φ², 즉 θc = 20.9°만큼 기울어야 합니다.

3.     필요한 가시 길이: 이 각도까지 기울이려면 뻗은 가시의 길이가 원래 길이의 φ배(1.618L) 이상이어야 합니다.

1.618L ≤ Lb + La + L' + Lb - ε

4.     길이 변수로 정리: 가시 길이와 최대 신장 길이를 위 변수로 나타내 3번 조건에 대입하면 다음 부등식이 됩니다.

R ≥ 2.618L′ + 1.618La + 2.618ε

수치 대입과 여유

<그림 4. 부등식 수치 대입 결과: (a) R 기준 여유 16.53mm, (b) 신장 길이 기준 여유 6.3mm>

최종값을 대입하면 우변은 52.4 + 80.9 + 60.2 = 193.5mm입니다. R = 210mm이므로 부등식을 16.5mm의 여유를 두고 만족합니다. 이를 가시 길이로 바꾸면, 넘어가는 데 필요한 길이는 420.7mm이고 실제 최대 신장 길이는 427mm여서 6.3mm 여유가 있습니다.

각 수치를 정한 이유

네 변수는 서로 묶여 있어서 하나를 키우면 다른 변수가 쓸 수 있는 여유가 줄어듭니다. 특히 L′과 ε은 1mm 늘릴 때마다 필요한 R이 2.618mm씩 커집니다. 그래서 각 변수를 실제 부품이 요구하는 최소값에 맞추고, 남는 여유가 구름 마진이 되도록 정했습니다.

•      L′ = 20mm: Inventor에서 모든 부품을 넣고 간섭 검사를 해서, 12개 랙이 중심에서 부딪히지 않는 가장 작은 값으로 정했습니다. 5mm만 늘려도 여유가 16.5mm에서 3.4mm로 줄어듭니다.

•      La = 50mm: 가시를 다 줄였을 때 코어가 바닥에 먼저 닿지 않을 만큼 확보했습니다. 60mm로 늘리면 여유가 0.35mm로 사실상 사라지기 때문에 40mm에서 50mm로 늘리는 데 그쳤습니다.

•      ε = 23mm: 피니언과 랙이 겹치는 길이와 모터 케이스 두께를 반영해 20mm에서 23mm로 늘렸습니다.

•      R = 210mm: 배터리, 센서, 모터 드라이버, 배선을 담을 공간에 모터 케이스와 덮개 두께까지 반영해 처음 목표 200mm에서 210mm로 키웠습니다. 더 키우면 여유는 늘지만 로봇이 커지고 무거워져 가시를 미는 데 더 큰 힘이 듭니다.

부등식 검증 (MuJoCo)

<MuJoCo 시뮬레이션: k = 1.55(넘어가지 않음)와 k = 1.60(넘어감) 비교>

<신장비 k에 따른 몸통 이동 (전환점 k ≈ 1.598)>

부등식은 가시 질량과 마찰을 무시하고 세운 것입니다. 이 조건이 실제 물리에서도 성립하는지 확인하기 위해, 가시 질량과 마찰을 반영한 MuJoCo 시뮬레이션에서 땅을 짚은 가시 하나를 원래 길이의 k배까지 뻗어 보았습니다. k = 1.55에서는 몸통이 약 86mm 밀려 기울었다가 그대로 멈췄지만, k = 1.60에서는 몸통이 넘어가 약 171mm 이동했습니다.

k를 1.2부터 1.8까지 0.01 간격으로 바꿔 본 결과, 전복이 일어나기 시작하는 전환점은 k ≈ 1.598이었습니다. 이론값 φ = 1.618과 약 1.25% 차이로, 세운 부등식이 실제 물리 조건에서도 성립함을 확인했습니다. 또한 전환점을 넘기면 한 번 넘어갈 때의 이동 거리가 k와 거의 상관없이 약 170mm로 일정했습니다. 성갱이는 한 번 구를 때마다 거의 같은 거리만큼 나아간다는 뜻입니다.

다만 가시 길이 기준 여유가 16.53mm로 크지 않아서, 오르막처럼 더 많이 기울여야 하는 지형에서는 천천히 뻗는 것만으로 넘어가기 어렵습니다. 이 한계는 향후 계획에서 다룹니다.

3-2. 기계: 코어가 먼저 땅에 닿는 문제 (8월 상세 설계)

<코어 변경 전(왼쪽) / 변경 후(오른쪽)>

처음에는 계산한 반경 전체를 큰 정십이면체 코어 하나로 확보하려 했습니다. 그런데 CAD에서 넘어가는 자세를 확인해 보니, 가시를 다 줄였을 때 코어 모서리가 가시 끝보다 바깥으로 튀어나와 있었습니다. 이 상태로는 넘어가는 도중에 코어가 먼저 땅에 걸려 가시가 몸체를 밀어 넘기기 어렵습니다.

그래서 가시까지의 거리(R)는 그대로 두고 정십이면체 코어를 줄인 뒤, 각 면에서 실제로 구동부가 필요한 부분만 모터 케이스로 튀어나오게 바꿨습니다. 두 캡처 모두 바깥 치수(약 420mm)와 가시 노출 길이(50mm)는 같습니다. 전체 크기는 유지하면서, 땅에 부딪힐 수 있는 코어 모서리의 불필요한 부피만 없앤 것입니다.

3-3. 기계: 12개 면이 같은 모듈형 코어

<모듈형 코어 분해도>

<초기 프레임 시험 출력 (7/27)>

코어 안에는 모터, 랙, 배터리, 회로가 들어가서 고치거나 점검할 때마다 열 수 있어야 했습니다. 한 덩어리로 출력하거나 접착하면 일부만 고치고 싶어도 전체를 다시 만들어야 합니다. 그렇다고 플라스틱에 직접 나사를 내면 여러 번 조였다 풀 때 나사산이 닳습니다.

그래서 코어를 똑같은 정오각형 면 12개로 나눠 출력하고, 면과 면을 시카고 스크류와 볼트앤 너트를 사용해서 결합했습니다. 덮개는 M3 너트를 미리 심어 볼트로 여닫게 했고, 볼트 구멍은 서포트 없이 출력되는 물방울 모양으로 설계했습니다. 그 결과 12개 면이 30개 모서리에서 결합되는 모듈형 코어가 되었고, 한 면을 고칠 때는 그 면의 모서리 5개만 풀어 교체하면 됩니다. 모든 면이 같은 모양이라 출력할 부품도 한 종류뿐입니다.

3-4. 기계: CAD 모델로 움직임과 강도 검증

Inventor로 상세 설계한 모델이 실제 형상과 질량에서도 의도한 대로 넘어가고, 그때 걸리는 힘을 부품이 견디는지 확인했습니다.

동역학 시뮬레이션 (Simulink + Simscape Multibody)

실제 제작에 사용한 CAD 모델을 Simscape Multibody에 불러와, 로봇의 형상과 질량 분포를 반영한 동역학 모델을 만들었습니다. 각 가시의 직선 구동과 지면 접촉을 구현하고, 질량·무게중심·접촉 강성·감쇠계수를 설정해 실제 구동 조건과 비슷한 해석 환경을 구성했습니다.

시뮬레이션에서는 전복 과정에서 본체의 자세와 지면 접촉 상태가 어떻게 바뀌는지 확인했습니다. 또한 지지하는 가시가 바뀔 때 무게중심이 안정적으로 이동하며 다음 자세로 넘어가는지 분석했습니다. 이를 통해 설계 단계에서 구상한 전복 메커니즘이 실제 동역학 조건에서도 의도한 방식으로 일어나고, 전복을 반복하며 연속으로 이동하는 과정도 안정적으로 이루어짐을 검증했습니다.

<Simulink + Simscape Multibody 모델 구성>

하중 산출과 구조해석 (Ansys)

Simscape 시뮬레이션에서 가시 하나가 땅으로부터 받는 힘을 랙 기어 기준 방향으로 측정했습니다. 힘은 가시를 뻗어 몸을 밀어 올리기 시작한 직후(약 4초)에 가장 컸으며, 랙 길이 방향으로 64.6N, 옆 방향으로 44.2N과 14.4N이었습니다

<랙 길이 방향 접촉력 (최대 64.6N, 약 4초)>

<옆 방향 접촉력 (최대 44.2N, 약 4초)>

이 순간 랙은 대부분 랙 가이드 안에 있으므로, 가이드에 지지되는 부분을 고정하고 밖으로 나온 끝부분에 최대 하중을 걸어 Ansys로 정적 구조해석을 했습니다(재료: PLA). 최대 응력은 랙이 가이드를 빠져나오는 부분에서 23.15MPa, 최대 변형은 끝부분에서 약 1.17mm였습니다. PLA 강도(약 40MPa) 대비 안전계수는 약 1.73으로 구조에 문제가 없음을 확인했고, 실제로 제작한 랙도 시험 중 파손 없이 동작했습니다.

<Ansys 응력 분포 (최대 23.15MPa)>

<Ansys 변형량 (최대 약 1.17mm)>

이처럼 전복 조건 자체는 이론 계산과 MuJoCo로, 실제 형상에서의 움직임과 강도는 Simscape와 Ansys로 나누어 검증했습니다.

3-5. 기계: 랙 가이드 스토퍼 정리 (8월 말 조립·시험)

<가시 구동부 분해도>

처음에는 랙이 가이드에서 빠지지 않도록 위아래 방향과 앞뒤(이동) 방향 모두에 스토퍼를 달았습니다. 그런데 실제로 조립해 보니 피니언과 맞물린 기어 이 자체가 랙의 위아래 움직임을 잡아주고 있었습니다. 오히려 양쪽 스토퍼 때문에 완성된 랙을 가이드에 바로 넣을 수 없었고, 가이드를 억지로 벌려 끼우다 약한 부분이 부러지기도 했습니다.
그래서 위아래 스토퍼는 없애고, 기어 맞물림으로 막을 수 없는 이동 방향 스토퍼 하나만 남겼습니다. 이때 따로 만들던 랙 가이드와 모터 케이스도 하나로 합쳐 모터·피니언·랙의 위치가 더 안정적으로 유지되도록 했습니다.

3-6. 기계: 가시 끝 팁 교체 (10월)

<EVA 공 반단면(왼쪽) / 가시 끝에 부착한 모습(오른쪽)>

가시 끝에는 착지 충격을 줄이는 둥근 팁을 달았습니다. 처음 쓴 스티로폼은 변형이 심해서 지름 42mm의 EVA 골프공으로 바꿨습니다. 공을 반으로 잘라 한쪽에 랙 끝보다 조금 작은 직사각형 구멍을 뚫고, 다시 공 모양으로 붙인 뒤 랙 끝에 끼워 순간접착제로 고정했습니다.

둥근 팁은 평평한 바닥에 항상 공 중심 바로 아래에서 닿습니다. 따라서 전복 조건을 계산할 때 가시 끝은 랙 끝이 아니라 공 중심이 됩니다. 저희는 랙 끝이 공 중심보다 랙 높이만큼 더 깊이 들어가도록 구멍을 팠습니다. 이렇게 하면 공 중심이 랙 끝보다 몸통 쪽에 오기 때문에, 스트로크는 그대로이면서 계산상 가시 길이만 짧아져 전복 여유가 오히려 늘어납니다. 동시에 코어는 바닥에서 공 반지름(21mm)만큼 떠 있게 되어 땅에 걸릴 위험도 줄었습니다. 공을 단 뒤에도 전복 이동에 문제가 없음을 확인했습니다.

3-7. 회로: 하나의 MCU로 모터 12개를 움직이는 구조

<최종 회로 구조도>

성갱이는 좁은 정십이면체 안에 모터 12개, 전류 센서, 자세 센서, 적외선 수신기 12개를 넣고, 이를 ESP32 하나로 제어해야 했습니다. ESP32의 핀과 공간에 한계가 있어서, 부품 수와 배선을 줄이는 것이 회로 설계의 핵심이었습니다.

마주보는 모터는 한 드라이버로. 모터 드라이버(TB6612FNG) 하나는 모터 2개를 구동할 수 있습니다. 저희는 서로 마주보는 면의 모터 한 쌍을 같은 드라이버에 연결했습니다. 성갱이가 넘어갈 때 마주보는 두 가시가 동시에 움직일 일은 없기 때문에, 드라이버마다 전류 센서(INA219)도 하나만 두고 공유할 수 있습니다. 덕분에 처음 계획했던 전류 센서 12개를 6개로 줄였습니다.

신호선 42가닥을 I2C 2가닥으로. 모터 12개를 제어하려면 속도와 방향 신호, 드라이버 대기 신호까지 42가닥이 필요합니다. 이를 16채널 PWM 확장 모듈(PCA9685) 3개에 나눠 맡기고, ESP32와는 I2C 선 2가닥으로만 연결했습니다.

주소 충돌은 멀티플렉서로. 같은 전류 센서 6개는 기본 I2C 주소가 같습니다. 주소 설정 핀으로 구분할 수도 있지만, 저희는 연결을 더 안정적으로 하려고 I2C 멀티플렉서(TCA9548A)로 센서마다 통로를 분리했습니다. 멀티플렉서, PWM 모듈, 자세 센서(MPU6050)는 I2C 허브로 묶어 ESP32의 핀 2개에 연결됩니다.

적외선 수신기 12개를 아날로그 핀 1개로. 포토트랜지스터 12개의 신호는 아날로그 멀티플렉서(CD74HC4067)가 하나씩 골라 비반전 증폭기(이득 2.2)로 키운 뒤 ESP32의 아날로그 핀 하나로 읽습니다. 수신기 12개 전체에 ESP32 핀 5개(선택용 디지털 4개, 아날로그 1개)만 씁니다.

조립과 정비를 고려한 배치. 모든 모듈은 핀헤더가 코어 안쪽을 향하도록 면 반대편에 붙여 배선을 단순하게 했습니다. 6번 면의 모터 케이스에는 USB 포트를 빼두어, 코어를 열지 않고도 코드를 올릴 수 있습니다. 또한 갇힘처럼 로봇이 스스로 해결할 수 없는 상황을 알리기 위해 ESP32에 부저를 연결했습니다.

3-8. 회로: 전원 설계

전원 공급 구간과 부품 이름, 공급 대상

배터리, 3S LiPo 2200mAh, 전체

약 12V, 금속 단자대와 퓨즈 및 WAGO 커넥터로 분배, 모터 드라이버 6개

12V → 5V, MP1584EN 강압 컨버터, ESP32

5V → 3.3V, AMS1117 레귤레이터, 센서와 멀티플렉서 및 PWM 모듈

전류는 대기 때 약 100mA, 구를 때 평균 약 300mA, 최대 약 1.5A입니다. 한 번 충전으로 약 3시간 운용할 수 있을 것으로 추정합니다. 배터리 바로 뒤(470µF), 강압 컨버터 입력(100µF), 3.3V 라인(0.1µF와 100µF 병렬), 모터 단자(0.1µF)에 커패시터를 두어 전압 변동과 노이즈를 줄였습니다.

3-9. 회로: 문제를 겪으며 바꾼 것들

<부품 배치(8/19, 왼쪽) / 코어 내부 배선(오른쪽)>

① ESP32 소손 → 3.3V 전원 분리

처음에는 ESP32 보드에 내장된 레귤레이터로 센서와 모듈에 3.3V를 공급했습니다. 그런데 모듈이 늘면서 내장 레귤레이터가 감당할 수 있는 전류를 넘어 ESP32가 소손되었습니다. 이후 3.3V는 별도의 AMS1117 레귤레이터에서 공급하도록 분리했습니다. 강압 컨버터에서 바로 3.3V를 만들지 않고 5V를 거쳐 레귤레이터로 한 번 더 낮춘 것은, 센서와 증폭기에 더 깨끗한 전원을 주기 위해서입니다.

② 배터리 연결 순간 커패시터 파손 → 전해 커패시터 추가

배터리를 연결하는 순간, 배터리와 가장 가까운 모터 드라이버 모듈의 탄탈 커패시터가 터졌습니다. 배터리와 드라이버 사이 배선이 짧아 인덕턴스가 작다 보니, 연결 순간의 돌입 전류가 거의 제한되지 않고 커패시터로 몰렸기 때문입니다. 탄탈 커패시터는 이런 순간적인 큰 전류에 약합니다. 그래서 배터리와 가까운 드라이버 2개에 돌입 전류에 상대적으로 강한 100µF 전해 커패시터를 추가로 납땜해 충격을 먼저 받도록 했습니다.

③ 저가 커넥터의 숨은 단선 → 직접 압착

저가 커넥터 내부의 단선 때문에 전원이 불안정해지고 전압 스파이크가 생겨 부품이 고장 났습니다. 전원선을 모두 2.54mm 커넥터로 직접 압착해 다시 만들었고, 이후 배선 때문에 생긴 문제는 다시 일어나지 않았습니다.

3-10. 회로: 적외선 비콘

<적외선 비콘 회로 구조도>

비콘은 성갱이가 찾아갈 목표 지점에 놓는 적외선 송신기로, 2개를 제작했습니다. 5V 보조배터리 전원을 승압 컨버터(XL6009)로 12.8V까지 올리고, 940nm 적외선 LED 4개와 150Ω 저항을 직렬로 묶은 줄 9개를 병렬로 연결했습니다(LED 총 36개, 줄당 약 48mA). ESP32 mini가 MOSFET(IRLZ44N)을 1750Hz로 켜고 끄며 빛을 깜빡이게 만듭니다. IRLZ44N은 3.3V 신호로도 완전히 켜지는 로직 레벨 MOSFET이라 ESP32 핀으로 바로 구동할 수 있습니다. 일정한 주파수로 깜빡이는 빛은 성갱이 쪽에서 햇빛이나 조명과 구분하기 쉽고, 최대 약 5m 거리에서 신호를 인식합니다.

3-11. 제어: 비콘 신호만 골라내기 [구현]

적외선 수신기에는 비콘 빛뿐 아니라 햇빛, 형광등, 반사광이 함께 들어옵니다. 비콘은 1750Hz로 깜빡이므로, 수신 신호에서 1750Hz 성분의 세기만 계산하면 비콘 빛만 골라낼 수 있습니다. 저희는 이를 위해 단일 주파수 DFT(IQ 복조)를 사용했습니다. 수신 신호에 1750Hz의 사인파와 코사인파를 각각 곱해 더하면, 그 주파수 성분의 크기만 남고 다른 빛은 상쇄됩니다. 특히 신호를 1750Hz의 정확히 4배 속도로 측정하기 때문에 사인·코사인 값이 0, +1, −1뿐이어서, 곱셈 없이 더하기와 빼기만으로 계산할 수 있습니다. 또한 비콘을 끈 상태에서 수신기별 잡음 크기를 미리 측정해 빼고, 세 번 측정한 값의 중앙값을 사용해 측정값을 안정시켰습니다.

계산과 달랐던 점: 신호가 너무 세면 0으로 읽히는 문제

먼 거리에서도 신호를 잡으려고 증폭기 이득을 약 2배로 두었습니다. 그런데 비콘이 너무 가깝거나 수신기와 각도가 딱 맞으면, 또는 강한 백색광이 들어오면 증폭된 신호가 측정 범위 끝에 붙어 버렸습니다(포화). 포화된 신호는 깜빡임이 사라진 평평한 값이 되기 때문에, DFT 결과가 "신호 없음"과 똑같이 0으로 나왔습니다. 가장 가까운 수신기가 오히려 신호가 없다고 판단하는 셈입니다.

저희는 신호가 없는 경우와 포화된 경우를 구분하도록 바꿨습니다. 측정 중 원신호가 측정 범위의 끝(ADC 값 4000 이상)에 닿으면 그 수신기를 포화로 판정하고, 해당 값을 포화되지 않은 수신기 중 가장 큰 값의 1.5배로 바꿔 넣습니다. 포화된 수신기가 실제로는 비콘에 가장 가까운 수신기라는 점을 반영한 것입니다. 증폭기는 먼 거리 인식을 위해 그대로 두고, 가까운 거리의 왜곡은 소프트웨어로 보정했습니다.

3-12. 제어: 방향 계산에서 학습 기반 선택으로 [구현]

<바닥에 각도·거리별로 표시한 지점에 비콘을 옮겨 가며 수신 신호를 기록하는 모습>

처음 계획은 수신기 12개의 신호 세기를 벡터로 더해 비콘의 방향을 계산하는 것이었습니다. 그러나 실제 수신기는 대칭적으로 배치되어 있어도 성갱이의 모든 방향을 고르게 덮지 못했습니다. 또 수신기 정면에서 조금만 각도가 틀어져도 측정값이 크게 흔들렸습니다. 계산식만으로는 비콘의 방향을 정확히 구하기 어려웠습니다.

그래서 접근 방식을 바꿨습니다. 비콘의 정확한 위치를 계산하는 대신, 지금 땅을 짚은 가시 3개 중 어느 것을 뻗어야 비콘 쪽으로 넘어가는지를 고르는 분류 문제로 만들었습니다. 각 가시가 맡는 방향은 120°씩입니다. 20개 자세마다 따로 작은 신경망(MLP, 입력 9 – 은닉 8 – 출력 3)을 학습시켜, 현재 자세에 맞는 모델이 수신기 신호를 보고 뻗을 가시 하나를 고르게 했습니다. 수신기 12개 중 3개(ch3·ch7·ch11)는 고장이 나서, 현재는 나머지 9개 신호를 입력으로 씁니다.

•      데이터 수집: 각 가시가 맡는 120° 범위 안에서 15° 간격으로 7개 각도(이웃 가시와의 경계 방향은 제외)를 정하고, 거리를 바꿔 가며 비콘 위치별로 측정해 총 2,563개의 학습 샘플을 모았습니다.

•      과적합 방지: 자세당 데이터가 약 130개 규모이므로 L2 정규화와 early stopping을 적용했습니다. 학습 정확도와 교차검증 정확도의 차이는 평균 3.0%로 과적합이 크지 않았습니다.

로봇에서의 계산:학습은 PC(Python)에서 하고 가중치만 ESP32에 넣습니다. 모델 하나의 파라미터는 107개(428바이트)로, 20개 모델을 모두 넣어도 약 8.4KB에 불과해 ESP32에서 곱셈과 덧셈 몇 번으로 바로 계산할 수 있습니다. 학습한 20개 모델은 ESP32에 탑재되어, 자세가 정해지면 해당 자세의 모델이 세 가시를 뻗을 확률을 계산하고 높은 순서로 정렬합니다.

<자세별 교차검증 혼동 행렬과 입력 채널별 중요도>

20개 자세 각각에 대해 교차검증(CV)을

진행한 결과, 평균 정확도는 95.9%였습니다. 가장 낮은 자세(12번)도 89.0%였고, 20개 중 19개 자세에서 92% 이상을 기록했습니다. 전체 2,563개 샘플 중 잘못 고른 경우는 106건이었습니다. 고장 난 수신기 3개를 빼고 9개 신호만으로 얻은 결과입니다. 자세별 혼동 행렬을 보면 대부분의 예측이 정답(대각선)에 모여 있으며, 첫 번째 층의 가중치로 각 수신기 채널이 판단에 얼마나 쓰였는지도 확인했습니다.

3-13. 제어: 20가지 자세 판별 [구현]

성갱이가 가시 3개로 서 있을 때, 몸통에서 가장 아래에 있는 것은 정십이면체의 꼭짓점 하나입니다. 정십이면체의 꼭짓점은 20개이므로 성갱이가 설 수 있는 자세도 20가지입니다. 가속도 센서 값을 5번 읽어 평균한 뒤 크기를 1로 맞춰 중력 방향을 구하고, 미리 계산해 둔 20개 자세의 방향과 코사인 유사도로 비교해 가장 가까운 자세를 고릅니다. 자세가 정해지면 땅을 짚고 있는 가시 3개도 바로 알 수 있습니다.

성갱이는 넘어간 뒤 멈춘 상태에서 자세를 판정하므로, 자이로 없이 가속도(중력 방향)만으로 충분합니다. 가장 가까운 자세와의 코사인 유사도가 0.95보다 낮으면 "판정 불가"로 처리하고 다시 측정합니다. cos⁻¹(0.95) ≈ 18°이므로, 바닥이 약 18°까지 기울어져도 자세를 판별할 수 있습니다. 10회 시험에서 모두 정확히 판정했습니다.

3-14. 제어: 가시가 끝에서 끼는 문제 [구현]

모터 힘이 강해서, 가시가 끝까지 뻗거나 접힌 뒤에도 계속 밀면 기어가 꽉 물려 다시 움직이지 않는 문제가 있었습니다. 저희는 이를 별도 장치 없이 제어로 해결했습니다. 정해진 시간 동안 빠르게 움직인 뒤 느리게 전환해 끝에 부드럽게 닿게 했고, 이 방식으로 끼임이 해결되는 것을 확인했습니다. 이후 여기에 전류 감지와 전압 보정을 더해 신장·수축 루틴을 완성했습니다.

-신장

고속 구간: 약 2.6초 + 다리별 추가 시간, 듀티 약 93%, 스톨 기준 1000mA

저속 구간: 최대 약 5초까지, 듀티 약 46%, 스톨 기준 450mA

-수축

고속 구간: 약 1.7초 + 다리별 추가 시간, 듀티 약 93%, 스톨 기준 1000mA

저속 구간: 최대 약 6초까지, 듀티 약 39%, 스톨 기준 350mA

•  끝단 감지: 가시가 끝에 닿으면 모터가 멈추면서 전류가 오릅니다. 전류가 기준을 연속 3번 넘으면 끝에 닿은 것으로 보고 멈춥니다. 모터가 출발할 때 순간적으로 흐르는 큰 전류는 오판하지 않도록 처음 0.4초는 판정하지 않습니다.

•  다리별 보정: 12개 가시는 같은 부품으로 만들었지만 실제로는 기계적 차이가 있어, 가시마다 신장·수축의 고속 시간을 따로 늘려 주었습니다(대부분 0.1~0.6초, 가장 뻑뻑한 6번 가시는 0.5~1.3초). 또한 자세에 따라 힘이 더 필요한 가시는 듀티를 최대 1.1배까지 높이도록 자세별·가시별로 설정했습니다.

•  전압 보정: 배터리 전압은 쓰는 동안 계속 떨어집니다. 그래서 모터를 출발시키기 직전에 전압을 재고, 듀티와 스톨 기준을 자동으로 보정해 모터에 걸리는 실효 전압이 항상 비슷하게 유지되게 합니다.

3-15. 제어: 넘어가지 못했을 때의 대응 [구현]

<성갱이 자율 이동 실행 순서도>

자율 이동 알고리즘은 "자세 판정 → 뻗을 가시 선택 → 신장 → 결과 판정"을 반복하며, 결과가 예상과 다를 때를 나눠서 처리합니다.

•  넘어가지 못하고 기울어진 채 멈춤: 그 자세에서 실패한 가시를 기록하고, 가시를 접어 원래 자세로 돌아간 뒤 기록되지 않은 다른 가시를 시도합니다. 세 가시가 모두 실패하면 부저로 경고음을 내고 멈춥니다.

•  예상과 다른 자세로 넘어감: 가시를 접고 새 자세에서 다시 방향을 정합니다.

최종 결과

<성갱이 실물>

저희 성게YAHO팀은 위아래가 없는 정십이면체 몸통에 직선으로 뻗고 접히는 가시 12개를 단 전복 이동 로봇 성갱이를 완성했습니다. 성갱이는 가속도 센서로 20가지 자세를 판별해 땅을 짚은 가시를 찾고, 적외선 수신기로 받은 비콘 신호를 자세별 MLP에 넣어 다음에 뻗을 가시를 스스로 고릅니다. 고른 가시는 2단 속도 제어와 전류 기반 끝단 감지로 뻗고 접으며, 넘어가지 못하면 원래 자세로 돌아가 다른 가시를 시도합니다. 실내 대리석 바닥의 3m × 3m 공간에서 성갱이는 사람의 조작 없이 약 3분 만에 비콘까지 이동했습니다.

주요 성과

1. 전복 조건의 이론 설계와 단계별 검증: 무게중심이 회전축을 넘는 조건을 부등식으로 유도해 몸통과 가시 치수를 정했습니다. MuJoCo에서 이론값과 약 1.25% 차이로 전복을 확인했고, CAD 모델 기반 동역학 시뮬레이션과 구조해석으로 실제 형상의 연속 이동과 강도까지 검증했습니다.

2. 12면이 같은 모듈형 코어: 똑같은 정오각형 면 12개를 시카고 스크류로 결합해, 부품 한 종류만 출력하고 고장 난 면만 교체할 수 있습니다.

3. 부품 수를 절반으로 줄인 모터 회로: 마주보는 모터 한 쌍이 드라이버와 전류 센서를 공유하는 구조로, 모터 12개를 드라이버 6개·전류 센서 6개로 제어합니다.

4. 정확한 자세 판정: 가속도만으로 20가지 자세를 10회 시험 중 10회 모두 맞혔고, 18° 기울어진 바닥에서도 판별합니다.

5. 잡음 속 비콘 신호 분리와 방향 선택: 1750Hz IQ 복조와 포화 보정으로 다른 빛 속에서 비콘 신호만 골라내며, 최대 약 5m 거리에서 인식합니다. 이 신호를 학습한 자세별 MLP는 교차검증 평균 정확도 95.9%를 보였습니다.

6. 추가 부품 없이 해결한 가시 끼임: 가시가 끝에서 기어가 물려 멈추던 문제를 속도 전환 제어로 해결했습니다.

7. 비콘을 향한 자율 이동: 실내 대리석 바닥에서 전복 성공률 85%(20회 중 17회), 연속 약 10회 전복을 기록했고, 3m × 3m 공간에서 비콘까지 약 3분 만에 스스로 이동했습니다.

성능 검증

1회 전복 성공률: 20회 중 17회 (85%)

연속 전복 최대 횟수: 약 10회

비콘까지 자율 이동 시간: 약 3분 (3m × 3m 공간)

측정 조건: 실내 대리석 수평 바닥, 비콘을 보고 자율 이동 (경사 시험은 미실시)

기대 효과

성갱이의 이동 방식은 세 가지 특징을 가집니다. 어떤 자세로 놓여도 바로 움직일 수 있고, 땅을 끌지 않고 몇 개의 점으로만 짚으며, 라이다나 복잡한 관절 없이 모터와 기본 센서로 움직입니다. 이 특징은 기존 이동체가 들어가기 어렵거나 들어가서는 안 되는 곳에서 장점이 됩니다. 아래 시나리오는 성갱이의 이동 플랫폼에 기능을 더해 확장할 수 있는 활용처입니다.

1. 갯벌 생태·퇴적물 조사

바퀴는 뻘에 빠지고, 지나간 자리에 긴 자국을 남겨 서식지를 훼손합니다. 다리 로봇은 발이 빠지면 균형을 잃고, 드론은 위에서 촬영할 뿐 뻘에 직접 닿아 조사할 수 없습니다. 성갱이는 넓은 팁으로 땅을 짚어 덜 빠지고 점 자국만 남기도록 설계되었으며, 가시 자체를 채취·측정 도구로 쓸 수 있습니다.

썰물이 시작되면 여러 대의 성갱이가 지정 지점까지 굴러가 가시를 박아 퇴적물을 채취하고 수분·염분을 측정한 뒤, 밀물 전에 비콘을 따라 돌아옵니다. 매달 같은 지점을 반복 조사하면 갯벌의 변화를 데이터로 쌓을 수 있습니다.

추가할 기능: 중공 가시 흡입 채취, 가시 끝 수분·염분 센서, GPS 위치 기록, 소형 카메라, 방수·방청 처리, 모터 전류로 퇴적층 단단함 측정, 비콘 자동 복귀

2. 문화 유적지·보존 구역 조사

발굴 현장이나 보존 구역은 지면 자체가 보호 대상이라, 장비가 지나간 바퀴 자국이나 긁힌 흔적도 훼손으로 이어집니다. 성갱이는 땅을 끌지 않고 가시 끝의 부드러운 EVA 공으로 짚으며 넘어가기 때문에 지나간 자리에 남는 흔적을 줄일 수 있습니다. 몸집이 작아 사람이 들어가기 어려운 좁은 유구 안쪽까지 접근할 수 있습니다.

조사자는 성갱이를 구역 가장자리에서 출발시키고, 성갱이는 정해진 지점을 짚으며 이동해 표면을 촬영합니다. 같은 경로를 반복해 지나며 시간에 따른 유적의 변화를 기록할 수 있습니다.

추가할 기능: 소형 카메라, 이동 경로 기록, 모터 전류를 이용한 누르는 힘 제한, 무선 원격 조종

3. 원전·화학사고 / 붕괴 현장 거점 감시

바퀴 로봇은 잔해에 걸리거나 뒤집히면 멈추고, 다리 로봇은 비싸서 오염 구역에서 회수하지 못하면 손실이 큽니다. 드론은 무너진 건물 안쪽으로 들어가기 어렵고 오래 머물 수 없습니다. 성갱이는 위아래가 없어 어떤 자세로 떨어져도 바로 움직일 수 있는 구조이고, 단순한 부품으로 만들어져 회수하지 못해도 부담이 적습니다. 가시를 박아 고정하면 IMU로 잔해의 미세한 진동과 기울기 변화를 느낄 수 있어, 잔해에 붙은 지진계처럼 쓸 수 있습니다.

구조대가 건물 틈이나 오염 구역 입구에서 성갱이를 투입하면, 성갱이는 몇 번 굴러 안정적인 자리를 찾아 가시로 고정합니다. 그 자리에서 방사선·가스 농도나 잔해 진동을 계속 측정해 전송하고, 위험 기준을 넘으면 경보를 보냅니다.

추가할 기능: 방사선·유독 가스 센서, 마이크, 무선 중계 모듈, 저전력 대기 모드, 착지 자가 진단, 진입 경로 기록, 배터리 잔량 보고

4. 군집 정찰

군집 로봇은 한 대 한 대가 저렴하고 단순해야 여러 대를 쓸 수 있습니다. 성갱이는 라이다 없이 움직이고, 흩뿌려도 각자 바로 움직일 수 있어 한 대씩 세워 줄 필요가 없습니다. 몸체 곳곳의 적외선 수신기 12개는 다른 성갱이의 적외선 신호를 받아 서로의 방향을 찾는 데 그대로 쓸 수 있습니다.

넓은 지역에 성갱이 10여 대를 흩뿌리면, 각자 서로 신호를 주고받으며 구역을 나누고 간격을 유지하며 퍼져나갑니다. 먼 곳의 데이터는 가까운 성갱이를 거쳐 기지로 전달되고, 모든 기록을 합쳐 사람이 들어가기 전에 지역의 지형과 위험 지점을 파악합니다. 몇 대가 고장 나도 나머지가 임무를 이어갑니다.

추가할 기능: 로봇 간 무선 통신(ESP32 내장 ESP-NOW), 각 로봇의 적외선 LED, 데이터 중계, 지형 지도 작성, 소형 카메라

5. 달·행성 탐사

행성 표면의 흙은 곱고 푹신해 바퀴가 빠지기 쉽습니다. 실제로 화성 탐사 로버 스피릿은 2009년 무른 흙에 바퀴가 빠져 끝내 움직이지 못했습니다. 성갱이는 착륙선에서 떨어뜨려도 착지 자세를 맞출 장치 없이 바로 움직일 수 있습니다. 달은 중력이 지구의 약 1/6이라, 넘어가는 데 필요한 가시 길이는 같아도 몸을 밀어 올리는 데 드는 힘이 크게 줄어듭니다.

착륙선이 내린 뒤 성갱이 여러 대가 서로 다른 방향으로 굴러가며 일정 거리마다 지반 단단함을 측정하고 표면 흙을 채취합니다. 이 데이터로 착륙선 주변의 지반 지도를 만들어, 다음 착륙 지점이나 기지 건설 후보지를 고르는 데 활용합니다.

추가할 기능: 내열·내한 소재, 레골리스(미세 먼지) 밀봉, 태양전지와 절전 제어, 착륙선과의 무선 통신, 모터 전류로 지반 단단함 측정, 중공 가시 샘플 채취

 

 

향후 계획

결선 시연까지

• 비콘까지 이동 시간 단축과 전복 성공률 향상

• 경사면과 다른 바닥 재질에서의 성능 시험

• 코드 경량화와 이동 시작·종료 조건 확정

하드웨어 개선

• 수신기: 고장 난 수신기 3개를 교체하고 12개 채널로 다시 학습해 방향 선택 정확도 향상

• 회로: 좁은 코어 안의 배선이 랙에 걸릴 위험을 없애기 위해 면별 맞춤 PCB 제작

• 방수·방진: 면과 면 사이, 가시가 드나드는 구멍을 밀폐해 물·모래·먼지 유입 차단

• 경량화와 보강: 구조해석에서 랙 기어 뿌리 부분의 안전계수가 약 1.73으로 나타났습니다. 착지 충격 등 추가 하중에 대비해 이 부분을 보강하고, 강도가 남는 부분은 가볍게 다듬습니다.

• 오르막 대응: 현재는 넘어가는 데 남는 가시 길이 여유가 6.3mm로 작아 오르막에서 천천히 뻗는 것만으로는 넘어가기 어렵습니다. 출력과 속도가 큰 모터로 가시를 빠르게 뻗어, 기울어질 때의 회전 관성으로 넘어가는 방식을 연구합니다.

기능 확장

• 비콘을 따라 출발 지점으로 돌아오는 자동 복귀

• ESP32 Wi-Fi를 이용한 무선 원격 명령·모니터링

• 착지 후 가시를 하나씩 움직여 보는 자가 진단, 이동 경로 기록, 배터리 잔량 보고

• 경사면에서 의도치 않게 구르기 시작하면 뻗은 가시를 브레이크로 써서 멈추는 처리

최종 목표: 조난자 구호물품 전달

산처럼 바퀴 달린 장비나 사람이 가기 힘든 곳에 고립된 조난자에게 성갱이가 직접 굴러가 구호물품을 전달하는 것이 성게YAHO팀의 최종 목표입니다. 모터 케이스 안의 빈 공간에 문을 달아 구호물품을 싣고, 외벽 LED로 위치를 알리며, GPS로 조난자 위치를 구조대에 전송하는 기능을 더할 계획입니다.

팀원별 역할

[회로설계팀]

-양명현(팀장)

프로젝트 총괄·일정 조율, 전체 회로 구조 설계, 전원 분배·보호 회로 설계, 모터 구동 테스트

-유태경

전류 센서·I2C 멀티플렉서·자세 센서 회로 구성 및 디버깅, 팀별 기술 자료 종합 및 결선 보고서 작성

-정채원

적외선 수신부·비콘 회로 제작, 홍보 영상 제작

[알고리즘팀]

-강승준

자세 판정, 적외선 신호 처리(IQ 복조·포화 보정), MLP 데이터 수집·학습, 가시 신장·수축 제어 설계

[기계설계팀]

-이진섭

전복 조건 해석과 수치 설계, MuJoCo·Simscape 시뮬레이션 검증, 랙앤피니언 구동부 설계

-최종현

모듈형 코어·모터 케이스 상세 설계, Ansys 구조해석, 3D 프린팅 제작·조립, 가시 끝 팁 제작

프로젝트 소개

목표 및 제작 동기

This project originated from surveys of tidal flats and wetlands. Tidal flats are important spaces in marine ecosystems and blue carbon research, but people and conventional mobile platforms cannot easily access them due to mud that causes sinking and constantly changing terrain. We recognized the need for a mobile platform that does not stop even if stuck or overturned in such environments, and found the answer in the sea urchin shape, which rolls its entire body without distinction between top and bottom to move.

This approach also has advantages in areas where land protection is necessary. Wheels roll while in contact with the ground, leaving continuous wheel tracks, and in soft ground, slipping causes the surface to be gouged. In places where the ground itself is a protection target, such as archaeological excavation sites, conservation areas, or ecological protection zones, such traces become a burden. Our robot Seagarching does not drag or scrape the ground as it passes. Because it moves by stepping on the ground with only a few points at the tips of its spines and rolling over itself, it can minimize traces left behind, and soft EVA balls at the spine tips provide additional protection to the contact surface.

The goals for this phase are as follows.

1.     Design and fabrication of sea urchin-shaped platform capable of flipping motion: Design the body and spines that satisfy flipping conditions and implement actual fabrication. (Completed)

2.     Electrical system driving 12 spines with a single MCU: Stably supply power and signals to 12 motors and sensors within the narrow body. (Completed)

3.     Continuous flipping based on posture recognition: Determine new posture each time it flips and match the next spine to extend. (Posture determination implementation, continuous operation integration in progress)

4.     Autonomous movement toward infrared beacons: Select spines toward the beacon using an MLP trained on infrared signals and move autonomously. (Training and validation in progress)

프로젝트 컨셉

성갱이는 성게의 방사형 가시 구조에서 착안한 전복 기반 전방향 이동 로봇입니다. 바퀴형 로봇은 무른 지반에서 헛돌거나 빠질 수 있고, 다리형 로봇은 불규칙한 지형에서 지지와 균형 유지에 어려움을 겪을 수 있습니다. 특히 기존 로봇에서 전복은 이동을 중단시키는 요인이 됩니다. 성게YAHO팀은 "이동을 방해하는 전복을 오히려 이동 원리로 활용할 수 있다면 어떨까?"라는 질문에서 출발해, 몸체가 넘어가는 동작을 반복하는 이동 방식을 제안했습니다.

정십이면체 몸통의 12개 면에는 직선으로 신장·수축하는 가시가 배치되어 있습니다. 기본 자세에서는 가시 3개로 지면을 지지하고, 이동 방향의 반대쪽 가시 하나를 뻗어 몸체를 기울입니다. 나머지 두 가시의 접촉점을 잇는 선을 축으로 무게중심이 넘어가면 전복이 발생하고, 새로운 가시 조합이 몸체를 지지합니다. 이 과정을 반복함으로써 가시의 직선 운동만으로 몸 전체를 이동시킵니다.

전복을 연속적인 이동으로 이어주는 것은 몸체의 대칭 구조입니다. 각 면에 동일한 가시를 배치해, 전복 후 가시를 기본 길이로 정리하면 새로운 자세에서도 같은 지지·구동 조건이 형성됩니다. 따라서 몸체를 원래 자세로 되돌리지 않고도 다음 전복을 일으킬 수 있습니다. 일반적인 이동 로봇에서 주행을 방해하는 전복을, 성갱이는 이동 실패가 아닌 반복 가능한 이동 동작으로 활용합니다.

여기에 가속도 센서 기반의 지지 자세 인식과 적외선 비콘을 이용한 이동 방향 선택을 결합해, 목표 지점을 향한 자율 이동을 구현하고자 합니다. 성게YAHO팀은 이 플랫폼을 통해 전복 기반 이동의 가능성을 검증하고, 지형별 이동 안정성을 확보해 갯벌과 습지, 보존 구역 등 접근이 어렵거나 지면을 보호해야 하는 환경에서 활용할 수 있는 탐사 플랫폼으로 발전시키는 것을 목표로 합니다.

주요 기능
  • 넘어지며 나아가는 전방향 이동 [구현] — 성갱이는 땅을 짚은 가시 3개 중 가려는 방향의 반대쪽 가시 1개를 뻗어 몸 전체를 넘기며 이동합니다. 위아래가 없는 정십이면체 구조라 어느 쪽으로 넘어져도 같은 조건으로 다음 이동을 이어갑니다.
  • 전원이 꺼져도 버티는 가시 구동부 [구현] — 12개 가시는 모두 같은 웜기어 모터와 3D 프린팅 랙앤피니언으로 직선 운동합니다. 웜기어는 바깥 힘으로 거꾸로 돌지 않아서 전원이 꺼져도 로봇 무게에 가시가 밀려 들어가지 않고, 가시 끝의 EVA 공이 착지 충격을 줄입니다.
  • 20가지 자세 인식 [구현] — 가속도 센서 값을 여러 번 평균해 중력 방향을 구하고, 성갱이가 설 수 있는 20가지 자세와 비교해 지금 땅을 짚고 있는 가시 3개를 찾아냅니다. 10회 시험에서 모두 맞혔고, 18° 기울어진 바닥까지 판별할 수 있습니다.
  • 적외선 비콘 추적 [개발 중] — 비콘은 940nm 적외선을 1750Hz로 깜빡이고, 성갱이 몸체의 수신기 12개가 이 주파수 성분만 골라내 햇빛이나 조명 같은 다른 빛과 구분합니다. 현재 자세에 맞는 MLP가 수신 신호를 보고 비콘 쪽으로 가려면 어느 가시를 뻗어야 할지 고릅니다. 자세별 교차검증 평균 정확도는 95.9%입니다.
  • 스스로 멈출 줄 아는 가시 제어 [통합 중] — 가시는 처음엔 빠르게 뻗다가 끝에 가까워지면 느려지고, 끝에 닿아 모터 전류가 오르면 이를 감지해 멈춥니다. 배터리 전압이 떨어져도 모터 속도와 멈춤 기준이 자동으로 보정되며, 넘어가지 못하면 그 가시를 기록해 두고 다른 가시를 시도합니다.
댓글 0개

아직 댓글이 없습니다. 첫 댓글을 남겨보세요!