Skip to content

Comments

Make A1 motion planning work#421

Merged
dellaert merged 8 commits intomasterfrom
fix/walking
Feb 17, 2026
Merged

Make A1 motion planning work#421
dellaert merged 8 commits intomasterfrom
fix/walking

Conversation

@dellaert
Copy link
Member

Behavior change

  • contact height is now specified in world frame
  • made tests exercise this with hieight=4.2

Smaller things

  • made a Spline class for easier reading of example
  • switched to 24 frames per second
  • renamed Poe3Factor to Poe3Expression
  • generate python stubs
  • added to README

New motion planning notebook

  • added notebook examples/example_a1_walking/chain_dynamics_motion_planning.ipynb
  • exposed much in wrapper to make it possible

Nice swing phases obtained entirely by kino-dynamic MP:
image

and trunk xyz:
image

@dellaert dellaert requested a review from havriutkin February 16, 2026 04:38
@dellaert
Copy link
Member Author

@havriutkin It even walks in the (sson to come) webdemo:
image
although, it's very revealing: it's not a symmetric walk, and very slow.

@dellaert
Copy link
Member Author

@copilot create a new PR that only has the python stubs change in this PR

Copy link
Contributor

Copilot AI commented Feb 16, 2026

@dellaert I've opened a new pull request, #422, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Contributor

@varunagrawal varunagrawal left a comment

Choose a reason for hiding this comment

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

Some comments.

df = pd.read_csv('traj.csv')

input("Press ENTER to continue.")
# input("Press ENTER to continue.")
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we kill this?

p.stepSimulation()
time.sleep(1. / 240.)
t += 1. / 240.
# time.sleep(1. / 24.)
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe kill this as well?

void setMass(const double mass);
const gtsam::Pose3 &centerOfMass();
const gtsam::Matrix &inertia();
void setInertia(const gtsam::Matrix3 &inertia);
Copy link
Contributor

Choose a reason for hiding this comment

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

This can lead to potential issues later since our original plan was to write the code in a functional style, but this is making it imperative.

Mixing styles will make the code more spaghetti.

@dellaert dellaert merged commit 6e116ad into master Feb 17, 2026
3 of 6 checks passed
@dellaert
Copy link
Member Author

I'll incorporate the two minor comments in a follow-up PR (after #423 - identical tio this, is merged)

@dellaert dellaert deleted the fix/walking branch February 18, 2026 16:59
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.

3 participants