전동휠체어 자동 주차 시스템
휠체어가 스스로 트렁크까지 가는 자동 주차 시스템
Impact
- 카메라를 옮긴 재설계먼 구간이 안 찍혀 전면 개편차량 어라운드뷰 → 휠체어 탑재
- 직접 구성한 데이터실차 121장, 목업 60장 라벨링차량 부위 6종을 따로 탐지
- IMU로 회전 보정캐스터 틀어짐을 읽을 센서 없음회전속도를 맞춰 진동 제거
- 하드웨어 최적화디코딩이 코어 하나를 91% 점유갱신 주기 분리로 4 → 15 FPS 향상
Background
전동휠체어 사용자는 차에 탄 뒤, 밖에 남은 휠체어를 스스로 실을 수 없습니다.
그래서 차를 탈 때마다 다른 사람의 도움이 필요합니다.
기아 레이를 기준으로, 휠체어가 스스로 트렁크까지 가서 주차하고 다시 나오는 시스템을 만들고 있습니다.
3인 팀에서 위치추정과 인식, 통합을 맡았습니다.
Architecture
Contributions
V1: 차량 카메라로 위치 추정
차량에 장착되어 있는 어라운드뷰 카메라로 휠체어의 ArUco 마커를 보고 위치를 추정합니다.
- 어안 왜곡을 편 뒤 SolvePnP로 마커까지의 위치와 회전을 구함
- 오차가 거리와 각도에 따라 일정한 방향으로 치우쳐, 그 편향을 학습으로 상쇄하는 보정층을 설계
- 칼만 필터로 시계열을 안정화
V2: 휠체어 카메라로 위치 추정
휠체어에 실은 카메라로 차량의 특징을 봅니다.
공개 데이터셋이 실차에서 통하지 않아 직접 촬영하고 라벨링해 학습시켰습니다.
- 번호판, 엠블럼, 손잡이, 주유구, 후미등, 사이드미러 부위 6종을 개별 탐지
- 번호판의 규격 크기를 기준으로 거리를 추정
- 목업 촬영분을 학습에 더한 뒤 검출이 6배 증가

두 가지 센서로 정렬
사이드미러로 시야를 맞춘 뒤, 초음파로 평행을 맞춥니다.
한 센서로 끝까지 가지 않고 구간마다 기준 센서를 바꿉니다.
- VISION: 사이드미러의 화면 위치와 크기를 목표 자세에 맞춤
- SONAR: 측면 초음파 앞뒤 거리 차이로 차량과 평행을 맞춤
- 두 국면 모두 여덟 프레임 연속 허용범위 안에 들어야 다음으로 넘어감
하드웨어 최적화
휠체어에 장착할 컴퓨터라는 제약에서 출발해 Jetson Nano 4GB에 얹었습니다.
4 FPS에 머물던 것을 지속 15 FPS, 프레임당 추론 42 ms로 끌어올렸습니다.
- 카메라를 30 fps로 받으면 디코딩 스레드가 코어 하나를 91% 점유해 추론이 쓸 CPU를 뺏음
- 카메라를 15 fps로 낮추고 화면 갱신을 10 Hz로 분리
- 모델 로드 중 프리징은 스왑 부족이 원인이라 스왑을 4 GB로 확장
Troubleshooting
먼 구간의 위치 오차가 줄지 않음
- 문제
- 보정을 더해도 먼 구간의 오차가 그대로
- 원인
- 거리가 멀어 그 구간이 아예 찍히지 않음. 파라미터로 풀 문제가 아니었음
- 해결
- 마커를 키울 수도, 보정으로 메울 수도 없음. 그 근거로, 카메라를 휠체어로 옮기자고 제안
- 결과
- V1에서 V2로 설계를 바꿈. 경로 생성은 그대로 쓸 수 있음. 팀원 작업은 영향 없음
직진 중 좌우로 진동
- 문제
- 직진 명령을 줘도 똑바로 못 감. 좌우로 흔들림
- 원인
- 앞바퀴가 캐스터라 이전 방향으로 틀어지는데, 이를 읽을 센서가 없음.
IMU 각도로 P제어를 하자 방위 오차는 1.2°인데 회전 속도가 −17.7°/s라 목표를 지나침 - 해결
- 각도로 목표 회전속도를 정함. 자이로가 그 속도를 맞추는 구조로 교체. 적분항이 캐스터의 틀어짐을 주행 중 학습
- 결과
- 목표 방향에 가까울수록 스스로 감속. 50° 벗어난 상태에서 약 7초에 복귀
