No version for distro humble showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro jazzy showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro kilted showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro rolling showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro ardent showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro bouncy showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro crystal showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro eloquent showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro dashing showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro galactic showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro foxy showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro iron showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro lunar showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro jade showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro indigo showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro hydro showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro kinetic showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange

No version for distro noetic showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

qpmad package from qpmad repo

qpmad

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 1.4.0
License Apache 2.0
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/asherikov/qpmad.git
VCS Type git
VCS Version master
Last Updated 2025-01-23
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

qpmad QP solver

Additional Links

Maintainers

  • Alexander Sherikov

Authors

No additional authors.

qpmad

CI status Debian package
Build Status Latest version of 'qpmad' @ Cloudsmith

Eigen-based, header-only C++ implementation of Goldfarb-Idnani dual active set algorithm for quadratic programming. The package is ROS compatible.

The solver is optimized for performance, for this reason some of the computations are omitted as described below. See https://github.com/asherikov/qpmad_benchmark for comparison with qpOASES and eiQuadProg.

Contents

Links =====

  • Doxygen: https://asherikov.github.io/qpmad/
  • GitHub: https://github.com/asherikov/qpmad

Features: =========

  • Double sided inequality constraints: lb <= A*x <= ub. Such constraints can be handled in a more efficient way than lb <= A*x commonly used in other implementations of the algorithm. A can be sparse.

  • Simple bounds: lb <= x <= ub.

  • Lazy data initialization, e.g., perform inversion of the Cholesky factor only if some of the constraints are activated.

  • Works with positive-definite problems only (add regularization if necessary).

  • Performs in-place factorization of Hessian and can reuse it on subsequent iterations. Can optionally store inverted Cholesky factor in the Hessian matrix for additional performance gain.

  • Does not compute value of the objective function.

  • Does not compute/update Lagrange multipliers for equality constraints.

  • Three types of memory allocation:

    • on demand (default);
    • on compile time using template parameters;
    • dynamic preallocation using reserve() method.

Dependencies: =============

  • C++14 compatible compiler
  • cmake >= 3.0
  • Eigen >= 3.3.0
  • Boost (for C++ tests)

Notes: ======

  1. Before computing the full step length I check that the dot product of the chosen constraint with the step direction is not zero instead of checking the norm of the step direction. The former approach makes more sense since the said dot product appears later as a divisor and we can avoid computation of a useless norm.

  2. I am aware that activation of simple bounds zeroes out parts of matrix ‘J’. Unfortunately, I don’t see a way to exploit this on modern hardware –

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ariles_ros

next

1.4.0 (2025-01-23)

1.3.0 (2022-12-10)

1.2.0 (2022-11-20)

  • Added [reserve()]{.title-ref} method
  • Added limited sparsity support
  • Fixed unnecessary memory allocations

1.1.1 (2021-12-24)

  • Bugfixes
  • Binary debian package generation

1.1.0 (2021-01-18)

  • Use Eigen Cholesky decomposition instead of a custom one, detect semi-definite Hessians. This change introduces dependency on Eigen 3.3, use older version of [qpmad]{.title-ref} if not available.
  • Refactor API to avoid instantiation of dynamic Eigen matrices and vectors.
  • Allow specification of scalar type and problem dimensions at compilation time.
  • The source code is now dependent on C++11 features.
  • Added methods that expose number of iterations and dual variables.
  • Added optional hot-starting with inverted Cholesky factor.
  • DANGER: Solver does not perform Cholesky factorization in some trivial cases anymore, i.e. the Hessian is not necessarily modified. Use [getHessianType()]{.title-ref} to get the correct Hessian type when using solver with constant Hessian.
  • DANGER: Solver does not return error codes anymore, exceptions are used instead in order to make error handling consistent (some errors used to be exceptions in older versions as well). The return codes are: OK, MAXIMAL_NUMBER_OF_ITERATIONS.

1.0.2 (2019-12-31)

  • Added missing dependency in package.xml.

1.0.1 (2019-12-24)

  • Doxygen documentation.
  • Initial ROS release.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Name
cmake
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qpmad at Robotics Stack Exchange