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

Merge from kolinguo/MPlib #78

Merged
merged 31 commits into from
Apr 4, 2024
Merged

Merge from kolinguo/MPlib #78

merged 31 commits into from
Apr 4, 2024

Conversation

KolinGuo
Copy link
Member

@KolinGuo KolinGuo commented Apr 1, 2024

From commit f27684a to 4b851d6 a total of 39 - 7 = 32 commits.

Except for the following commits:

  • b059d87 Support more optimizing planner; Add pathlen_obj_only parameter
    New planners include PRMstar, LazyPRMstar, RRTsharp, RRTXstatic, InformedRRTstar
    • Return planner path from MPlib.Planner.plan()
  • 39c6e88 Support RRT planner; Allow setting goal_bias for RRT planners
  • [Revisit] 13dd6a5 Overload mplib.pymp.fcl.collide/distance for ArticulatedModel
  • 83b7bed [FIXME] Enable creating World(Collision|Distance)Result from Python
  • 6a5c4c1 [FIXME] Add check_collision / distance_to_collision methods with sapien objects as input
  • 6be7a30 [FIXME] Bypass issue with >1 collision shapes per component
  • c647ab9 [FIXME] Bypass ground for PhysxCollisionShapePlane issue

KolinGuo added 23 commits March 27, 2024 22:56
Copied f27684a,4d9ac4b,081f4f2,e290a6b from kolinguo/MPlib

PlanningWorld changes:
* Replace updateAttached* methods with attach* methods
* Replace updatePointCloud() method with addPointCloud() method
* setQpos with articulation name instead of index
* Add request to collide() method
* Remove redundant data members
* Replace getArticulations() with getPlannedArticulations()
ArticulatedModel changes:
* Add name_ private data member with getter/setter methods
OMPLPlanner changes:
* Replace getArticulations() with getPlannedArticulations()
New features:
* Add AttachedBody class (with methods to update its global pose)
Copied 6a302d6 from kolinguo/MPlib

* Rename Planner.update_point_cloud()'s radius to resolution
Copied b282897 from kolinguo/MPlib

* ::pinocchio::randomConfiguration(model_) uses std::rand()
* Eigen uses std::rand()
* ompl uses std::mt19937, can be set with ::ompl::RNG::setSeed(seed)
* fcl uses std::mt19937, can be set with ::fcl::RNG<S>::setSeed(seed)
Copied c4e7efa from kolinguo/MPlib

* add planner.acm (AllowedCollisionMatrix)
* Update check_joint_limit() with short-circuit checking
* Refactor IK() and add return_closest parameter to return qpos closest
to start_qpos
* Minor refactor plan() and plan_screw()
Copied 965c79a,e290a6b from kolinguo/MPlib
RRTstar planner part is not copied

* Add PlanningWorld methods to get minimum distance to collision
* Add WorldDistanceResult struct
Copied a025b87 from kolinguo/MPlib
@KolinGuo KolinGuo requested a review from Lexseal April 1, 2024 19:03
@KolinGuo
Copy link
Member Author

KolinGuo commented Apr 1, 2024

TODO: @Lexseal

  • Fix all examples if they errored out
    • Fix examples/two_stage_motion.py

@KolinGuo KolinGuo linked an issue Apr 1, 2024 that may be closed by this pull request
include/mplib/core/attached_body.h Show resolved Hide resolved
include/mplib/core/attached_body.h Show resolved Hide resolved
include/mplib/planning_world.h Outdated Show resolved Hide resolved
mplib/examples/collision_avoidance.py Show resolved Hide resolved
mplib/planner.py Show resolved Hide resolved
@Lexseal
Copy link
Collaborator

Lexseal commented Apr 1, 2024

Will run and fix examples tmr since don't have GUI right now. Will also fix the typos and such later

@KolinGuo
Copy link
Member Author

KolinGuo commented Apr 2, 2024

Thanks for going over them! Let me know when you finish updating the examples

void PlanningWorldTpl<S>::attachObject(const std::string &name,
const std::string &art_name, int link_id,
const Vector7<S> &pose) {
auto obj = normal_object_map_.at(name);
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think maybe there is an even simpler user interface. Suppose the object is already in the scene, we can just ask the user to provide the name of the object and potentially the link the object is attached to. Then, we calculate the relative pose btw the link and the object.

@Lexseal
Copy link
Collaborator

Lexseal commented Apr 3, 2024

Other than the above comment, all examples are fixed and this is good to go!

@KolinGuo KolinGuo merged commit a2f3cab into main Apr 4, 2024
9 of 10 checks passed
@KolinGuo KolinGuo deleted the merge_kolin branch April 4, 2024 00:29
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.

Merge KolinGuo/MPlib to haosulab/MPlib
2 participants