personalrobotics / aikido

Artificial Intelligence for Kinematics, Dynamics, and Optimization
https://personalrobotics.github.io/aikido/
BSD 3-Clause "New" or "Revised" License
213 stars 30 forks source link

Clean up robot/util. #588

Closed sniyaz closed 3 years ago

sniyaz commented 4 years ago

This PR cleans up robot/util by deleting all of the planTo* methods. This requires us to rewrite the corresponding methods in ConcreteRobot and ConcreteManipulator to reroute through the new Planner API.

This PR also removes all CRRT functionality in both ConcreteRobot and ConcreteManipulator. This will be added back later once we actually decide how to integrate CRRT and AIKIDO. None of our demo code should rely on CRRT, so this is fine.

NOTE: This PR depends on https://github.com/personalrobotics/aikido/pull/587 by @brianhou, due to the new planner adapter.


Before creating a pull request

Before merging a pull request

sniyaz commented 4 years ago

@brianhou I tried to handle https://github.com/personalrobotics/aikido/issues/447 by enforcing that any DART planner (and only a DART planner) has to satisfy these two invariants when plan() is called:

  1. The MetaSkeleton is locked during planning.
  2. The MetaSkeleton is reset after planning.

The only DART planner class that didn't need to be updated was the VFP offset planner (since the core VFP code does both of these anyway). LMK what you think of this solution: if we're happy with it, I can document this new invariant for DART planners somewhere.

This also means we don't have to worry about locking or saving state anywhere in ConcreteRobot or ConcreteManipulator, which is nice. I've taken that out.

Also, for what it's worth I tested simple_trajectories with all of these changes and things seem to work fine (so at least planToConfiguration isn't broken).

aditya-vk commented 3 years ago

Looks good to me. Has it been tested through libherb and herb3_demos to ensure everything works fine?

sniyaz commented 3 years ago

@aditya-vk Yup! The only other thing we're waiting on are the corresponding ADA changes. I'll chat with @egordon about those.