TrajectoryParametrization.h
Go to the documentation of this file.
1/**
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Fabian Reister ( fabian dot reister at kit dot edu )
17 * @date 2026
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#pragma once
23
24#include <memory>
25
27
29{
30
31 /**
32 * @brief Assigns the velocities along an already planned path.
33 *
34 * The global planner decides *where* the robot goes; this decides *how fast*. Splitting the
35 * two lets the speed profile answer to the platform's dynamics -- motor torque, the device
36 * command ramp -- which the planner knows nothing about.
37 *
38 * Implementations are constructed by `fac::TrajectoryParametrizationFactory` from
39 * `core::GeneralConfig::parametrization`.
40 */
42 {
43 public:
44 virtual ~TrajectoryParametrization() = default;
45
46 /**
47 * @brief Re-assign the velocities of `trajectory` in place.
48 *
49 * @param startVelocity Speed the robot already carries [mm/s]. The caller passes the
50 * measured platform speed when picking a trajectory up mid-motion,
51 * and `GeneralConfig::boundaryVelocity` when starting from rest.
52 *
53 * @throws std::runtime_error if the implementation is unavailable in this build.
54 */
55 virtual void apply(core::GlobalTrajectory& trajectory, float startVelocity) const = 0;
56 };
57
58 using TrajectoryParametrizationPtr = std::shared_ptr<TrajectoryParametrization>;
59
60} // namespace armarx::navigation::algorithms
Assigns the velocities along an already planned path.
virtual void apply(core::GlobalTrajectory &trajectory, float startVelocity) const =0
Re-assign the velocities of trajectory in place.
This file is part of ArmarX.
std::shared_ptr< TrajectoryParametrization > TrajectoryParametrizationPtr