From f8bd60de7e8ec24f6cf9d4ef70dfc7581dfbad96 Mon Sep 17 00:00:00 2001 From: pFernbach <pierre.fernbach@gmail.com> Date: Wed, 15 Jan 2020 16:04:33 +0100 Subject: [PATCH] [C++] update to change in Bezier constructor : require T_min before T_max --- include/hpp/bezier-com-traj/utils.hh | 2 +- src/computeCOMTraj.cpp | 4 ++-- src/solve_0_step.cpp | 4 ++-- tests/test-bezier-symbolic.cpp | 26 +++++++++++++------------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/hpp/bezier-com-traj/utils.hh b/include/hpp/bezier-com-traj/utils.hh index 9c20d04..94ec423 100644 --- a/include/hpp/bezier-com-traj/utils.hh +++ b/include/hpp/bezier-com-traj/utils.hh @@ -141,7 +141,7 @@ Bezier bezier_com_traj::computeBezierCurve(const ConstraintFlag& flag, const dou i++; } } - return Bezier(wps.begin(), wps.end(), T); + return Bezier(wps.begin(), wps.end(), 0.,T); } #endif diff --git a/src/computeCOMTraj.cpp b/src/computeCOMTraj.cpp index da5036f..08fed94 100644 --- a/src/computeCOMTraj.cpp +++ b/src/computeCOMTraj.cpp @@ -354,9 +354,9 @@ std::pair<MatrixXX, VectorX> computeConstraintsContinuous(const ProblemData& pDa // create the curves for c and w with symbolic waypoints (ie. depend on y) bezier_wp_t::t_point_t wps_c = computeConstantWaypointsSymbolic(pData, T); bezier_wp_t::t_point_t wps_w = computeWwaypoints(pData, T); - bezier_wp_t c(wps_c.begin(), wps_c.end(), T); + bezier_wp_t c(wps_c.begin(), wps_c.end(),0., T); bezier_wp_t ddc = c.compute_derivate(2); - bezier_wp_t w(wps_w.begin(), wps_w.end(), T); + bezier_wp_t w(wps_w.begin(), wps_w.end(),0., T); // for each splitted curves : add the constraints for each waypoints const long int num_ineq = computeNumIneqContinuous(pData, Ts, (int)c.degree_, (int)w.degree_, useDD); diff --git a/src/solve_0_step.cpp b/src/solve_0_step.cpp index 423667e..77a4322 100644 --- a/src/solve_0_step.cpp +++ b/src/solve_0_step.cpp @@ -196,7 +196,7 @@ void computeC_of_T(const ProblemData& pData, const std::vector<double>& Ts, Resu wps.push_back(pData.dc0_ * Ts[0] / 3 + pData.c0_); wps.push_back(res.x.head(3)); wps.push_back(res.x.head(3)); - res.c_of_t_ = bezier_t(wps.begin(), wps.end(), Ts[0]); + res.c_of_t_ = bezier_t(wps.begin(), wps.end(),0., Ts[0]); } void computedL_of_T(const ProblemData& pData, const std::vector<double>& Ts, ResultDataCOMTraj& res) { @@ -205,7 +205,7 @@ void computedL_of_T(const ProblemData& pData, const std::vector<double>& Ts, Res wps.push_back(3 * (res.x.tail(3) - pData.l0_)); wps.push_back(3 * (-res.x.tail(3))); wps.push_back(Vector3::Zero()); - res.dL_of_t_ = bezier_t(wps.begin(), wps.end(), Ts[0], 1. / Ts[0]); + res.dL_of_t_ = bezier_t(wps.begin(), wps.end(),0.,Ts[0], 1. / Ts[0]); } else res.dL_of_t_ = bezier_t::zero(3,Ts[0]); } diff --git a/tests/test-bezier-symbolic.cpp b/tests/test-bezier-symbolic.cpp index 88beaa9..94c3d87 100644 --- a/tests/test-bezier-symbolic.cpp +++ b/tests/test-bezier-symbolic.cpp @@ -70,8 +70,8 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_c) { point_t y(1, 0.2, 4.5); pts[2] = y; - bezier_t c(pts.begin(), pts.end(), T); - bezier_wp_t c_sym(wps.begin(), wps.end(), T); + bezier_t c(pts.begin(), pts.end(),0., T); + bezier_wp_t c_sym(wps.begin(), wps.end(),0., T); double t = 0.; while (t < T) { @@ -86,9 +86,9 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_dc) { point_t y(1, 0.2, 4.5); pts[2] = y; - bezier_t c(pts.begin(), pts.end(), T); + bezier_t c(pts.begin(), pts.end(),0., T); bezier_t dc = c.compute_derivate(1); - bezier_wp_t c_sym(wps.begin(), wps.end(), T); + bezier_wp_t c_sym(wps.begin(), wps.end(),0., T); bezier_wp_t dc_sym = c_sym.compute_derivate(1); double t = 0.; @@ -104,9 +104,9 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_ddc) { point_t y(1, 0.2, 4.5); pts[2] = y; - bezier_t c(pts.begin(), pts.end(), T); + bezier_t c(pts.begin(), pts.end(),0., T); bezier_t ddc = c.compute_derivate(2); - bezier_wp_t c_sym(wps.begin(), wps.end(), T); + bezier_wp_t c_sym(wps.begin(), wps.end(),0., T); bezier_wp_t ddc_sym = c_sym.compute_derivate(2); double t = 0.; @@ -122,9 +122,9 @@ BOOST_AUTO_TEST_CASE(symbolic_eval_jc) { point_t y(1, 0.2, 4.5); pts[2] = y; - bezier_t c(pts.begin(), pts.end(), T); + bezier_t c(pts.begin(), pts.end(),0., T); bezier_t jc = c.compute_derivate(3); - bezier_wp_t c_sym(wps.begin(), wps.end(), T); + bezier_wp_t c_sym(wps.begin(), wps.end(),0., T); bezier_wp_t jc_sym = c_sym.compute_derivate(3); double t = 0.; @@ -140,8 +140,8 @@ BOOST_AUTO_TEST_CASE(symbolic_split_c) { point_t y(1, 0.2, 4.5); pts[2] = y; - bezier_t c(pts.begin(), pts.end(), T); - bezier_wp_t c_sym(wps.begin(), wps.end(), T); + bezier_t c(pts.begin(), pts.end(),0., T); + bezier_wp_t c_sym(wps.begin(), wps.end(),0., T); double a, b, t, t1, t2; for (size_t i = 0; i < 100; ++i) { @@ -169,7 +169,7 @@ BOOST_AUTO_TEST_CASE(symbolic_split_c_bench) { point_t y(1, 0.2, 4.5); pts[2] = y; - bezier_wp_t c_sym(wps.begin(), wps.end(), T); + bezier_wp_t c_sym(wps.begin(), wps.end(),0., T); std::vector<double> values; for (int i = 0; i < 100000; ++i) values.push_back((double)rand() / RAND_MAX); @@ -190,7 +190,7 @@ BOOST_AUTO_TEST_CASE(symbolic_split_w) { bezier_wp_t::t_point_t wps = computeWwaypoints(buildPData(), T); point_t y(1, 0.2, 4.5); - bezier_wp_t w(wps.begin(), wps.end(), T); + bezier_wp_t w(wps.begin(), wps.end(),0., T); double a, b, t, t1, t2; for (size_t i = 0; i < 100; ++i) { @@ -212,7 +212,7 @@ BOOST_AUTO_TEST_CASE(symbolic_split_w_bench) { bezier_wp_t::t_point_t wps = computeWwaypoints(buildPData(), T); point_t y(1, 0.2, 4.5); - bezier_wp_t w(wps.begin(), wps.end(), T); + bezier_wp_t w(wps.begin(), wps.end(),0., T); std::vector<double> values; for (int i = 0; i < 100000; ++i) values.push_back((double)rand() / RAND_MAX); -- GitLab