Skip to content

Choosing a backend¤

COMPAS FAB is one library that drives five different planning back-ends. Pick the one that matches what you want to do.

By intent¤

I want to… Use Why
Just compute IK on a robot (e.g., UR, Staubli, ABB, etc) Analytical IK Closed-form, microsecond IK, no Docker, no PyBullet
Compute IK and check collisions Analytical IK + PyBullet Analytical-fast IK filtered against a real collision scene
Plan motion (collisions + trajectory smoothing) without ROS PyBullet In-process motion planning; runs anywhere Python runs
Plan motion via ROS 2 + MoveIt 2 ROS 2 + MoveIt 2 Current ROS LTS; the recommended starting point for new ROS work
Drive an existing ROS 1 + MoveIt 1 setup ROS 1 + MoveIt 1 Legacy stack; only use if you must
Just model / visualize a robot cell in a CAD environment no backend The core data model works without any planner. See Concepts

By capability¤

Capability Analytical Analytical + PyBullet PyBullet ROS 1 + MoveIt 1 ROS 2 + MoveIt 2
Forward kinematics
Inverse kinematics ✓ (closed-form) ✓ (closed-form) ✓ (numerical)
Collision checking
Point-to-point motion planning
Cartesian motion planning ✓ (partial)
Visualisation PyBullet GUI PyBullet GUI RViz RViz
Setup cost none pip install pybullet pip install pybullet Docker Docker
Usable from inside Rhino 7/8 ✓ (over WebSocket) ✓ (over WebSocket)

Setup cost in plain words¤

  • Analytical IK: nothing to install beyond compas_fab itself.
  • PyBullet / Analytical + PyBullet: one pip install pybullet (with a small workaround on macOS, see the per-backend pages).
  • ROS 1 & ROS 2: Docker Desktop + the per-robot compose stack in docs/installation/docker_files/.

Without a backend¤

Even without a planning back-end, the core of compas_fab is useful for:

For a backend-agnostic walkthrough of the data model, see Concepts.