Re: RSLK от TI (Robotic System Learning Kit)
Добавлено: Пт ноя 13, 2020 18:38:25
Я этот вебинар тоже смотрел, но... проблема не в сенсорах теперь, а в том, что делать с данными.

Поначалу, увидев, картинку из четвертой лабораторной работы, я подумал, как просто! Едем, видим поворот, поворачиваем и по стенам выравниваемся. А потом посмотрел на реальный лабиринт:

Например, проход к тому коридору где красное поле: там всего-навсего щель и нет никаких ориентиров, чтобы робота спозиционировать. Остальные "узлы" в лабиринте имеют хоть одну стену для ориентации. Но посмотрев фотографии лабиринтов со всех соревнований, обнаружил, что почти в каждом есть один или два таких места. И пока мне не приходит в голову как решить эту проблему.
Зато, почитал сайт http://www.micromouseonline.com/ и выяснил, как действуют профессионалы. Они, оказывается, "ходят по квадратам". У меня робот идёт по линии и ждёт перекрёстка, поворота или тупика. У них же робот шагает по клеткам. И всё это делается на базе контроля двигателей. Их цель - точная повторяемость. Там даже было видео, как робот ходит "лесенкой" несколько кругов по лабиринту без стен и не сбивается, не съезжает. Но в "длинных коридорах" и тупиках роботы всё же корректируют своё положение.
Можно было бы мне тоже этим заняться... но есть разница. У нас клетки имеют размер 30х30см, а в этих "международных" соревнованиях 20х20см (минус 2 см толщина стен = 18 см, но шаг остаётся 20 см). В международных трассах эти размеры регламентированы (опорные стойки - держатели стен стоят ровно с шагом 200мм и у каждой стойки должна быть присоединена хотя бы одна стена, кроме "выхода"), а у нас - только примерно (в последнем лабиринте со стенами они вообще, могли сдвинуться, если робот их зацепит). Вот и не знаю под какой стандарт дома строить полигон. Хотя, RSLK однозначно в "международную" трассу не влезает. Поэтому, у меня намечается проект, сделать маленькую модельку 12-14 см шириной и на STшном микроконтроллере.
На этом же сайте вычитал статью как настроить PID контроллера двигателей. Правда, там сделан не пропорционально-интегральный, как на RSLK, а пропорционально-дифференциальный и даны формулы получения Kp и Kd, но нет формулы получения коэффициента интегральной составляющей. Ну и, конечно, сказано пару слов, почему это плохо. Но тем не менее, собираюсь сделать программу, для измерения постоянной времени и усиления системы двигателей без обратной связи и попытаться вычислить эти коэффициенты, что я потерял, нечаянно стерев память микроконтроллеру.
Правда, с SPI EEPROM у меня тоже, как выяснилось, не всё хорошо. Оказалось, я зря игнорировал флаг UCOR - overrun. Оказалось, что микроконтроллер не успевает обслужить в прерывании всё байты приходящие со скоростью 1 мегабит в секунду. Изредка, (какой к черту "изредка" - чуть ли не каждый десятый раз!) терялся один или несколько байт. Был сделавши тестовую программку, которая считывала два раза 4кБ из ПЗУ и сравнивала считанное. Ошибки перестали появляться на скорости 750КБ/с. Но тут я крутанул колесо, чтобы появились прерывания от таходатчиков и... ошибки вернулись. В общем, сбавил скорость до 512КБ/с и контролирую этот флаг - если пропал байт - операция повторяется по-новой. Так что у меня пока нет уверенности, что всё с этим EEPROM работает как надо. Возможно, мой подход не правильный.
p.s. Был создавши тикет по поводу новой версии файлов лабораторных работ. Вот только получил ответ:
Поначалу, увидев, картинку из четвертой лабораторной работы, я подумал, как просто! Едем, видим поворот, поворачиваем и по стенам выравниваемся. А потом посмотрел на реальный лабиринт:
Например, проход к тому коридору где красное поле: там всего-навсего щель и нет никаких ориентиров, чтобы робота спозиционировать. Остальные "узлы" в лабиринте имеют хоть одну стену для ориентации. Но посмотрев фотографии лабиринтов со всех соревнований, обнаружил, что почти в каждом есть один или два таких места. И пока мне не приходит в голову как решить эту проблему.
Зато, почитал сайт http://www.micromouseonline.com/ и выяснил, как действуют профессионалы. Они, оказывается, "ходят по квадратам". У меня робот идёт по линии и ждёт перекрёстка, поворота или тупика. У них же робот шагает по клеткам. И всё это делается на базе контроля двигателей. Их цель - точная повторяемость. Там даже было видео, как робот ходит "лесенкой" несколько кругов по лабиринту без стен и не сбивается, не съезжает. Но в "длинных коридорах" и тупиках роботы всё же корректируют своё положение.
Можно было бы мне тоже этим заняться... но есть разница. У нас клетки имеют размер 30х30см, а в этих "международных" соревнованиях 20х20см (минус 2 см толщина стен = 18 см, но шаг остаётся 20 см). В международных трассах эти размеры регламентированы (опорные стойки - держатели стен стоят ровно с шагом 200мм и у каждой стойки должна быть присоединена хотя бы одна стена, кроме "выхода"), а у нас - только примерно (в последнем лабиринте со стенами они вообще, могли сдвинуться, если робот их зацепит). Вот и не знаю под какой стандарт дома строить полигон. Хотя, RSLK однозначно в "международную" трассу не влезает. Поэтому, у меня намечается проект, сделать маленькую модельку 12-14 см шириной и на STшном микроконтроллере.
На этом же сайте вычитал статью как настроить PID контроллера двигателей. Правда, там сделан не пропорционально-интегральный, как на RSLK, а пропорционально-дифференциальный и даны формулы получения Kp и Kd, но нет формулы получения коэффициента интегральной составляющей. Ну и, конечно, сказано пару слов, почему это плохо. Но тем не менее, собираюсь сделать программу, для измерения постоянной времени и усиления системы двигателей без обратной связи и попытаться вычислить эти коэффициенты, что я потерял, нечаянно стерев память микроконтроллеру.
Правда, с SPI EEPROM у меня тоже, как выяснилось, не всё хорошо. Оказалось, я зря игнорировал флаг UCOR - overrun. Оказалось, что микроконтроллер не успевает обслужить в прерывании всё байты приходящие со скоростью 1 мегабит в секунду. Изредка, (какой к черту "изредка" - чуть ли не каждый десятый раз!) терялся один или несколько байт. Был сделавши тестовую программку, которая считывала два раза 4кБ из ПЗУ и сравнивала считанное. Ошибки перестали появляться на скорости 750КБ/с. Но тут я крутанул колесо, чтобы появились прерывания от таходатчиков и... ошибки вернулись. В общем, сбавил скорость до 512КБ/с и контролирую этот флаг - если пропал байт - операция повторяется по-новой. Так что у меня пока нет уверенности, что всё с этим EEPROM работает как надо. Возможно, мой подход не правильный.
p.s. Был создавши тикет по поводу новой версии файлов лабораторных работ. Вот только получил ответ:
Называется - "стандартная отписка".Good day, apologies for the late response. With regards to your query, as of now, the latest software for TIRSLK-EVM-SW is in this link (https://www.ti.com/tool/TIRSLK-EVM-SW).
There is no information regarding new version of this software.
I hope the information provided pleases you. If you still have other concern, please let us know by replying to this email.
