понедельник, 24 марта 2014 г.

EV3 выполняем повороты с помощью датчика-гироскопа. Часть II

В первой заметке из этого цикла было рассмотрено, как можно легко выполнять повороты на любой заданный угол роботом, оснащенным датчиком-гироскопом. Причем управление поворотом не зависело ни от размера колес на роботе, ни от ширины колесной базы.

Тем не менее, испытания показывают, что рассмотренный метод имеет свои недостатки, а именно точность выполняемого поворота.

Можно даже выполнить следующий эксперимент:
В простой программе поворота робота на угол 90 градусов вокруг одного колеса от запуска к запуску будет меняться мощность на моторах. В первом запуске мощность будет 100%, во втором - 50%, в третьем - 20% и т.п.
Для сравнения, после поворота вокруг своей оси также будет проводиться эксперимент с поворотом вокруг одного колеса по похожей схеме.

Программа для запусков робота на поворот вокруг своей оси:


Программа для запуска робота на поворот вокруг одного колеса:


Результаты запусков можно увидеть в следующем видео:


Если свести показания датчика при повороте на разных мощностях в таблицу, то она будет следующий вида:

МощностьУгол после поворота вокруг осиУгол после поворота вокруг колеса
100113102
5010394
209493
109291

В ходе экспериментов, опять было подвержено, что выбор типа поворота определяет точность поворота. Робот, поворачивающий вокруг своей оси, проигрывает по точности роботу, поворачивающему вокруг одного колеса при одной и той же мощности. Рекомендация - обратиться к соответствующей статье 2010 года.

Другой очевидный вывод: с уменьшением мощности поворота, точность поворота увеличивается. Если при мощности 100%, поворачивая вокруг своей оси, робот "пролетал" лишние 23 градуса, то при мощности 20% это число уменьшилось до 4 градусов.

Очевидно, что теперь выбирая простейшее (как в программе выше) контролирование выполнение поворота с помощью датчика-гироскопа, нужно выбирать наименьшую приемлемую скорость, чтобы обеспечить хорошую точность поворота.

2 комментария:

  1. Скорость можно менять ступенчато. Например, 1/2 пройти на 100% мощности, потом 1/4 на 50%, потом 1/8 на 25% и т.п., плавно снижая скорость при завершении маневра. Это даёт возможность EV3 точнее снимать данные с гироскопа и оркестрировать движки, а также снижает инерционные эффекты.

    ОтветитьУдалить
  2. Я написал подпрограмму (конструктор своего блока), которая на вход получает количество градусов, и выставляет в силу мотора (угол целевой) - (текущий поворот). по этому чем ближе к нужному повороту, тем больше точность.

    ОтветитьУдалить

Related Posts Plugin for WordPress, Blogger...