roboforum.ru

Технический форум по робототехнике.

Робот linetracer ks-line

Re: Робот linetracer ks-line

Ruslan » 19 апр 2010, 13:54

передние ролики надо делать поворотными.

Re: Робот linetracer ks-line

Vooon » 19 апр 2010, 16:12

Это конечно не плохо бы сделать :) но мне сначала нужно разобраться с другой проблемой — ведущие колеса очень мало нагружены, основной вес приходится на ролики. Из-за этого порой робот едет прямо когда крутит только одно колесо.
Думаю добавить два рычага назад и навесить на них грузики.

Re: Робот linetracer ks-line

=DeaD= » 19 апр 2010, 16:24

попробуй вместо роликов поставить шарик? :)

Re: Робот linetracer ks-line

Vooon » 19 апр 2010, 21:20

Приделал назад площадку и положил на нее кучу старых магнитов (не нашел куда делись балансировочные грузики).
И практически уравновесил передок. Вес груза 100-150 г (мелких весов нет).

Добавлено спустя 11 секунд:
А вот и первый результат! :)

С таким кодом на трассе 1-34 получилось проехать за 16,64 секунды (по ручному секундомеру).
АКБ к тому моменту был уже прилично посажен.

Код: Выделить всёРазвернуть
#include <ORMotor.h>
#include <ORBWSens.h>

ORBWSens bws((unsigned char[])
  {3, 4, 5, 6, 7, 14, 15, 16, 17, 18}, 10,
  4000,
  2 /* LED-on pin */);

ORMotor LeftMotor(ORDUINO_MOTOR_B);
ORMotor RightMotor(ORDUINO_MOTOR_A);

const int calSpd = 40;
const int calSteps = 40;

void setup()
{
  Serial.begin(115200);
  LeftMotor.speed(-calSpd);
  RightMotor.speed(calSpd);
  for (int i=0; i < calSteps; i++)
  {
    bws.calibrate();
  }
  LeftMotor.speed(calSpd);
  RightMotor.speed(-calSpd);
  for (int i=0; i < calSteps; i++)
  {
    bws.calibrate();
  }
  LeftMotor.speed(-calSpd);
  RightMotor.speed(calSpd);
  delay(700);
  LeftMotor.speed(0);
  RightMotor.speed(0);
}

unsigned int val[10];

const int fs = 50,
          ms = 30,
          ls = 10;

void loop()
{
  int mlSpd = ls, mrSpd = ls;
  int line = bws.readLine(val);
  int error = line - 4500;

  if (error > -1000 && error < +1000) {
    // line at center
    mlSpd = fs;
    mrSpd = fs;
  } else if (error > +1000 && error < +2000) {
    // right
    mlSpd = fs;
    mrSpd = ms;
  } else if (error > +2000 && error < +3000) {
    // right
    mlSpd = fs;
    mrSpd = ls;
  } else if (error > +3000) {
    // right
    mlSpd = ms;
    mrSpd = 0;
  } else if (error < -1000 && error > -2000) {
    // left
    mlSpd = ms;
    mrSpd = fs;
  } else if (error < -2000 && error > -3000) {
    // left
    mlSpd = ls;
    mrSpd = fs;
  } else if (error < -3000) {
    // left
    mlSpd = 0;
    mrSpd = ms;
  }
 
  LeftMotor.speed(mlSpd);
  RightMotor.speed(mrSpd);
 
#if 0
  Serial.print("LINE: ");
  Serial.print(line);
  Serial.print(" E: ");
  Serial.print(error);
  Serial.print(" L: ");
  Serial.print(mlSpd);
  Serial.print(" R: ");
  Serial.println(mrSpd);
#endif

  delay(10);
}


Добавлено спустя 3 минуты 56 секунд:
Правда калибровку лучше делать вручную.
Пока так и не вышло нормально полностью автоматическую калибровку сделать (в смысле чтобы робот сам повертел датчиком по линии).

Добавлено спустя 2 часа 36 минут 28 секунд:
Калибровку добил, теперь вроде работает :)


Re: Робот linetracer ks-line

Vooon » 23 апр 2010, 02:31

Собрал модифицированный дистрибутив Arduino IDE 0018
с патчами и библиотеками из http://hg.vehq.ru/orduino/
и драйвером для CP2102 (по началу я и забыл, что на винде нужно ставить драйвера...).

http://media.vehq.ru/openrobotics/binar ... 18.win.zip (88 MiB, MD5: a4aba75634d858adc4987acf22b2ecc7)

Re: Робот linetracer ks-line

=DeaD= » 23 апр 2010, 07:30

А как сам лайнтрейсер? Уже достойные результаты показывает или пока нет? :oops:

Re: Робот linetracer ks-line

Vooon » 23 апр 2010, 07:41

Пока нет, ну выжал 12 секунд, все не выходит подобрать константы для регулятора чтоб хотя бы на 80-и попугаях ехать.

Re: Робот linetracer ks-line

Сергей » 23 апр 2010, 11:22

в матлабе был вроде тулбокс для настройки коэффициентов ПИД

Re: Робот linetracer ks-line

D1mcon » 24 апр 2010, 11:08

в матлабе есть, точнее в симулинк, там даже графический мастер настройки есть.
Вот только в версии 6,5 как-то он не адекватно работает. :(

Re: Робот linetracer ks-line

Vooon » 22 янв 2011, 02:57

Начал строить вторую версию.

На фотке ЦНС :)
Вложения
PICT0019.JPG

Re: Робот linetracer ks-line

nsk-racer » 25 янв 2011, 10:14

Новое шасси?) А ЦНС та же?)

Re: Робот linetracer ks-line

Vooon » 25 янв 2011, 15:24

Нет, ЦНС новая.
Здесь уже серийная версия OR-duino (была бета) и другая линейка (бета I2C линейки).

Шасси пока нет. Хотел сделать из фенольных машинок.
Так их нету! Объехал четыре детских мира.


Rambler\'s Top100 Mail.ru counter