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

Adding position constraint with slack #25

Open
ahundt opened this issue Mar 11, 2017 · 1 comment
Open

Adding position constraint with slack #25

ahundt opened this issue Mar 11, 2017 · 1 comment

Comments

@ahundt
Copy link

ahundt commented Mar 11, 2017

I'm planning to add a position based constraint with a configurable amount of slack permitted.
Is something similar to this covered by objects like MotionConstr? The docs are a bit sparse in that file.

Additionally, is there any relevant advice or limitations I should know before I create the changes?

@haudren
Copy link
Collaborator

haudren commented Mar 13, 2017

Depending on what you want to do, there might be some way to do it already:

  • If you want to add a position constraint, using a ContactConstr is actually probably the way to go, it doesn't matter if this contact can produce contact forces or not. By using a DofContact and possibly a PositionTask, you can have a moving contact, blocked in some DoF, and moving in others. However, you cannot be strict on the range allowed.
  • If you want to be able to strictly move in some workspace, then I would recommend to implement a new BodyInPlaneConstr, based on ComIncPlaneConstr. This constraint allows to constraint the CoM to a convex region defined by its hyperplanes (i.e. inequalities), you would basically need to replace CoM position by bodyPosW[i] and CoMJacobian by a regualr Jacobian.
  • If you really want to add a PositionConstr with some slack allowed, we would need to modify the underlying structure of the solver to allow for easy adding/removal of variables. It is possible for now, but definitely not practical.

Cheers,

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

No branches or pull requests

2 participants