Проблемы с использованием режима Torque для управления транспортным средством - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь использовать крутящий момент и торможение для управления транспортным средством, но ошибка «wb_motor_set_force () вызвана с недопустимым аргументом« сила »(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_;

Спасибо!

1 Ответ

2 голосов
/ 30 января 2020

Я пытался воспроизвести вашу проблему с очень простым контроллером, похожим на ваш:

#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 () вызывается с недопустимым" аргумент силы (NaN). Можете ли вы попробовать мой пример и сообщить мне, если это работает для вас тоже? Если это так, можете ли вы изменить мой пример (как можно меньше), чтобы он воспроизвел вашу проблему?

...