111 fullJacobian = - _JObst;
123 fullb = - _dJdqObst + ( (_distObst - Eigen::VectorXd::Constant(_distObst.size(),
margin)) - _velObst *
hpos ) * 2/(
hpos*
hpos);
126 for (
int i=0; i<_distObst.size(); i++)
128 double tmax = 2*(_distObst(i) -
margin) / _velObst(i);
129 if ((0 <= tmax) && (tmax <=
hpos))
131 double ddqlim = - ( _velObst(i)*_velObst(i) ) / ( 2.*(_distObst(i) -
margin) );
132 if (fullb(i) >= ddqlim)
256 , _dynamicEquation(dynamicEquation)
272 , pimpl(new
Pimpl(model, dynamicEquation))
275 pimpl->_fullb.setZero(
_b.size());
298 _jacobian = - pimpl->_fullJacobian * pimpl->_dynamicEquation.getInertiaMatrixInverseJchiT();
299 _b = pimpl->_fullb - pimpl->_fullJacobian * pimpl->_dynamicEquation.getInertiaMatrixInverseLinNonLinGrav();
308 void ReducedContactAvoidanceFunction::doUpdateInputSizeBegin()
317 void ReducedContactAvoidanceFunction::doUpdateInputSizeEnd()
320 pimpl->_fullb.setZero(
_b.size());
331 , _is_connected(false)
360 _contactAvoidanceFunction->
setMargin(newMargin);
369 throw std::runtime_error(
"[ContactAvoidanceConstraint::updateContactInformation] Constraint is not connected to the controller!");
376 if (useReducedProblem)
377 f = createReducedContactAvoidanceFunction(_model, dynamicEquation);
379 f = createFullContactAvoidanceFunction(_model);
382 _is_connected =
true;
390 _is_connected =
false;
396 return _contactAvoidanceFunction;
402 return _contactAvoidanceFunction;
Constraint< LinearFunction > LinearConstraint
Optimization-based Robot Controller namespace. a library of classes to write and solve optimization p...
boost::shared_ptr< Constraint< LinearFunction > > _constraint
void invalidateb(int timestamp)
This class represents a variable in a mathematical sense.
Create a linear function that represents the dynamic equation of motion.
void changeFunctionDimension(int newDimension)
void connect(Derived &object, void(Base::*newCallback)(int)) const
Call this method to register a non-static method as a callback.