Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

Bézier Curve

  • Also called: Bezier curve
  • Category: Planning & manipulation › Trajectory optimisation
  • Tags: trajectory-optimization, splines, path-planning, geometry, motion-planning

A polynomial curve defined by control points: it starts at the first, ends at the last and is pulled toward the ones between; widely used for robot paths, trajectories and stroke shapes.

Definition

A Bézier curve of degree n is a polynomial curve defined by n + 1 control points P₀ … Pₙ and a parameter t that runs from 0 to 1: B(t) = Σ C(n, i) (1 − t)ⁿ⁻ⁱ tⁱ Pᵢ, where the weights are the Bernstein basis polynomials. The curve starts at P₀ and ends at Pₙ, and its tangent at each end points along the first and last legs of the control polygon; the inner control points shape the curve but generally do not lie on it. Cubic curves, with four control points, are the most common. The form was developed in the French car industry in the 1960s by Pierre Bézier at Renault and, independently, Paul de Casteljau at Citroën.

Several properties make Bézier curves convenient in robotics. The whole curve lies inside the convex hull of its control points, so keeping the control points inside a convex obstacle-free region guarantees that the curve stays inside it too; this turns collision avoidance into linear constraints, as in trajectory optimization over graphs of convex sets. The derivative of a Bézier curve is another Bézier curve of one degree lower, with control points n(Pᵢ₊₁ − Pᵢ), so velocity and acceleration bounds can also be imposed, conservatively, on control points. The de Casteljau algorithm evaluates and splits curves in a numerically stable way by repeated linear interpolation.

There are limits to keep in mind. The parameter t is neither time nor arc length, so a curve used as a trajectory still needs a time parameterization, and equal steps in t do not give equal distances along the curve. Moving one control point changes the whole curve, so long paths are usually built from several low-degree segments joined with continuity conditions on position, tangent and curvature, or represented with B-splines, which give local control. Raising the degree to fit complex shapes makes curves harder to shape and less well behaved numerically.

Why it matters

Bézier curves give a compact, smooth and easily constrained representation for paths and trajectories, from car and drone trajectories to tool and brush strokes. Their convex hull and derivative properties turn safety and dynamic limits into simple constraints on a handful of points, which is why they appear in many optimization-based planners.

Key applications

  • Smooth trajectory generation for drones and mobile robots
  • Path smoothing after graph-search or sampling-based planning
  • Lane-change and parking paths for autonomous vehicles
  • Tool, brush and pen strokes for painting, drawing and dispensing robots
  • Motion planning with graphs of convex sets
  • Swing-foot trajectories for legged robots

In practice

A drone planner splits a route through a warehouse into a chain of convex free-space regions and assigns one Bézier segment to each region. It requires each segment's control points to lie inside its region, links the last control points of one segment to the first of the next so that position, velocity and acceleration match at the joins, and bounds the control points of the derivative curves to respect velocity and acceleration limits. Because all of these constraints are linear in the control points, the whole problem is a convex program that solves quickly. A final step maps each segment's parameter t to time with a chosen duration; shortening the duration scales up every speed and acceleration the drone must reach.

Common misconceptions

  • A Bézier curve passes through all its control points — only the first and last lie on the curve; the inner ones pull it without being touched
  • The parameter t is time — t is a shape parameter between 0 and 1; a separate time scaling sets speeds and accelerations
  • Higher degree is always better for complex paths — high-degree curves lose local control; chains of low-degree segments or B-splines are usually preferable
  • Bounding the control points gives exact velocity limits — bounds on derivative control points are sufficient but conservative, so the actual peak is usually below the bound

Who should know this

  • Motion and trajectory planning engineers
  • Autonomous vehicle and drone developers
  • Robot programmers for painting, welding and dispensing
  • Legged locomotion engineers designing swing trajectories

Related technologies

  • B-Splines
  • de Casteljau Algorithm
  • Bernstein Polynomials
  • NURBS
  • Time-Optimal Path Parameterization
  • Convex Optimization

Related terms

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

Related projects

  • 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

Videos

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

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.