Skip to content

Separate collision avoidance from desired object clearance - #32

Merged
jpbusch merged 4 commits into
mainfrom
split-obj-constraints
Oct 21, 2026
Merged

jpbusch merged 4 commits into
mainfrom
split-obj-constraints

Conversation

@jpbusch

@jpbusch jpbusch commented Oct 12, 2026 •

Copy link
Copy Markdown
Member
  • Physical separation stays hard: the unexpanded ego/object OBBs must keep d_min_object_collision (build parameter, default 0.10 m). This block never receives slacks.
  • Desired clearance keeps main's expanded box (front max(d_min_object_long, thw * v), sides d_min_object_lat) but becomes soft via object_slack_weights (enable_object_slack: true). The clearance block keeps main's constraint indices; the collision block is appended.
  • Slacks are checked for finiteness before a solution is accepted; the performance CSV (schema 7) distinguishes object_collision/object_clearance and logs the largest clearance slack.
  • OCP generation errors fail the build.

Replay of the bag snippets: 66 → 16 rejected solves. CI runs (together with #31): 7.4 % → 0.6–0.9 % rejected while driving, longest publication gap 8.45 s → ≤ 1.45 s.

Known limitation: the clearance slack is the SAT penetration depth of the expanded box. For an object ahead it saturates at the lateral overlap (~1.7–2.7 m), so deeper THW violations cost the same and the gradient points sideways. Reconstructed cycles at campus-loop scenario ~820 m (crossing vehicle) show 0.8–1.3 m planned lateral evasion caused by the THW part.

Follow-up: measure THW along the path to the in-path object.

@jpbusch
jpbusch requested a review from gkueppers October 12, 2026 08:33
Comment thread trajectory_optimization_ocp/trajectory_optimization_ocp/constraints.py Outdated
Comment thread trajectory_optimization_ocp/trajectory_optimization_ocp/constraints.py Outdated
- Clear cached controls after a standstill trajectory.
- Clamp negative initial acceleration at zero speed.
- Keep the soft clearance box as on main; the hard collision block follows it.
- Rename safety_ego_obb/collision_reserve to clearance_obb/d_min_object_collision.
- Adapt logger block order, README and config comments.
@jpbusch
jpbusch merged commit 27b5eed into main Oct 21, 2026
4 checks passed
@jpbusch
jpbusch deleted the split-obj-constraints branch October 21, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants