Skip to content

Conversation

@wbthomason
Copy link
Collaborator

This PR adds support for the Boston Dynamics Spot robot, based on the URDF files available here: https://github.com/bdaiinstitute/spot_description.

It also includes some minor fixes to the random_dance.py script for compatibility with the latest VAMP.

There's one issue to resolve before merging: for some reason, at least on ARM (MacBook Air M2), Halton sampling appears to be buggy (not only for Spot) and only returns non-zero values for the first 4 degrees of freedom.
We should resolve this issue just in case it's somehow caused by this PR (though I doubt it - I more suspect a Mac issue or a regression due to the recent change in robot kinematics generation backend).

@wthomason-bdai
Copy link

wthomason-bdai commented Jul 24, 2025

@zkingston this does not appear to be a Mac-only issue; I can reproduce it on Ubuntu. Additionally, I'm seeing some sort of hang in validate...

More specifically: only for spot, I'm still seeing the RNG issue (on Linux) and validate seems to hang forever. On Mac, validate ran correctly.

@wbthomason
Copy link
Collaborator Author

I fixed the RNG issue (undefined behavior during access beyond bounds of a SIMD vector when converting to a float array), and the Spot can now plan! I also found that the observed hangs seem to come from an issue with RRTC going to a huge number of iterations - my running theory is that we're hitting the limits of the nearest neighbors structure, given the number of samples + the high dimensionality of the Spot relative to other supported robots, but I'm not sure about this. The need to take so many iterations (300k+) is likely due to the naive guesses I used for the Spot's validation fineness and RRTC range, or due to the SRDF used to generate the Spot's fkcc missing some important disallowed collisions. Still, I think this support is OK for now, maybe modulo @zkingston tuning of the RRTC range etc. I'll see if I can get a more refined SRDF.

@wbthomason wbthomason requested a review from zkingston July 25, 2025 07:20
@wbthomason
Copy link
Collaborator Author

As an aside, I'm not sure why the format check is failing? I've run clang-format on the relevant file, I think.

@wbthomason
Copy link
Collaborator Author

I've added support for a variant of the Spot with only its arm left free - this seems to work reliably (based on a bit of random_dance testing, nothing in-depth yet). I tried also tuning the RRT range down slightly, but no change for the full Spot.

Copy link
Member

@claytonwramsey claytonwramsey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all looks good to me!

you weren't lying about compilation times though:

Successfully installed vamp-planner-0.6

________________________________________________________
Executed in  141.42 secs    fish           external
   usr time  320.50 secs    0.00 micros  320.50 secs
   sys time   10.50 secs  396.00 micros   10.50 secs

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

may want to pick out these changes as a separate PR since that will be way easier to merge

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we remove panda_sphere_cage since this is a very similar experiment? Or leave it since it's the easiest example to reproduce?

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.

5 participants