smooth
A C++ library for Lie theory
Loading...
Searching...
No Matches
reparameterize.hpp
Go to the documentation of this file.
1// Copyright (C) 2021-2022 Petter Nilsson. MIT License.
2
3#pragma once
4
10#include "spline.hpp"
11
12SMOOTH_BEGIN_NAMESPACE
13
17// clang-format off
18template<typename S>
19concept SplineLike =
22{
23 {s.t_min()} -> std::convertible_to<double>;
24 {s.t_max()} -> std::convertible_to<double>;
25 {s(t, vel, acc)};
26};
27// clang-format on
28
51 const SplineLike auto & spline,
52 const auto & vel_min,
53 const auto & vel_max,
54 const auto & acc_min,
55 const auto & acc_max,
56 const double start_vel = 1,
57 const double end_vel = std::numeric_limits<double>::infinity(),
58 const std::size_t N = 100);
59
60SMOOTH_END_NAMESPACE
61#include "detail/reparameterize_impl.hpp"
Single-parameter Lie group-valued function.
Definition spline.hpp:28
Class-external Lie group interface defined through the traits::lie trait class.
Definition lie_group.hpp:33
SplineLike concept.
Eigen::Vector< Scalar< M >, Dof< M > > Tangent
Tangent as a Dof-length vector.
Definition manifold.hpp:106
Spline< 2, double > reparameterize_spline(const SplineLike auto &spline, const auto &vel_min, const auto &vel_max, const auto &acc_min, const auto &acc_max, const double start_vel=1, const double end_vel=std::numeric_limits< double >::infinity(), const std::size_t N=100)
Reparameterize a spline to satisfy velocity and acceleration constraints.
Piecewise polynomial splines on lie groups.