[논문 리뷰] 강화학습 기반예인선 제어방법에 의한선박 자율 접안

2025. 11. 21. 18:08·논문 리뷰

논문 요약: 강화학습 기반 예인선 제어방법에 의한 선박 자율 접안

본 글은 "강화학습 기반 예인선 제어방법에 의한 선박 자율 접안" (홍승조, 김진환 저자) 논문을 읽고 개인적으로 공부한 내용을 정리하였다.

1. 서론 (Introduction)

본 연구는 저속에서 기동성이 제한되는 대형 선박의 접안 작업을 지원하기 위해 예인선 자율 운항 기술을 제안한다.

  • 연구 배경: 기존의 예인선 접안 작업은 도선사와 예인선 운용 인력의 직관에 의존하는 수동적인 방식으로 이루어지며, 이는 많은 비용과 인력을 필요로 한다. 예인선의 자율 운항은 이러한 제한점을 보완할 수 있는 중요한 과제이다.
  • 기존 연구의 한계: 기존 연구들은 예인선의 힘을 단순히 선박에 부착된 추진기(Thruster) 형태로 모델링하여, 예인선이 선박 주변을 이동하며 밀거나 당기는 실제 운용 방식을 제대로 반영하지 못했다.
  • 본 연구의 제안: 실제 운용 방식을 고려하여 예인선의 위치 이동까지 포함한 선박 접안 문제를 강화학습(PPO 알고리즘)을 통해 해결하고자 한다.

2. 시스템 모델링 (System Modeling)

선박과 예인선의 동역학 및 상호작용을 하이브리드 시스템으로 정의하고, 항구 내에서 지배적인 외란인 바람을 모델링하였다.

2.1 선박 모델링

  • 3자유도(Surge, Sway, Yaw) 비선형 모델을 사용하며 운동방정식은 식 (1)과 같다.
    $$M\dot{v}+Dv=\tau, \quad \dot{\eta}=R(\psi)v$$
  • 여기서 $M$은 관성행렬, $D$는 제동행렬, $\tau$는 제어 입력(예인선에 의한 힘)을 의미한다.

2.2 예인선 모델링 (Tugboat Modeling)

본 연구에서는 2대의 예인선을 운용하며, 각 예인선은 선박의 지정된 위치(작용점)에 계류하여 힘을 가한다고 가정한다. 예인선의 개별적인 제어 입력이 선박 전체에 미치는 영향은 선박의 본체 고정 좌표계(Body-fixed frame)를 기준으로 한 기하학적 관계를 통해 계산된다.

  • 예인선 제어 변수:
    각 예인선 $i$ ($i=1, 2$)에 대하여 다음과 같은 변수를 정의한다.
    • $f_i$: 예인선이 작용하는 힘의 크기 (Magnitude)
    • $\alpha_i$: 선박의 선수 방향($x$축)을 기준으로 한 힘의 작용 방향 (Direction angle)
    • $(l_{x_i}, l_{y_i})$: 선박의 무게중심($O_b$)으로부터 $i$번째 예인선 작용점까지의 거리
  • 힘과 모멘트의 변환:
    두 예인선이 생성하는 힘은 선박의 무게중심에 작용하는 전체 제어력 벡터 $\tau = [\tau_u, \tau_v, \tau_r]^T$ (Surge force, Sway force, Yaw moment)로 변환된다. 이는 식 (3)과 같이 작용점의 위치와 힘의 방향에 따른 기하학적 관계 행렬을 통해 도출된다.이 식을 통해 예인선의 힘($f$)과 방향($\alpha$)이 선박의 종방향/횡방향 운동 및 회전 모멘트에 기여하는 성분으로 분해 및 합산되어 선박의 동적 모델에 입력된다.

$$
\tau = \begin{bmatrix}
\cos(\alpha_1) & \sin(\alpha_1) & -l_{y_1}\cos(\alpha_1) + l_{x_1}\sin(\alpha_1) ; \
\cos(\alpha_2) & \sin(\alpha_2) & -l_{y_2}\cos(\alpha_2) + l_{x_2}\sin(\alpha_2)
\end{bmatrix}^T
\begin{bmatrix} f_1 ; \ f_2 \end{bmatrix}
$$

2.3 하이브리드 시스템 모델링

  • 예인선의 제어(연속 시간)와 위치 이동(이산 시간)이 결합된 하이브리드 시스템으로 정의한다.
  • 운용 모드: 선박의 선수/선미에서 당기는 '예인모드($q_1$)'와 한쪽 현측에서 밀고 당기는 '접안모드($q_2$)'로 구분한다.
  • 모드 전환 시 예인선은 위치를 변경하며, 이 시간 동안 제어 입력 $\tau$는 0이 된다.
  • 예인선 제어(연속시간) + 예인선 위치 전환(이산 이벤트)이 결합된 하이브리드 시스템으로 정의.
  • 두 가지 모드:
    • q₁: 예인모드(towing) – 예인선이 선수·선미 방향에서 당김.
    • q₂: 접안모드(berthing) – 한쪽 현측에 계류하여 밀고 당김.
  • 모드 전환 시:
    • 예인선이 선박에서 떨어져 새 위치로 이동하는 전이 구간 존재 (Fig. 2).
    • 이 시간 T 동안 제어입력 u(t)=0u(t) = 0u(t)=0 로 설정.
  • G 함수: 이전 q와 현재 q를 비교해 모드 유지/전환 결정.
  • R 함수: 새 모드 시작 시 제어입력 초기화.

2.4 외란 모델링

  • 항만 내에서는 바람이 주요 외란이라 보고 바람만 고려.
  • 바람에 의한 힘·모멘트는 선체 전·측면 투영면적과 풍력계수, 상대풍 속도/방향으로 표현한다.
  • 바람의 힘은 풍속, 상대 풍향, 선박의 투영 면적 및 풍력 계수를 기반으로 계산된다. 이때, 바람 속도와 방향은 평균값을 중심으로 한 가우시안 분포에서 샘플링된다.

3. 강화학습 알고리즘 (Reinforcement Learning Algorithm)

연속적인 행동 공간 처리에 적합하고 안정적인 성능을 보이는 PPO(Proximal Policy Optimization) 알고리즘을 적용하였다.

3.1 PPO 알고리즘

  • 행동공간이 연속인 문제에 적합한 PPO(Proximal Policy Optimization) 채택.
  • 신뢰 영역 기반의 정책 경사 알고리즘으로, 정책 업데이트 시 범위를 제한하여 학습의 안정성을 보장한다.
  • 기존 정책과 새 정책의 확률비 rt(θ)r_t(\theta)rt​(θ) 를 이용해
    • clip된 손실함수 L(θ) 로 학습 안정성 확보.
  • 이득값 A^t\hat{A}_tA^t​ 를 통해 좋은 행동은 강화, 나쁜 행동은 약화.

3.2 학습 네트워크

  • 정책 네트워크 + 가치 네트워크를 공유하는 구조(Fig. 3)이다.
  • 가치(Value)와 정책(Policy) 네트워크를 공유하며, 2개의 은닉층(64 노드, Tanh 활성함수)을 사용한다.
  • 입력(State): 선박의 상태($x, y, \psi, u, v, r$), 목표와의 오차($e_d, e_\psi, e_v$), 그리고 이전 단계의 행동값(Action)을 사용한다.
  • 출력(Action): 예인선 힘의 변화량($\Delta f$), 방향 변화량($\Delta \alpha$), 그리고 모드 변경을 결정하는 변수 $k$를 포함한 총 5개의 값을 출력한다.
    • $-1 \le k < 0$ 이면 예인모드($q_1$), $0 \le k \le 1$ 이면 접안모드($q_2$)를 선택한다.

3.3 보상 함수

  • 목표: 목표 위치·방위·속력을 만족할수록 보상이 커지도록 설계되었다.
  • 보상 R:
    • 거리오차 ed, 방위오차 eψ, 속도오차 ev를 기반으로 음의 가중합 형태.
    • 속도오차는 크기가 작으므로 계수 c를 곱해 비중 보정.
    • 정규화 인자 α로 전체 보상을 0~1 사이로 조정.
    • 선박이 부두에 충돌 시 벌점 p = –1 부여.
  • 매 타임스텝마다 보상을 계산해 PPO의 손실함수에 사용.
  • 선박이 부두에 충돌할 경우 벌점($p=-1$)을 부여한다.
    $$R=\frac{-||e_{d}||-||e_{\varphi}||-c||e_{\nu}||+\alpha}{\alpha}+p$$

4. 시뮬레이션 결과 (Simulation Results)

Python 기반의 OpenAI Gym 환경을 구축하여 검증을 수행하였다.

4.1 예비 시뮬레이션

  • 6,000톤급 선박 모델을 사용하여 장애물이 없는 환경에서 학습을 진행한 결과, 예인선 2대에 의해 성공적으로 자율 접안함을 확인하였다.

4.2 본 시뮬레이션 (인천 내항 시나리오)

  • 실제 인천 내항 부두 입항 시나리오 구성.
    • 좁은 갑문을 통과해 목표 부두에 접안하는 상황.
  • 각 모드(예인/접안)별 예인선 힘과 방향각, 변화량에 대해 제약조건(Table 1) 설정.
  • 학습 과정:
    • 초기에는 갑문/부두 충돌로 에피소드가 조기에 종료.
    • 학습이 진행되며 선박이 갑문을 통과하고, 예인모드–접안모드 간 모드 전환이 여러 번 발생(Fig. 8 상단).
    • 최종 단계에서는:
      • 예인모드로 갑문 통과 후 단 한 번의 모드 전환으로 접안모드에 진입,
      • 목표 위치에 도달하는 안정된 정책으로 수렴(Fig. 8 하단, 논문 확인).
  • 외란 실험:
    • 풍속 11–13 m/s, 풍향 205–215°의 강한 바람을 인가.
    • Fig. 9:
      • 외란 없는 경우(노란 궤적)와 있는 경우(빨간 궤적) 모두 목표 부두에 접안 성공.
      • 녹색 구간에서 예인모드→접안모드 전환이 일어남.
        → 강한 바람에도 강화학습 기반 제어가 실용적인 자율 접안 성능을 보임을 확인.

5. 결론 (Conclusion)

  • 본 연구는 PPO 알고리즘을 이용하여 예인선의 위치 이동(모드 전환)까지 고려한 선박 접안 문제를 해결하였다.
  • 예인선의 운용을 '예인모드'와 '접안모드'로 정의하고, 강화학습을 통해 예인선의 이동과 운용 판단을 자율화한 국내 최초의 연구 사례이다.

'논문 리뷰' 카테고리의 다른 글

Proximal Policy Optimization (PPO) - OpenAI  (0) 2025.09.03
[논문 리뷰] USV Formation Path Planning Based on Behavior Trees and Fast Marching Method  (1) 2025.06.05
'논문 리뷰' 카테고리의 다른 글
  • Proximal Policy Optimization (PPO) - OpenAI
  • [논문 리뷰] USV Formation Path Planning Based on Behavior Trees and Fast Marching Method
lidarmansiwon
lidarmansiwon
lidarmansiwon 님의 블로그 입니다.
  • lidarmansiwon
    라이다맨 시원의 연구개발 라이프
    lidarmansiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (12)
      • 이론 정리 (2)
        • Thor I. Fossen 리뷰 (1)
      • Ubuntu 및 Linux (0)
        • Trouble shooting (0)
      • 개발 언어 (5)
        • C++ (5)
        • Python (0)
      • 논문 리뷰 (3)
      • ROS2 (2)
  • 블로그 메뉴

    • Github
    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Sliding mode control
    해양공학
    fossen
    singlethreadedexecutor
    maritimerobotics
    cpp
    multithreadedexecutor
    ROS2
    usv formation path planning based on behavior trees and fast marching method
    자율선박
    슬라이딩 모드 컨트롤
    c++ 기초부터 심화까지
    이접안
    marinecraft
    C++
    motioncontrol
    navigationcontrol
    do it! c++ 완전 정복
    usv formation
    실행 흐름 제어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
lidarmansiwon
[논문 리뷰] 강화학습 기반예인선 제어방법에 의한선박 자율 접안
상단으로

티스토리툴바