Skip to content

师兄您好,我这边想请教一下在建立osqp优化问题的trans约束时,θi+1 = θi 中包含的kr ^ 2 * li * s 项,请问这一项是根据什么公式计算得到的 #32

Description

@xiaox2600

具体的代码在solver/solver_k_as_input.cpp 的97行到99行。

void SolverKAsInput::setDynamicMatrix(size_t i,
Eigen::Matrix<double, 2, 2> *matrix_a,
Eigen::Matrix<double, 2, 1> *matrix_b) const {
const auto &ref_states = reference_path_.getReferenceStates();
double ref_k = ref_states[i].k;
double ref_s = ref_states[i + 1].s - ref_states[i].s;
double ref_delta = atan(ref_k * FLAGS_wheel_base);
Eigen::Matrix2d a;
a << 1, -ref_s * pow(ref_k, 2),
ref_s, 1;
Eigen::Matrix<double, 2, 1> b;
b << ref_s / FLAGS_wheel_base / pow(cos(ref_delta), 2), 0;
*matrix_a = a;
*matrix_b = b;
}

同时我查阅了相关材料,这项更像是一个耦合修正项,但是没有找到具体的出处和参考文献,并且如果是这样的话,不应该在左右转向的时候,正负号会出现变化吗,而现在这里的kr为平方项,和左右转向无关。
师兄如果方便的话能给出该公式的具体出处或者推导过程吗,感谢师兄。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions