smooth
A C++ library for Lie theory
|
Evaluation of cumulative Lie group splines. More...
#include <cassert>
#include <optional>
#include "../detail/traits.hpp"
#include "../lie_groups.hpp"
#include "../polynomial/basis.hpp"
#include "common.hpp"
#include "detail/cumulative_spline_impl.hpp"
Go to the source code of this file.
Functions | |
template<int K, LieGroup G> requires (K > 0) | |
SMOOTH_BEGIN_NAMESPACE G | cspline_eval_vs (std::ranges::sized_range auto &&vs, const MatrixType auto &Bcum, Scalar< G > u, OptTangent< G > vel={}, OptTangent< G > acc={}, OptTangent< G > jer={}) noexcept |
Evaluate a cumulative spline of order \(K\) from differences. | |
template<int K, LieGroup G> requires (K > 0) | |
SplineJacobian< G, K - 1 > | cspline_eval_dg_dvs (std::ranges::sized_range auto &&vs, const MatrixType auto &Bcum, const Scalar< G > &u, OptSplineJacobian< G, K - 1 > dvel_dvs={}, OptSplineJacobian< G, K - 1 > dacc_dvs={}) noexcept |
Derivatives of a cumulative spline w.r.t. the differences. | |
template<int K, std::ranges::sized_range R, LieGroup G = std::ranges::range_value_t<R>> requires (K > 0) | |
G | cspline_eval_gs (R &&gs, const MatrixType auto &Bcum, Scalar< G > u, OptTangent< G > vel={}, OptTangent< G > acc={}, OptTangent< G > jer={}) noexcept |
Evaluate a cumulative basis spline of order K from coefficients. | |
template<int K, std::ranges::sized_range R, LieGroup G = std::ranges::range_value_t<R>> requires (K > 0) | |
SplineJacobian< G, K > | cspline_eval_dg_dgs (R &&gs, const MatrixType auto &Bcum, const Scalar< G > &u, OptSplineJacobian< G, K > dvel_dgs={}, OptSplineJacobian< G, K > dacc_dgs={}) noexcept |
Derivatives of a cumulative spline w.r.t. the coefficients. | |
Evaluation of cumulative Lie group splines.
Definition in file cumulative_spline.hpp.
|
noexcept |
Derivatives of a cumulative spline w.r.t. the coefficients.
\[ \mathrm{d}^r \left( \prod_{i=1}^{K} \exp ( \tilde B_i(u) * v_i ) \right)_{g_0, \ldots, g_k} \]
where \( \tilde B_i \) are cumulative basis functins and \( v_i = g_i - g_{i-1} \).
K | spline order (number of basis functions) |
[in] | gs | LieGroup control points \( g_0, g_1, \ldots, g_K \) (must be of size K + 1) |
[in] | Bcum | matrix of cumulative base coefficients (size K+1 x K+1) |
[in] | u | time point to evaluate spline at (clamped to [0, 1]) |
[out] | dvel_dgs | derivatives of velocity w.r.t. gs |
[out] | dacc_dgs | derivatives of acceleration w.r.t. gs |
|
noexcept |
Derivatives of a cumulative spline w.r.t. the differences.
\[ \mathrm{d}^r \left( \prod_{i=1}^{K} \exp ( \tilde B_i(u) * v_i ) \right)_{v_1, \ldots, v_k} \]
where \( \tilde B_i \) are cumulative basis functins and \( v_i = g_i - g_{i-1} \).
K | spline order (number of basis functions) |
G | lie group type |
[in] | vs | range of differences v_i (must be of size K) |
[in] | Bcum | matrix of cumulative base coefficients (size K+1 x K+1) |
[in] | u | time point to evaluate spline at (clamped to [0, 1]) |
[out] | dvel_dvs | derivatives of velocity w.r.t. vs |
[out] | dacc_dvs | derivatives of acceleration w.r.t. vs |
|
inlinenoexcept |
Evaluate a cumulative basis spline of order K from coefficients.
\[ g = g_0 * \prod_{i=1}^{K} \exp ( \tilde B_i(u) * v_i ), \]
where \( \tilde B \) are cumulative basis functions and \( v_i = g_i - g_{i-1} \).
K | spline order |
[in] | gs | LieGroup control points \( g_0, g_1, \ldots, g_K \) (must be of size K + 1) |
[in] | Bcum | matrix of cumulative base coefficients (size K+1 x K+1) |
[in] | u | time point to evaluate spline at (clamped to [0, 1]) |
[out] | vel | calculate first order derivative w.r.t. u |
[out] | acc | calculate second order derivative w.r.t. u |
[out] | jer | calculate third order derivative w.r.t. u |
|
inlinenoexcept |
Evaluate a cumulative spline of order \(K\) from differences.
\[ g = \prod_{i=1}^{K} \exp ( \tilde B_i(u) * v_i ) \]
K | spline order (number of basis functions) |
G | lie group type |
[in] | vs | range of differences v_i (must be of size K) |
[in] | Bcum | matrix of cumulative base coefficients (size K+1 x K+1) |
[in] | u | time point to evaluate spline at (clamped to [0, 1]) |
[out] | vel | calculate first order derivative w.r.t. u |
[out] | acc | calculate second order derivative w.r.t. u |
[out] | jer | calculate third order derivative w.r.t. u |