1. вы начали упрощать задачу.
если вам так угодно то можете считать что путь от А до Б сложен и тернист со множеством препятствий, как прокладывать маршрут сейчас не обсуждается.
задача переместиться из точки А в Б которую нам задали, т.е. со всеми "выступами и впадинами" (считаем что программист суммашедший но путь проложен с учётом наших габаритов, если проедем точно, то никуда не свалимся)
В контроллер поступают короткие отрезки, да для него А и Б это путь по прямой или окружности.
Да хочу получить максимально точное заданное программное движение тележки (считайте перемещать фрезу)
Траектория есть, разбита на отрезки двигаемся строго по заданному пути.
Координаты А и Б задаются в абсолютной системе координат связанной с поверхностью "земли/комнаты"
2. при всём уважении, не стоит сразу называть бредом то что вам не понятно, или с чем вы не согласны.
скорость + время, а вернее интеграл скорости по времени - путь пройденный одним колесом за промежуток времени.
Зная какое колесо сколько проехало, с учётом геометрии робота можно вычислить координаты и ориентацию платформы, в текущий момент времени, чтобы сравнить куда мы передвинулись после наших попыток управления правым и левым двигателем, чтобы скорректировать траекторию.
Или вам известен другой алгоритм как посчитать куда мы попали?
3. Давайте договоримся ссылаться на реальные примеры, в частности я проект openservo изучил достаточно хорошо и запускал его на контроллере, а также мерил максимальную скорость передачи по uart в плоть до 2 000 000 бод и i2c (400kHz) вот мои тесты производительности
forum40/topic10112.htmlЭти данные для "пустого" контроллера, т.е. он ничего не делает, только занимается обменом, т.е. реальная скорость занчительно ниже.
Почему такие данные можем обсудить в той ветке.
вот и не получается успевать считать, получать данные, и выдавать координаты в ноут, т.к. ноут тоже должен знать куда мы переместились, и какая сейчас скорость.
Поэтому я рассматривал вариант "сендвича" если делать управление по скорости, два контроллера двигателей + управляющий контроллер.
4. ничего не дёргается! я же сказал что это шаг в 10ть раз ускоренный. А дёргается по тому что практически максимальная мощность сразу прикладывается к колесу на большой промежуток времени, при малом шаге и большой частоте вы не отличите движение от нормального.
5. Про синхронизацию возможно вышло недопонимание, я имел ввиду управление вторым колесом с учётом сколько проехало соседнее, т.к. колёса не срезу выходят на заданную постоянную скорость, да и постоянной её сложно поддерживать, т.к. есть погрешности в измерении и в управлении + разные силы трения.
Отсюда видно, что если не учитывать расхождение между заданной и реальной скоростью мы уйдём в право (относительно заданной точки) если правое колесо выйдет на заданный режим позже левого.
Собственно это был мой ответ, прошу не считать это вызовом к дебатам будет работать/ не будет работать, если есть реальные примеры решения быстрой передачи данных, или перемещение по прямой на заданный угол, или по окружности на 8ми битном контроллере, прошу поделиться, теории я и сам могу на рассказывать.
И последнее, я в курсе что в моих домашних условиях можно всё упростить, но я рассматриваю это как опыт решения поставленной задачи на том что есть.
Параллельно продумываю более совершенные и точные конструкции.