Технический форум по робототехнике.
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
SMT » 30 янв 2009, 12:57
в
забеге использовался
простой код написанный на basic-е, в котором проверяется состояние 3-х датчиков линии (один - средний). Если линия появляется пол левым или правым датчиком, мотор с его стороны включается на реверс, пока линия не пропадет из под датчика.
Плюсы - простой код, не нужно использовать энкодеры мотор-колес (их можно использовать как дополнительные датчики)
Минусы - реверс мотора заставляет дергаться робота, резко снижается скорость - половина робота едет назад

frig » 30 янв 2009, 13:05
Минусы - реверс мотора заставляет дергаться робота, резко снижается скорость - половина робота едет назад

а можно ведь просто останавливать мотор либо снижать скорость его вращения...

SMT » 30 янв 2009, 13:08
ну так это и есть - доводка алгоритма

Я как ракету RiO увидел, тоже об этом подумал
frig » 30 янв 2009, 13:10
я вчера писать его начал, так у меня один датчик отрубился... да и ночь уже была.
SMT » 02 фев 2009, 09:14
2RiO: Интересно - как еду удается в
этом заезде на короткие "восходящие" так шустро проскакивать без среднего датчика?
Вчера начал пилить простенький алгоритм с участием среднего датчика, как ты посоветовал - быстрее конечно получается на прямых.
(но прервался - уж больно громко в ночи жужжат редукторы)
frig » 02 фев 2009, 16:16
а я смотрю в сторону ПИД, только пока не додумал. Почитал статейку в вике, вроде все понятно, но вот как его применить в роботу... у нас ведь 2 мотора. пока не допетрил.
=DeaD= » 02 фев 2009, 17:10
frig писал(а):Почитал статейку в вике, вроде все понятно, но вот как его применить в роботу... у нас ведь 2 мотора. пока не допетрил.
Считай, что управлемый параметр - разница скоростей двигателей, при поддержании максимальной скорости на каждом движке.
frig » 02 фев 2009, 17:18
да я уже посмотрел код Pololu и все понял.
Общий то принцип я понимал, а теперь подсмотрел как реализовано и все понял.
frig » 03 фев 2009, 15:55
одна из самый интересных и важных тем, но что-то никто не торопится делиться своими наработками и опытом...

это соревновательный дух так действует?
Добавлено спустя 5 минут 58 секунд:кстати о Pololu... может выложить сюда код ихний? или это будет некорректно?
Ruslan » 03 фев 2009, 19:46
У меня секретных наработок нет. Фотки робота выложил. Код взял у Пололу
http://www.pololu.com/docs/0J20, занимаюсь только подбором параметров для повышения скорости.
Насчет ихнего кода - можно спросить у них. По-моему ссылки достаточно.
frig » 03 фев 2009, 21:37
Насчет ихнего кода - можно спросить у них. По-моему ссылки достаточно.
да тут бы можно было выложить с русскими комментариями, разжевать все..
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 градусов) поворотам ездили? а как поворачивали - доезжали по энкодерам или паузе до поворота центром танка?
frig » 05 фев 2009, 10:20
имеется ввиду "Правый и средний датчик линии на темной полосе", хотя для лайнтрейсинга по этой трассе вроде достаточно вашего
ну это смотря как датчики поставить... если расстояние между мини менее ширины линии - то вполне актуально...
сложновасто выходит ваять без дисплея или uarta. отладка вообще на уровне "угадай мелодию". по светодиодам и моторам

executer » 05 фев 2009, 13:26
Постойте, я правильно понял, вы с датчиков принимаете дискретный уровень - есть/нет полоса? И еще и ПИД сюда подцепить хотите???