roboforum.ru

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

Робот linetracer ks-line

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Re: Робот linetracer ks-line

Сообщение Ruslan » 19 апр 2010, 13:54

передние ролики надо делать поворотными.
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Re: Робот linetracer ks-line

Сообщение Vooon » 19 апр 2010, 16:12

Это конечно не плохо бы сделать :) но мне сначала нужно разобраться с другой проблемой — ведущие колеса очень мало нагружены, основной вес приходится на ролики. Из-за этого порой робот едет прямо когда крутит только одно колесо.
Думаю добавить два рычага назад и навесить на них грузики.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Робот linetracer ks-line

Сообщение =DeaD= » 19 апр 2010, 16:24

попробуй вместо роликов поставить шарик? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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 секунд:
Калибровку добил, теперь вроде работает :)

Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

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)
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Робот linetracer ks-line

Сообщение =DeaD= » 23 апр 2010, 07:30

А как сам лайнтрейсер? Уже достойные результаты показывает или пока нет? :oops:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот linetracer ks-line

Сообщение Vooon » 23 апр 2010, 07:41

Пока нет, ну выжал 12 секунд, все не выходит подобрать константы для регулятора чтоб хотя бы на 80-и попугаях ехать.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Робот linetracer ks-line

Сообщение Сергей » 23 апр 2010, 11:22

в матлабе был вроде тулбокс для настройки коэффициентов ПИД
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Робот linetracer ks-line

Сообщение D1mcon » 24 апр 2010, 11:08

в матлабе есть, точнее в симулинк, там даже графический мастер настройки есть.
Вот только в версии 6,5 как-то он не адекватно работает. :(
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники
Аватара пользователя
D1mcon
 
Сообщения: 700
Зарегистрирован: 08 фев 2009, 10:13
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий

Re: Робот linetracer ks-line

Сообщение Vooon » 22 янв 2011, 02:57

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

На фотке ЦНС :)
Вложения
PICT0019.JPG
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Робот linetracer ks-line

Сообщение nsk-racer » 25 янв 2011, 10:14

Новое шасси?) А ЦНС та же?)
Мой блог о роботах http://robo-world.ru
nsk-racer
 
Сообщения: 141
Зарегистрирован: 08 дек 2010, 19:27
Откуда: Новосибирск
прог. языки: C и PHP
ФИО: Павел

Re: Робот linetracer ks-line

Сообщение Vooon » 25 янв 2011, 15:24

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

Шасси пока нет. Хотел сделать из фенольных машинок.
Так их нету! Объехал четыре детских мира.
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Пред.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3