Skip to content

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

@xiaox2600

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为平方项,和左右转向无关。
师兄如果方便的话能给出该公式的具体出处或者推导过程吗,感谢师兄。

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