使用扭矩模式进行车辆控制的问题

Problems using the Torque mode for vehicle control

我正在尝试使用扭矩和制动来控制车辆,但错误 "wb_motor_set_force() called with an invalid 'force' argument (NaN)." 不断出现。以下是使用的代码:

初始化

driver_->setGear(1);
driver_->step();
driver_->step();
driver_->step();

simulTime_ = 30;

breaking_ = false;
throttle_ = 0;
breaking_ = 0;

控制应用程序

if(type_ == BREAK){
    if(!type_){
        type_ = true;
        driver_->setThrottle(0);
    }
    driver_->setBrakeIntensity(breaking_);
}
else if(type_ == ACCELERATE){
    if(type_){
        type_ = false;
        driver_->setBrakeIntensity(0);
    }
    driver_->setThrottle(throttle_);
}

driver_->setSteeringAngle(phi_);
driver_->step();
simulTime_ += simulStep_;

谢谢!

我试图用一个非常简单的类似于你的控制器来重现你的问题:

#include <webots/vehicle/Driver.hpp>

using namespace webots;

int main(int argc, char **argv) {
  Driver *driver = new Driver();

  driver->setGear(1);

  // main loop
  while (driver->step() != -1) {
    driver->setThrottle(0.1);
    driver->setBrakeIntensity(0.0);
    driver->setSteeringAngle(0.1);
  }

  delete driver;
  return 0;
}

但它工作正常,我没有任何关于 "wb_motor_set_force() called with an invalid 'force' argument (NaN)." 的警告。你能试试我的例子,让我知道这是否也适合你吗? 如果是这样,您能否更改我的示例(尽可能少)以重现您的问题?