zerokn0wledge

MoveIt motion planning: how it works and where it fails

Post384 words
ExplainerRoboticsToolingMoveItBMWFetch RoboticsNASA

MoveIt turns a target pose into collision-free joint trajectories via sampling-based planning. Cites BMW Regensburg (80ms average planning) and notes weak spots: dynamic environments, contact-rich tasks and sub-second cycles.

Key claims
Success on YCB: 89% in clutter, 98% for isolated objects
BMW Regensburg planning 80ms average, 180ms p99
Fits 2-10 second cycle times
๐— ๐—ผ๐˜๐—ถ๐—ผ๐—ป ๐—ฝ๐—น๐—ฎ๐—ป๐—ป๐—ถ๐—ป๐—ด ๐—น๐—ถ๐—ฏ๐—ฟ๐—ฎ๐—ฟ๐—ถ๐—ฒ๐˜€ ๐—น๐—ถ๐—ธ๐—ฒ ๐— ๐—ผ๐˜ƒ๐—ฒ๐—œ๐˜ (๐—บ๐—ฎ๐—ป๐—ถ๐—ฝ๐˜‚๐—น๐—ฎ๐˜๐—ผ๐—ฟ๐˜€) ๐—ณ๐—ผ๐—ฟ ๐—ฟ๐—ผ๐—ฏ๐—ผ๐˜๐—ถ๐—ฐ๐˜€ The robot arm needs to move from point A to point B without hitting itself, the table, or anything else in the workspace - motion planning solves this problem. Sounds simple. Gets complex fast when you have 6-7 joints, dynamic obstacles, and need solutions in <100ms for real-time operation. For such cases we have libraries like Movelt. It takes target pose (position + orientation) as input. Returns joint trajectories that get you there safely. Handles: โžคCollision checking (10,000+ checks per planning attempt) โžคInverse kinematics (convert XYZ coordinates to joint angles) โžคTrajectory optimization (smooth the path, minimize jerk) โžคConstraint satisfaction (keep tool vertical while moving, stay within workspace bounds) To make any action Movelt launches the planning pipeline: 1. Scene representation: build 3D octree of workspace (typical resolution: 1cm voxels) 2. Sample configurations: generate random valid joint states 3. Connect samples: try to link valid states without collisions 4. Extract path: find shortest route through the graph 5. Smooth trajectory: convert waypoints into continuous motion with velocity/acceleration profiles This runs 20-50 times to find multiple solutions, then picks best by time or smoothness metric. BMW Regensburg plant uses MoveIt to control 200+ robot arms for door assembly. Planning takes 80ms average, 99th percentile at 180ms. Switched from proprietary ABB planner because MoveIt handled tool changes without reprogramming (saved 4 weeks per production line reconfiguration). Fetch Robotics warehouse robots use MoveIt to plan arm motions for bin picking. Processes 450 picks/hour with 97% success rate. Failure cases: mostly perception errors, not planning failures. NASA Robonaut 2 (ISS) uses MoveIt to plan manipulation tasks in microgravity. Had to modify collision checking to account for floating objects - standard MoveIt assumes static obstacles. MoveIt planning success rate on YCB object dataset (standard manipulation benchmark): 89% for clutter scenes, 98% for isolated objects. But like any other tech, there are cases where MoveIt struggles: โžค Dynamic environments - replanning takes too long when obstacles move unpredictably. Fails for catching thrown objects or fast-moving conveyors. โžค Contact-rich tasks - pushing doors, wiping tables, anything requiring force control. Need hybrid approaches (MoveIt for free-space, impedance control for contact). โžคHigh-speed applications - planning overhead limits cycle time. Assembly lines running <1 second cycles use pre-taught trajectories instead. MoveIt fits 2-10 second cycle time applications.

1 image on X

Open on X
zerokn0wledge avatar
Working together

Research, advisory and builds for deep-tech teams.