A 6-joint serial robot arm needs to touch a target point with its end-effector while staying clear of three obstacle spheres in the workspace. The optimizer picks six joint angles θ1…θ6 (each ±90°); the score rewards getting the tip close to the target and punishes any link that intersects an obstacle. 6-D continuous, multi-modal — different "elbow-up" / "elbow-down" / wrap-around branches all reach the target, but only via specific clearance corridors between the obstacles.
Try a pose, see if it threads the obstacles.
6-D problem. Most optimizers find a collision-free pose by ~500 evaluations.
Each row is the best pose a given algorithm found.
| Algorithm | Score | Poses | Detail |
|---|---|---|---|
| — no runs yet — | |||
The arm has six revolute joints in series with link lengths [120, 105, 90, 75, 60, 45] px — a total reach of 495 px that almost spans the canvas diagonally. Each joint angle θi is interpreted as the rotation of the i-th link relative to the (i−1)-th, and each is bounded to ±90°. Forward kinematics walks down the chain to give the position of every joint and the end-effector tip.
Score is reach minus collision:
max(0, 100 − 0.25·tipErr) − 25·collisions − 0.4·deepest.
The reach term gives 100 when the tip touches the target and
drops linearly with distance. The penalty fires every time a
link segment intersects an obstacle disc, plus an extra
proportional to how deep the deepest intrusion is. A clean
pose that just touches the target scores ~100; any collision
pulls the score sharply negative.
The landscape is multi-modal. The arm can thread above or below the centre obstacle, and from either side of the left flanker, so there are several disjoint regions of 6-D angle space where the score is near 100. Trust-region methods can converge to whichever basin they happen to start in; population methods explore multiple branches at once and tend to find the highest-clearance one.
2-D side view of a 6-DOF planar serial arm; real industrial robots add joint-velocity limits, self-collision, dynamic obstacles, and path-planning over time. The structure — constrained inverse kinematics with a configuration-space obstacle field — is the same.
If your hyper-parameter searches are heating the Earth, drop this in Cursor or Claude:
Read https://raw.githubusercontent.com/microprediction/humpday/main/SKILL.md and create a project skill from it.