15 std::vector<double> s{0.0, 0.25, 0.5, 0.75, 1.0};
16 std::vector<double> upper{10.0, 10.0};
17 std::vector<double> lower{-10.0, -10.0};
23 return std::vector<copp::Jet3>{
35 .set_q_from_path_2nd(path, 0, s.size())
36 .add_velocity_limits(upper, lower, 0, s.size())
37 .add_acceleration_limits(upper, lower, 0, s.size())
38 .add_torque_limits(upper, lower, 0, s.size());
44 copp2::Problem problem{
59 auto expert = copp2::solve_expert(problem, options);
62 std::cerr <<
"Clarabel did not return an accepted profile\n";
68 std::cout <<
"accepted a length = " << expert.a->size() <<
"\n";
69 std::cout <<
"t_final = " << time.t_final <<
"\n";
70 std::cout <<
"objective = " << *expert.objective_value <<
"\n";
static Path from_parametric(PathParametric parametric, double s_min, double s_max)
Build a path from a scalar-parametric formula.
COPP_API TimeProfile s_to_t_topp2(Span< const double > s, Span< const double > a, double t0=0.0)
Convert a second-order path profile a(s) = ds/dt squared to t(s).