Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements to batch estimator #142

Closed
wants to merge 84 commits into from

Conversation

thowell
Copy link
Collaborator

@thowell thowell commented Aug 2, 2023

A collection of improvements and fixes are implemented for the batch estimator.

  • A virtual Estimator class is implemented to enable a unified interface for different estimators in MJPC. The batch estimator inherits from this class.
  • Improvements to the Batch estimator include: additional settings, cost scaling based on model time step, private members and functions, curve search, additional unit tests, additional C++ functionality exposed to Python interface, solve status, position-based sensors at the first time step

Additional changes:

  • Modifications to State, including setting specific subsets of the state (eg. qpos or mocap)
  • Additions to many of the task xmls to include settings to be parsed by an Estimator
  • Minor changes to Planner::GUI and Planner::Plots interfaces
  • Planar manipulator task is added
  • LinearSolve removed (this was unused)
  • Additional utility functions

Next:

  • Extended and Unscented Kalman Filters are implemented and tested in this branch
  • Modifications to app.h/cc and agent.h/cc are ready to enable Estimators to run in the MJPC GUI similar to Planners
  • Batch estimator in filter mode also works in the MJPC GUI (for a fixed estimation horizon for now)
  • Python + gRPC for Kalman estimator

Todo (?)

  • After setting up the Python + gRCP (via python setup.py install) it is not possible to make changes to the C++ code and rebuild mjpc without deleting the build

@thowell thowell mentioned this pull request Aug 2, 2023
Copy link
Contributor

Choose a reason for hiding this comment

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

can you mark it as forked (rather than a new file) so we can see the changes?

@@ -14,6 +14,16 @@

#include "mjpc/agent.h"

#include <absl/container/flat_hash_map.h>
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's not change the order of the headers.

Copy link
Contributor

Choose a reason for hiding this comment

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

the whole file is marked "new", and without seeing what changed it's too big to review from scratch...

Copy link
Contributor

Choose a reason for hiding this comment

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

Also marked "new".

Copy link
Contributor

Choose a reason for hiding this comment

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

currently marked "new".

Copy link
Contributor

Choose a reason for hiding this comment

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

marked "new".

@thowell thowell closed this Aug 2, 2023
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