15 std::vector<double> s{0.0, 0.5, 1.0};
16 std::vector<double> amax{1.0, 1.0, 1.0};
17 std::vector<double> a_linearization{0.25, 0.25, 0.25};
29 copp3::Problem problem{
41 auto expert = copp3::solve_expert(problem, options);
44 std::cerr <<
"Clarabel did not return an accepted profile\n";
51 std::cout <<
"COPP3-SOCP done.\n";
52 std::cout <<
"profile length = " << expert.profile->len() <<
"\n";
53 std::cout <<
"t_final = " << time.t_final <<
"\n";
54 if (expert.objective_value)
56 std::cout <<
"objective = " << *expert.objective_value <<
"\n";
ConstraintsRef & add_constraint_1st(Span< const double > amax, std::size_t idx_s)
Add or tighten first-order constraints from a vector.
Robot facade backed by Rust Robot<CppRobotModel>.
ConstraintsRef constraints() noexcept
Return a borrowed raw constraint-buffer facade.
Robot & append_s(Span< const double > s)
Append strictly increasing path station samples.
COPP_API TimeProfile s_to_t_topp3(Span< const double > s, const Profile3rd &profile, double t0=0.0)
Convert a third-order profile to cumulative time t(s).
Objective Time(double weight=1.0)
Third-order convex-objective Clarabel SOCP backend with COPP objective support and expert objective/s...
Third-order endpoint boundary values.
Shared Clarabel options for COPP/TOPP SOCP-style solvers.