Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
8cf9c77
Feed live IK solutions to cbirrt. Add request file that does not prod…
dgottlieb Oct 16, 2025
57f0a96
Clean up rudimentary working algorithm.
dgottlieb Oct 17, 2025
cfb4b52
revert noisy debugging
dgottlieb Oct 17, 2025
073b392
fix log line
dgottlieb Oct 17, 2025
cfe0bd5
merge in main
dgottlieb Nov 9, 2025
3197835
update scene with Inputs API change
dgottlieb Nov 9, 2025
0ea3e16
Merge remote-tracking branch 'origin/main' into live-ik-solutions-to-…
dgottlieb Nov 10, 2025
6f3579b
delete scene that is no longer relevant
dgottlieb Nov 10, 2025
111bba2
remove node names
dgottlieb Nov 11, 2025
48c50ef
lint
dgottlieb Nov 11, 2025
4ff7b6f
Revert "remove node names"
dgottlieb Nov 12, 2025
dedf5c2
merge in main
dgottlieb Nov 12, 2025
b9c464c
to match default performance, change plan max IK solutions to 10
dgottlieb Nov 12, 2025
aa739b8
More efficient waiting
dgottlieb Nov 12, 2025
80cd13f
further optimize IK cleanup waiting. batch at the end of plan manager…
dgottlieb Nov 12, 2025
4b22174
lint
dgottlieb Nov 12, 2025
49aa7f6
move debug output execution such that it waits for dependent input to…
dgottlieb Nov 12, 2025
55074ae
lint
dgottlieb Nov 12, 2025
1374f4b
lint
dgottlieb Nov 12, 2025
2f1937c
check channel close
dgottlieb Nov 12, 2025
1248e93
I was wrong, needed a copy
dgottlieb Nov 13, 2025
f48a693
move to safe spot
dgottlieb Nov 13, 2025
5e3793c
actually have "not mine" be true
dgottlieb Nov 13, 2025
c05f441
lint
dgottlieb Nov 13, 2025
d218331
Test joint to joint code paths.
dgottlieb Nov 13, 2025
d7a8613
and...add the test file
dgottlieb Nov 13, 2025
c5d8f8d
feedback
dgottlieb Nov 17, 2025
5c53c1c
remove max solutions
dgottlieb Nov 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
remove max solutions
  • Loading branch information
dgottlieb committed Nov 17, 2025
commit 5c53c1c95d809ea072bccc8bad3788e171291646
1 change: 0 additions & 1 deletion motionplan/armplanning/constraint_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ func TestIKTolerances(t *testing.T) {
// Now verify that setting tolerances to zero allows the same arm to reach that position
opt := NewBasicPlannerOptions()
opt.GoalMetricType = motionplan.PositionOnly
opt.SetMaxSolutions(50)

request2 := &PlanRequest{
FrameSystem: fs,
Expand Down
7 changes: 2 additions & 5 deletions motionplan/armplanning/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,18 +146,15 @@ func newSolutionSolvingState(ctx context.Context, psc *planSegmentContext) (*sol

var err error

const numSolutionsBeforeReturning = 10
sss := &solutionSolvingState{
psc: psc,
solutions: []*node{},
failures: newIkConstraintError(psc.pc.fs, psc.checker),
firstSolutionTime: time.Hour,
bestScoreNoProblem: 10000000,
bestScoreWithProblem: 10000000,
maxSolutions: psc.pc.planOpts.MaxSolutions,
}

if sss.maxSolutions <= 0 {
sss.maxSolutions = defaultSolutionsToSeed
maxSolutions: numSolutionsBeforeReturning,
}

sss.linearSeeds = [][]float64{psc.start.GetLinearizedInputs()}
Expand Down
13 changes: 0 additions & 13 deletions motionplan/armplanning/planner_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ import (
const (
defaultCollisionBufferMM = 1e-8

// Number of IK solutions that should be generated before stopping.
defaultSolutionsToSeed = 10

// Check constraints are still met every this many mm/degrees of movement.
defaultResolution = 2.0

Expand Down Expand Up @@ -68,7 +65,6 @@ func NewBasicPlannerOptions() *PlannerOptions {
// TODO: RSDK-6079 this should be properly used, and deduplicated with defaultEpsilon, InputIdentDist, etc.
opt.GoalThreshold = 0.1
// Set defaults
opt.MaxSolutions = defaultSolutionsToSeed
opt.MinScore = defaultMinIkScore
opt.Resolution = defaultResolution
opt.Timeout = defaultTimeout
Expand Down Expand Up @@ -96,10 +92,6 @@ type PlannerOptions struct {
// the goal metric only if the GoalMetricType is ik.ArcLengthConvergence
ArcLengthTolerance float64 `json:"arc_length_tolerance"`

// For the below values, if left uninitialized, default values will be used. To disable, set < 0
// Max number of ik solutions to consider
MaxSolutions int `json:"max_ik_solutions"`

// Movements that score below this amount are considered "good enough" and returned immediately
MinScore float64 `json:"min_ik_score"`

Expand Down Expand Up @@ -257,11 +249,6 @@ func (p *PlannerOptions) getGoalMetric(goal referenceframe.FrameSystemPoses) mot
// }, nil
// }

// SetMaxSolutions sets the maximum number of IK solutions to generate for the planner.
func (p *PlannerOptions) SetMaxSolutions(maxSolutions int) {
p.MaxSolutions = maxSolutions
}

// SetMinScore specifies the IK stopping score for the planner.
func (p *PlannerOptions) SetMinScore(minScore float64) {
p.MinScore = minScore
Expand Down
Loading