Ranking IK Solutions (#423)
* init
* Fixing const-correctness in state space
* update structure
* make format
* source for base ranking class
* make format
* add general sorting
* make format
* preallocate size of ranking vector
* nit todo removed
* remove unnecessary headers + new strategies
* make format
* remove redundant virtual keyword
* add FIFO to ranking strategy
* add source scripts for ranking strategies
* assign the base class members first
* make format
* add sources to read later
* correct macro for header-guard
* tests for FIFO + cleanup
* Fixing const-correctness of StateHandle
* Fix implicit conversion of StateHandle to State*
* Undo unnecessary changes
* Remove incorrect comment
* Add clone to StateSpace
* Format code
* test for the bug
* bug fix in adding IK solutions
* comment out unused variables
* nit comments
* Update changelog
* Update CHANGELOG.md
* WIP: Random restructuring to test stuff
* change API
* make format
* nominal configuration strategy
* test for nominal configuration strategy
* restructure the code into distance
* enable base class and nominal configuration ranker
* bring back test for nominal config ranker + check distances
* simplify the test script
* bring bakc joint avoidance ranker
* simplify the code
* make format
* clean up test scripts
* joint avoidance strategy
* consider cyclic joints
* make format
* make tests uniform
* update log
* simplify and address PR comments
* modify joint avoidance. TODO: change to indices of unbounded limits?
* modify constructor to take nominal configuration as parameter
* make format
* add docstring
* work with indices
* make format
* convenience function to get state without creating it explicitly
* simplify code
* make format
* update log
* edit docstrings
* use cartesianproduct state space
* add docstrings
* create limits states in ctr; use cartesian sspace.
* make format
* move helper function to anonymous namespace
* rename variables and functions for increased clarity
* make format
* simplify tests scripts
* remove unnecessary clone
* make format
* take in scoped states as expected during planning
* make format
* remove function outside scope of the PR
* remove getter for statespace; use MetaSkeletonStateSpace
* remove const-cast
* make format
* address concerns over state; cleanup
* remove unnecessary header
* remove unnecesary header
* make ranking efficient; address nit comments
* make format
* Refactor and fix weird bug.
Fix issues discovered during demo. (#442)
* Test with COnfitoConf and seems to work!
* Add getTrajectoryPostProcessor() method to ConcreteRobot class.
* Make ConfigurationToEndEffectorOffset and ConfigurationToTSR problems also use ScopedState internally.
* HACK: Make ConfigurationToEndEffectorOffset getDirection() method return bodyNode direction if passed direction was zero vector.
* Fix ConfigurationToConfiguration_to_ConfigurationToTSR adapter now that problems can store a cloned, scoped version of the passed state.
* HACK: Fix hack for returning current BN direction in Offset problem (for moving straight).
* HACK: Get around HERB hand BN not being in arm metaSkeleton, and nullptr RNG.
* HACK: Update hacks to work with MAGI.
* HACK: Got left out of last commit.
* HACK: Cap samples in DART TSR adapter. Use better random seed.
* Make getTrajectoryPostProcessor take needed args.
* Make getTrajectoryPostProcessor take constraint checking params.
* Do BN check in TSR adapter correctly by using the skeleton.
* Add RNG to ConfigurationToConfiguration_to_ConfigurationToTSR.
* Remove startState from DART problems. Need to fix tests.
* Add DART ConfigurationToConfigurationPlanner.
* Add new adapter that turns non-DART ConfTOConf planner into a DART one.
* Update tests for removing startState from DART problems.
* Run make format on last commit.
* Fix tests from adding RNG to TSR adapter.
* Fix naming ambiguity that made TSR adapter not build.
* Use boost:none instead of zero vector to get straight direction in offset problem.
* Make Offset problem take optional as reference.
* Clean up Offset problem comments and restore zero vector check.
* Remove TSR adapter hack to prevent inf loops.
* HACK BODY NODE FALLS OFF
* HACK HACK HACK.
* HACK HACK JH
* HACK: IKJDSHFKJDSHFKJDSHFKDSHFLJDHFSKJHDSFKJDHF
* Revert "HACK: IKJDSHFKJDSHFKJDSHFKDSHFLJDHFSKJHDSFKJDHF"
This reverts commit 40482d34665066af4f79217c72c83fe180b67f2d.
* Revert "HACK HACK JH"
This reverts commit 42cd6554cf210645bbbfa6ead0c78a492e46a88d.
* Revert "HACK HACK HACK."
This reverts commit 85eee6653e329e661877ed780ecd39a71ef0f910.
* Revert "HACK BODY NODE FALLS OFF"
This reverts commit 40b120754b0c1c7a6c6bc24139428afbd2a8dec4.
* Update ConfigurationToEndEffectorOffset to use multiple constructors.
* Update getStartState in ConfigurationToEndEffectorOffset.
* Update ConfigurationToEndEffectorPose to use two constructors and restore getStartState. Fix state passing in ConfigurationToEndEffectorOffset.
* Update ConfigurationToTSR to use multiple constructors and restore getStartState.
* Update TSR adapter to just use getStartState().
* Pass start state to VFP.
* Revert "Update TSR adapter to just use getStartState()."
This reverts commit 976b4434b41027bbbbf1a69df93247336649287d.
* UpdateDART planning problems to not return dangling pointers with getStateState().
* Draft dart/ConfigurationToConfiguration.hpp
* Draft dart/ConfigurationToConfiguration.cpp
* Make adapter use right ConfigToConfig Problem.
* Trim fat in new getTrajectoryPostProcessor method.
* Fix tests with what we have now.
* Run make format.
* Make Planner take RNG.
* Add rng arg to SingleProblemPlanner and ConfigurationToConfigurationPlanner constructors to enable future OMPL planners to take RNG.
* Use delegate RNG in TSR adapter. Make tests build again.
* Move getEndEffectorDirection into robot/util
* Create planner/dart/util and put getEndEffectorDirection there instead.
* Change Planner to take raw RNG pointer, and getRng to return this raw pointer.
* Respond to nits.
* Fix RNG destruction in Planner class.
* Repond to latest review comments.
* Remove some std::moves to fix RVO build issue with OSX.
* Nab one std::move missed by the last commit..
* Use getState in DART planning problems.
* Remove uneeded aikido::'s in ConfigurationToConfiguration_to_ConfigurationToConfiguration.
* Run make format.
* Respond to all but one of Gilwoo's nits.
* Respond to some more nits.