我正在使用以下代码创建 LQR 控制器:
systems::controllers::LinearQuadraticRegulator(
plant, context, Q, R,
Eigen::Matrix<double, 0, 0>::Zero() /* No cross state/control costs */,
actuation_port_index);
plant
是类型的引用MultibodyPlant<double>
context
是类型的引用Context<double>
Q
是类型Eigen::Matrix<double, 6, 6>
R
是类型Vector1d
用gdb调试显示错误来自multibody_plant.cc
MultibodyPlant<T>::CalcPointPairPenetrations
我不确定为什么它不使用MultibodyPlant<double>::CalcPointPairPenetrations
万一这很重要,我的plant
对象是从sdf
具有以下几行的文件中加载的
auto pair = AddMultibodyPlantSceneGraph(&builder, std::make_unique<MultibodyPlant<double>>(FLAGS_time_step));
MultibodyPlant<double>& plant = pair.plant;
const std::string model_filename = getSrcDir() + "/../res/plant.sdf";
Parser(&plant, &scene_graph).AddModelFromFile(model_filename);