Replies: 1 comment
-
Correct.
I think this would be possible, but I imagine it would be easier to implement at a point in the future where we are loading profiles from plugins. Let's revisit this idea then and see how we can incorporate it |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Is your feature request related to a problem? Please describe.
Unless I am misunderstanding something, the new implementation of profiles for Descartes prevents passing a function for edge and state evaluators for the sake of making the profile serializable to YAML. I understand this decision but was wondering if the default profile should contain more control over the edge evaluator. A popular method in the past was to assign different cost weights to each joint to favor motion of one joint or another. (See in a previous version of Scan N Plan here: https://github.com/ros-industrial-consortium/scan_n_plan_workshop/blob/e6cd3220e5064f4e2e654731ce4a2799c8d8959b/snp_motion_planning/src/planner_profiles.hpp#L35.)
It's my understanding that currently to add this feature one would need to make a class inherit from
DescartesDefaultMoveProfile
and overridecreateEdgeEvaluator
and potentially adding a new vector object to the MoveProfile to do this, meaning they would also have to add any other implementation associated with the new parameter.Describe the solution you'd like
Add the ability to assign weights to joints natively to the profile, although I understand the complexity given potentially a variable number of joints.
Describe alternatives you've considered
We could have several default edge and state evaluators (there actually already are a few in Descartes) and then make all of those plugins that can be serialized to/from yaml and have the
createXEvaluator
methods dynamically load these plugins intoCompoundXEvaluator
s. This way I think it would be possible to have user created evaluators that can automatically be inherited into theDescartesDefaultMoveProfile
without having to implement a whole profile classAdditional context
No response
Beta Was this translation helpful? Give feedback.
All reactions