1. 프로젝트 개요

  • 기간: 2025.03 ~ 2025.06
  • 수업: 이동로봇 프로젝트
  • 목표:
    • Rover 하드웨어 직접 구성
    • GPS 기반 목적지 이동
    • IMU 기반 heading 제어
    • 2D LiDAR 기반 장애물 회피
    • 실외 환경에서 경유지 자율주행 구현

2. 시스템 구성

Hardware

  • Rover chassis
  • Pixhawk
  • GPS
  • 2D LiDAR
  • BLDC motor
  • PWM motor controller
  • 배터리
  • 노트북 / ROS 환경

Software

  • C++
  • ROS2
  • GPS, IMU
  • PID control
  • APF obstacle avoidance

3. 수행한 내용

  • Rover 하드웨어 구성
  • PWM 입력 기반 좌우 모터 제어 로직 구현
  • Differential wheel 기반 모터 속도 제어
  • Pixhawk, GPS, 2D LiDAR 연결 및 테스트
  • GPS/IMU 기반 heading + distance PID 제어 구현
  • 2D LiDAR 기반 APF 장애물 회피 구현
  • LiDAR 좌표계 불일치 문제 분석 및 수정
  • 실외 경유지 이동 테스트 및 자율주행 검증

4. 전체 주행 로직

  1. GPS로 현재 위치 수신
  2. 목표 waypoint와 현재 위치 사이의 거리/방향 계산
  3. IMU heading과 목표 heading의 차이 계산
  4. PID 제어로 회전 및 전진 속도 결정
  5. 2D LiDAR로 주변 장애물 감지
  6. APF로 goal attraction과 obstacle repulsion 계산
  7. 최종 이동 방향을 좌우 모터 PWM 명령으로 변환
  8. 목표 지점 도달 여부 판단
  9. 다음 waypoint로 이동

5. 핵심 구현 1 — PWM 모터 제어

  • Differential wheel 구조를 기준으로 좌우 모터를 독립 제어
  • 선속도와 각속도를 좌우 바퀴 속도로 변환
  • 최종 명령을 PWM 입력으로 변환하여 BLDC motor 제어
  • 좌우 모터 방향과 출력 차이를 테스트하며 보정

6. 핵심 구현 2 — PID Heading + Distance 제어

GPS testIMU sensor test

< PID controller >

heading controldistance control
  • GPS 기반으로 목표 지점까지의 거리와 방향 계산
  • IMU yaw 값을 이용해 현재 heading 추정
  • 목표 heading과 현재 heading의 차이를 heading error로 정의
  • heading error를 줄이도록 회전 명령 생성
  • 목표 지점에 가까워질수록 속도를 줄이도록 distance error 반영

7. 핵심 구현 3 — APF 장애물 회피

  • 목표 지점 방향은 attractive force로 계산
  • LiDAR로 감지한 장애물 방향은 repulsive force로 계산
  • 두 벡터를 합산하여 최종 이동 방향 결정
  • 장애물이 가까울수록 회피 영향이 커지도록 구성
  • GPS 기반 목표 이동과 LiDAR 기반 장애물 회피를 함께 수행

8. 핵심 문제 해결 — LiDAR 좌표계 불일치

문제 상황

  • 로봇이 회전할 때 장애물 방향을 잘못 인식
  • 실제 장애물 위치와 알고리즘 내부에서 계산한 장애물 방향이 불일치
  • APF 회피 방향이 반대로 적용되는 문제가 발생

원인

  • 2D LiDAR 좌표계와 로봇 기준 좌표계가 맞지 않았음
  • LiDAR scan angle을 그대로 사용하면서 로봇 전방 기준과 어긋남
  • 로봇이 회전할 때 장애물 방향 계산 오류가 커짐

해결

  • 주행 로그와 LiDAR scan 데이터를 비교
  • 로봇 기준 전방 방향과 LiDAR angle 기준을 재확인
  • 좌표계 변환식을 수정
  • 수정 후 장애물 방향 인식 및 APF 회피 정상 동작 확인

9. 실험 과정

  • GPS 신호 수신 테스트
  • PWM 입력에 따른 모터 동작 테스트
  • 직진/회전 제어 테스트
  • PID heading 제어 테스트
  • LiDAR 장애물 감지 테스트
  • APF 장애물 회피 테스트
  • 실외 경유지 이동 테스트
  • 최종 자율주행 시나리오 검증

여기에는 수업 때 만든 PPT 슬라이드를 그대로 넣으면 좋음.

추천 삽입 순서:

  1. Hardware 구성 슬라이드
  2. GPS/IMU 기반 PID 제어 슬라이드
  3. APF 장애물 회피 슬라이드
  4. 좌표계 문제 해결 슬라이드
  5. 최종 주행 결과 슬라이드

10. 최종 결과 영상

영상 링크

https://youtu.be/6N73Dq35JXo

11. 배운 점

  • GPS 기반 주행은 실내 로봇 주행보다 위치 오차와 노이즈 영향을 크게 받음
  • heading 제어에서는 IMU yaw 기준과 좌표계 정의가 매우 중요함
  • LiDAR 좌표계가 로봇 기준과 맞지 않으면 장애물 회피 알고리즘이 완전히 반대로 동작할 수 있음
  • APF는 구조가 단순하고 구현이 빠르지만, local minimum과 파라미터 민감도가 존재함
  • 실외 자율주행에서는 알고리즘뿐 아니라 센서 신호, 전원, 통신, 모터 출력까지 함께 검증해야 함