Алгоритмы и дизайн робота для езды по линии

Алгоритмы и дизайн робота для езды по линии

Сообщение Ruslan » 30 янв 2009, 11:11

Здесь прелдагается выкладывать и обсуждать вопросы, связанные с разработкой и совершенствованием роботов для езды по линии. Если будет достаточно времени и материала - можно будет оформить в Вики.

1. Алгоритмы
a) Простые алгоритмы: робот считывает показания сенсоров и в зависимости от их комбинации устанавливает скорости моторов. Как правило определенной комбинации значений сенсоров строго соответствует определенная комбинация скоростей моторов.
- Хорошая статья про алгоритмы от Эдди Бауэра http://www.wrighthobbies.net/guides/linefollower.htm
б) ПИД алгоритмы: учитывают скорость изменений положения робота и позволяют более плавно реагировать на них.

2. Конструкция робота

Общие статьи про дизайн роботов
- простой робот Sandwich от Дэвида Кука http://www.robotroom.com/Sandwich.html
- гоночный робот Jet от Дэвида Кука http://www.robotroom.com/Jet.html
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение SMT » 30 янв 2009, 12:57

в забеге использовался простой код написанный на basic-е, в котором проверяется состояние 3-х датчиков линии (один - средний). Если линия появляется пол левым или правым датчиком, мотор с его стороны включается на реверс, пока линия не пропадет из под датчика.
Плюсы - простой код, не нужно использовать энкодеры мотор-колес (их можно использовать как дополнительные датчики)
Минусы - реверс мотора заставляет дергаться робота, резко снижается скорость - половина робота едет назад :(
SMT
 
Сообщения: 1158
Зарегистрирован: 23 авг 2008, 22:28
Откуда: Санкт-Петербург
ФИО: Сергей

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение frig » 30 янв 2009, 13:05

Минусы - реверс мотора заставляет дергаться робота, резко снижается скорость - половина робота едет назад :(


а можно ведь просто останавливать мотор либо снижать скорость его вращения... :D
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение SMT » 30 янв 2009, 13:08

ну так это и есть - доводка алгоритма :) Я как ракету RiO увидел, тоже об этом подумал
SMT
 
Сообщения: 1158
Зарегистрирован: 23 авг 2008, 22:28
Откуда: Санкт-Петербург
ФИО: Сергей

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение frig » 30 янв 2009, 13:10

я вчера писать его начал, так у меня один датчик отрубился... да и ночь уже была.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение SMT » 02 фев 2009, 09:14

2RiO: Интересно - как еду удается в этом заезде на короткие "восходящие" так шустро проскакивать без среднего датчика?

Вчера начал пилить простенький алгоритм с участием среднего датчика, как ты посоветовал - быстрее конечно получается на прямых. (но прервался - уж больно громко в ночи жужжат редукторы)
SMT
 
Сообщения: 1158
Зарегистрирован: 23 авг 2008, 22:28
Откуда: Санкт-Петербург
ФИО: Сергей

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение frig » 02 фев 2009, 16:16

а я смотрю в сторону ПИД, только пока не додумал. Почитал статейку в вике, вроде все понятно, но вот как его применить в роботу... у нас ведь 2 мотора. пока не допетрил.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение =DeaD= » 02 фев 2009, 17:10

frig писал(а):Почитал статейку в вике, вроде все понятно, но вот как его применить в роботу... у нас ведь 2 мотора. пока не допетрил.

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

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение frig » 02 фев 2009, 17:18

да я уже посмотрел код Pololu и все понял.

Общий то принцип я понимал, а теперь подсмотрел как реализовано и все понял.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение frig » 03 фев 2009, 15:55

одна из самый интересных и важных тем, но что-то никто не торопится делиться своими наработками и опытом... :D это соревновательный дух так действует?

Добавлено спустя 5 минут 58 секунд:
кстати о Pololu... может выложить сюда код ихний? или это будет некорректно?
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение Ruslan » 03 фев 2009, 19:46

У меня секретных наработок нет. Фотки робота выложил. Код взял у Пололу http://www.pololu.com/docs/0J20, занимаюсь только подбором параметров для повышения скорости.

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

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение frig » 03 фев 2009, 21:37

Насчет ихнего кода - можно спросить у них. По-моему ссылки достаточно.


да тут бы можно было выложить с русскими комментариями, разжевать все..
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение SMT » 04 фев 2009, 23:20

2olegsem: у вас в коде условие
Код: Выделить всё
If Pina.3 = 0 And Pina.0 = 0 Then                        'движение вправо
   Drl = 0 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed
   Portc.6 = 1
   Waitms 50

имеется ввиду "Правый и средний датчик линии на темной полосе", хотя для лайнтрейсинга по этой трассе вроде достаточно вашего
Код: Выделить всё
If Pina.0 = 0 Then                                       'движение вправо
   Drl = 0 : Drr = 1 : Pwm1b = Speed : Pwm1a = Speed
   Portc.6 = 1
   Waitms 50

это вы с крутыми (90 градусов) поворотам ездили? а как поворачивали - доезжали по энкодерам или паузе до поворота центром танка?
SMT
 
Сообщения: 1158
Зарегистрирован: 23 авг 2008, 22:28
Откуда: Санкт-Петербург
ФИО: Сергей

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение frig » 05 фев 2009, 10:20

имеется ввиду "Правый и средний датчик линии на темной полосе", хотя для лайнтрейсинга по этой трассе вроде достаточно вашего


ну это смотря как датчики поставить... если расстояние между мини менее ширины линии - то вполне актуально...


сложновасто выходит ваять без дисплея или uarta. отладка вообще на уровне "угадай мелодию". по светодиодам и моторам :cry:
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Re: Алгоритмы и дизайн робота для езды по линии

Сообщение executer » 05 фев 2009, 13:26

Постойте, я правильно понял, вы с датчиков принимаете дискретный уровень - есть/нет полоса? И еще и ПИД сюда подцепить хотите???
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

След.

Вернуться в Line Tracer

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

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