Skip to content

pyQpController is the proof of concept simulator attached to the paper: Impact-Friendly Robust Control Design with Task-Space Quadratic Optimization. Examples are provided to brew your own multi-objective robot controllers in python.

License

LGPL-3.0 and 2 other licenses found

Licenses found

LGPL-3.0
LICENSE
Unknown
license.bash
Unknown
license-txt
Notifications You must be signed in to change notification settings

wyqsnddd/pyQpController

Repository files navigation

Impact-friendly QP controller

Impact-friendly QP controller Impact-aware QP controller

pyQpController is the proof of concept simulator attached to the paper: Impact-Friendly Robust Control Design with Task-Space Quadratic Optimization pyQpController is based on the python interface of the DART simulator.

We explicitly introduce discrete impact dynamics model into the QP-based controllers to generate robot motions that are robust to impact-induced state jumps in the joint velocities and joint torques. Our simulations, validate that our proposed impact-friendly QP controller is robust to contact impacts, shall they be expected or not. Therefore, we can exploit it for establishing contacts with high velocities, and explicitly generate task-purpose impulsive forces.

Recently we extended the concept for floating-based robot, i.e. a HRP4 humanoid robot, where we successfully applied impact at 0.35 m/s and achieved impulsive force of 133 N without breaking the hardware or losing balance. The C++ implementation is available at mc_impact_pusher.

1. Running guide:

We can find a quick start from the Running guide

2. Implementation:

Interested readers can find the implementation details from the following python files. Basically each inequality constraint "G x <= h " would output the G and h matrices.

The similar results could be found for the equality constraint (21). Each task in the folder "manipulatorTasks" outputs Q and P matrices expanded from the 2-norm with respect to the decision variables.

Equations in the paper Simulation code
Joint position limits (6) jointPositionLimits.py
Joint velocity limits (7) jointVelocityConstraints.py
Joint torque limits (8) torqueLimitConstraints.py
impact joint position limits (15) robustJointPositionLimits.py
impact joint velocity limits (16) robustJointVelocityConstraints.py
impulse torque constraint (18) impulseTorqueLimitConstraints.py
force-aware torque constraint (19) torqueLimitConstraints.py
impact dynamics equation (21) impactConstraints.py
impulsive force maximization (23) maxImpactForceTask.py
Generic force control task admittanceTask.py

3. Figure re-generation:

We save the simulation data as "*.npz" files. If one wants to re-generate the figures, we can check the plotting commands.

About

pyQpController is the proof of concept simulator attached to the paper: Impact-Friendly Robust Control Design with Task-Space Quadratic Optimization. Examples are provided to brew your own multi-objective robot controllers in python.

Topics

Resources

License

LGPL-3.0 and 2 other licenses found

Licenses found

LGPL-3.0
LICENSE
Unknown
license.bash
Unknown
license-txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages