В первой заметке из этого цикла было рассмотрено, как можно легко выполнять повороты на любой заданный угол роботом, оснащенным датчиком-гироскопом. Причем управление поворотом не зависело ни от размера колес на роботе, ни от ширины колесной базы. Тем не менее, испытания показывают, что рассмотренный метод имеет свои недостатки, а именно точность выполняемого поворота. |
Можно даже выполнить следующий эксперимент:
В простой программе поворота робота на угол 90 градусов вокруг одного колеса от запуска к запуску будет меняться мощность на моторах. В первом запуске мощность будет 100%, во втором - 50%, в третьем - 20% и т.п.
Для сравнения, после поворота вокруг своей оси также будет проводиться эксперимент с поворотом вокруг одного колеса по похожей схеме.
Программа для запусков робота на поворот вокруг своей оси:
Программа для запуска робота на поворот вокруг одного колеса:
Результаты запусков можно увидеть в следующем видео:
Если свести показания датчика при повороте на разных мощностях в таблицу, то она будет следующий вида:
Мощность | Угол после поворота вокруг оси | Угол после поворота вокруг колеса |
---|---|---|
100 | 113 | 102 |
50 | 103 | 94 |
20 | 94 | 93 |
10 | 92 | 91 |
В ходе экспериментов, опять было подвержено, что выбор типа поворота определяет точность поворота. Робот, поворачивающий вокруг своей оси, проигрывает по точности роботу, поворачивающему вокруг одного колеса при одной и той же мощности. Рекомендация - обратиться к соответствующей статье 2010 года.
Другой очевидный вывод: с уменьшением мощности поворота, точность поворота увеличивается. Если при мощности 100%, поворачивая вокруг своей оси, робот "пролетал" лишние 23 градуса, то при мощности 20% это число уменьшилось до 4 градусов.
Очевидно, что теперь выбирая простейшее (как в программе выше) контролирование выполнение поворота с помощью датчика-гироскопа, нужно выбирать наименьшую приемлемую скорость, чтобы обеспечить хорошую точность поворота.
Скорость можно менять ступенчато. Например, 1/2 пройти на 100% мощности, потом 1/4 на 50%, потом 1/8 на 25% и т.п., плавно снижая скорость при завершении маневра. Это даёт возможность EV3 точнее снимать данные с гироскопа и оркестрировать движки, а также снижает инерционные эффекты.
ОтветитьУдалитьЯ написал подпрограмму (конструктор своего блока), которая на вход получает количество градусов, и выставляет в силу мотора (угол целевой) - (текущий поворот). по этому чем ближе к нужному повороту, тем больше точность.
ОтветитьУдалить