Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

Bézier Curve

  • 다른 이름: Bezier curve
  • 카테고리: Planning & manipulation › Trajectory optimisation
  • 태그: trajectory-optimization, splines, path-planning, geometry, motion-planning

제어점으로 정의되는 다항식 곡선. 첫 제어점에서 시작해 마지막 제어점에서 끝나며 그 사이의 제어점 쪽으로 당겨진다. 로봇 경로, 궤적, 획 모양에 널리 쓰인다.

정의

n차 베지에 곡선(Bézier curve)은 n + 1개의 제어점 P₀ … Pₙ과 0에서 1까지 변하는 매개변수 t로 정의되는 다항식 곡선이다: B(t) = Σ C(n, i) (1 − t)ⁿ⁻ⁱ tⁱ Pᵢ. 여기서 가중치는 번스타인 기저 다항식이다. 곡선은 P₀에서 시작해 Pₙ에서 끝나며, 양 끝에서의 접선은 제어 다각형의 첫 변과 마지막 변 방향을 향한다. 안쪽 제어점들은 곡선의 모양을 만들지만 일반적으로 곡선 위에 있지 않다. 제어점이 네 개인 3차 곡선이 가장 흔하다. 이 형식은 1960년대 프랑스 자동차 산업에서 Renault의 Pierre Bézier와, 이와 독립적으로 Citroën의 Paul de Casteljau가 개발했다.

몇 가지 성질 덕분에 베지에 곡선은 로보틱스에서 편리하다. 곡선 전체가 제어점들의 볼록 껍질 안에 있으므로, 제어점을 장애물이 없는 볼록 영역 안에 두면 곡선도 그 안에 머문다는 것이 보장된다. 이로써 충돌 회피가 선형 제약으로 바뀌며, 볼록 집합 그래프 위의 궤적 최적화가 그 예다. 베지에 곡선의 도함수는 차수가 하나 낮은 또 다른 베지에 곡선이며 그 제어점은 n(Pᵢ₊₁ − Pᵢ)이므로, 속도와 가속도 한계도 보수적으로 제어점에 부과할 수 있다. de Casteljau 알고리즘은 반복적인 선형 보간으로 곡선을 수치적으로 안정되게 계산하고 분할한다.

염두에 둘 한계도 있다. 매개변수 t는 시간도 호의 길이도 아니므로, 궤적으로 쓰는 곡선에는 여전히 시간 매개변수화가 필요하며, t를 같은 간격으로 나눠도 곡선을 따라 같은 거리가 나오지 않는다. 제어점 하나를 옮기면 곡선 전체가 바뀌므로, 긴 경로는 보통 위치, 접선, 곡률의 연속 조건으로 이은 여러 개의 저차 구간으로 만들거나, 국소 제어가 가능한 B-스플라인으로 표현한다. 복잡한 모양에 맞추려고 차수를 높이면 곡선의 모양을 잡기가 더 어려워지고 수치적으로도 덜 안정적이 된다.

중요한 이유

베지에 곡선은 자동차와 드론 궤적부터 공구와 붓의 획까지, 경로와 궤적을 간결하고 매끄러우며 제약을 걸기 쉬운 형태로 표현한다. 볼록 껍질 성질과 도함수 성질 덕분에 안전 한계와 동적 한계가 몇 개의 점에 대한 단순한 제약으로 바뀌며, 그래서 많은 최적화 기반 계획기에 등장한다.

주요 응용

  • 드론과 이동 로봇을 위한 매끄러운 궤적 생성
  • 그래프 탐색이나 샘플링 기반 계획 이후의 경로 평활화
  • 자율주행차의 차선 변경 및 주차 경로
  • 그림 그리기, 드로잉, 디스펜싱 로봇의 공구, 붓, 펜 획
  • 볼록 집합 그래프를 이용한 모션 플래닝
  • 보행 로봇의 유각 궤적

실제 사례

드론 계획기가 창고를 지나는 경로를 볼록한 자유 공간 영역들의 사슬로 나누고 각 영역에 베지에 구간 하나씩을 배정한다. 각 구간의 제어점이 해당 영역 안에 있도록 요구하고, 이음매에서 위치, 속도, 가속도가 일치하도록 한 구간의 마지막 제어점들을 다음 구간의 첫 제어점들과 연결하며, 속도와 가속도 한계를 지키도록 도함수 곡선의 제어점에 한계를 둔다. 이 제약들은 모두 제어점에 대해 선형이므로 전체 문제는 빠르게 풀리는 볼록 계획 문제가 된다. 마지막 단계에서 선택한 지속 시간으로 각 구간의 매개변수 t를 시간에 대응시킨다. 지속 시간을 줄이면 드론이 도달해야 하는 모든 속도와 가속도가 커진다.

흔한 오해

  • 베지에 곡선은 모든 제어점을 지난다 — 첫 제어점과 마지막 제어점만 곡선 위에 있다. 안쪽 제어점들은 곡선이 닿지 않은 채 곡선을 당긴다
  • 매개변수 t는 시간이다 — t는 0과 1 사이의 모양 매개변수다. 속도와 가속도는 별도의 시간 스케일링이 정한다
  • 복잡한 경로에는 차수가 높을수록 언제나 좋다 — 고차 곡선은 국소 제어를 잃는다. 보통은 저차 구간을 이은 사슬이나 B-스플라인이 더 낫다
  • 제어점에 한계를 두면 정확한 속도 한계가 된다 — 도함수 제어점에 대한 한계는 충분조건이지만 보수적이어서, 실제 최댓값은 보통 한계보다 낮다

알아야 할 사람

  • 모션 플래닝 및 궤적 계획 엔지니어
  • 자율주행차 및 드론 개발자
  • 도장, 용접, 디스펜싱용 로봇 프로그래머
  • 유각 궤적을 설계하는 보행 이동 엔지니어

관련 기술

  • B-스플라인(B-Splines)
  • de Casteljau 알고리즘
  • 번스타인 다항식(Bernstein Polynomials)
  • NURBS
  • 시간 최적 경로 매개변수화(Time-Optimal Path Parameterization)
  • 볼록 최적화(Convex Optimization)

관련 용어

  • Trajectory Planning
  • Minimum-Snap Trajectory
  • Graph of Convex Sets
  • Motion Primitive
  • Elastic band

관련 프로젝트

  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms

동영상

  • The Beauty of Bézier Curves: Freya Holmér

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.