personalrobotics / prpy

Python utilities used by the Personal Robotics Laboratory.
BSD 3-Clause "New" or "Revised" License
62 stars 19 forks source link

Added missing SetActiveDOF in VectorField. #270

Closed psigen closed 8 years ago

psigen commented 8 years ago

This fixes an ongoing issue with VectorFieldPlanner immediately failing in certain cases (which turned out to be cases where the Active DOFs set on the robot did not match the Active Manipulator).

I also removed some unused imports.

mkoval commented 8 years ago

This is not a bug. Active DOFs and the active manipulator are independent:

  1. active DOFs represent the DOFs that may be modified by the planner
  2. the active manipulator defines the end-effector frame that is used in the objective function.

It's perfectly reasonable to set the active DOFs to a subset of the active manipulator's GetArmIndices() if you only want to plan for those DOFs. It's also valid, although not useful, to set the active DOFs to joints that do not affect the end effector.

If the planner does not work when these are not equal, which is very possible, then that is a bug. We should not work around the bug by setting the active DOFs to those of the active manipulator.

mkoval commented 8 years ago

@psigen What was our conclusion on this?

psigen commented 8 years ago

I need to refactor this to do a check instead of setting the DOFs.

psigen commented 8 years ago

This PR is being used for reference, but should not be merged.