Шановні друзі! Сайт знаходиться в процесі перекладу на солов'їну мову. Все буде Україна!

Вернуться к библиотеке Robot

 

lineFollowConfig()

Описание

Функция изменяет параметры следования робота по линии. 

Используйте эту функцию, если робот едет по линии не так, как требуется, или если вы просто хотите изменить его скорость.

Функция lineFollowConfig() изменяет "PD-алгоритмы", которые позволяют роботу решать, что должно произойти в следующий момент времени после считывания линии. Робот пытается предсказать все возможные ошибки при следующем опросе инфракрасных датчиков и соответствующим образом корректирует свое движение, изменяя скорость каждого колеса.

Подробнее об этом см. в примечании ниже.

Синтаксис

Robot.lineFollowConfig(KP,KD,robotSpeed,intergrationTime)

Параметры

  • KP : int, пропорциональный коэффициент
  • KD : int, дифференциальный коэффициент
  • integrationTime: int, задержка между вызовами алгоритма в мс
  • robotSpeed: int, может принимать значения от 0 до 100 - характеризует скорость двигателей в процентах.

Возвращаемые значения

нет

Пример

#include <ArduinoRobot.h>
long timer;

void setup(){
  Robot.begin();
  Robot.beginLCD();
  delay(3000);

  Robot.lineFollowConfig(11,5,50,10);//устанавливаем PID-параметры
  Robot.setMode(MODE_LINE_FOLLOW);
  timer=millis();
  while(!Robot.isActionDone()){
    //каждые 5 секунд приостанавливаем следование робота по линии на время 3 секунд
    if(millis()-timer>=5000){
      Robot.pauseMode(true);
      delay(3000);
      Robot.pauseMode(false);
      timer=millis();
    }
    Robot.debugPrint(millis());
  }
  Robot.text("Done!",0,10,true);
  while(true);

}
void loop(){
}

Примечание

Значение KP в функции помогает роботу следовать по линии, а значение KD - гасит колебания робота.

Чтобы подобрать пару этих значений, нужно немного поэкспериментировать. Например:

  1. Установите KP равным 5, KD - 0, задайте скорость движения робота. Установите intergrationTime равным 10
  2. Запустите робота на трек, траектория которого ограничена линией
  3. Если робот выходит за линию, увеличьте KP на 1
  4. Повторяйте действия 1-3 до тех пор, пока не добьетесь наилучшего результата. Если увеличение KP больше не влияет на способность робота ехать по линии - переходите к следующему шагу.
  5. Теперь увеличьте KD на 1.
  6. Запустите робота, пронаблюдайте, не уменьшились ли колебания робота вокруг траектории.
  7. Продолжайте увеличивать KD на 1 до тех пор, пока не добьетесь наилучшего результата.
  8. Настройку можно считать завершенной, когда робот перестанет выходит за пределы линии. Не забудьте записать куда-нибудь подобранные числа, чтобы можно было их потом восстановить.

Смотрите также