RobWorkProject
24.12.4-
|
#include <QPController.hpp>
Public Member Functions | |
QPController (double h, const rw::kinematics::State &state, rw::models::Device *device) | |
Construct QPController object. More... | |
virtual | ~QPController () |
destructor | |
rw::math::Q | solve (const rw::math::Q &q, const rw::math::Q &dq, const rw::math::VelocityScrew6D<> &tcpscrew) |
Computes joint velocities for a tool velocity. More... | |
The QPController provides an visual servoing control scheme, which is based on quadratic optimization. The method computes the \(\mathbf{\dot{q}}\) minimizing \(\|\mathbf{J}\mathbf{\dot{q}}-\mathbf{\dot{x}}\|^2\), subject to the joint position, velocity and acceleration limits.
See the paper: L.-P. Ellekilde, P. Favrhold, M. Paulin and H.G. Petersen, "Robust Control for High-Speed Visual Servoing Applications", To appear in International Journal for Advanced Robotic Systems, vol. 4, no. 3, 2007.
QPController | ( | double | h, |
const rw::kinematics::State & | state, | ||
rw::models::Device * | device | ||
) |
Construct QPController object.
h | [in] step-size to use |
state | [in] state of the workcell |
device | [in] device to control |
rw::math::Q solve | ( | const rw::math::Q & | q, |
const rw::math::Q & | dq, | ||
const rw::math::VelocityScrew6D<> & | tcpscrew | ||
) |
Computes joint velocities for a tool velocity.
The method provides the, in a least square sense, optimal joint velocity for the specified tool velocity screw. That is the \(\mathbf{\dot{q}}\) minimizing \(\|\mathbf{J}\mathbf{\dot{q}}-\mathbf{\dot{x}}\|^2\), subject to the joint position, velocity and acceleration limits.
q | [in] current device joint configuration |
dq | [in] current device joint velocity |
tcpscrew | [in] desired velocity screw of tcp |