ДО курс по робототехнике

5 апреля 2013 г.

NXT и Python: мотор застрял?

(C)
Предыдущие статьи по программированию NXT роботов на языке Python можно считать вводными - они вкратце знакомили с базовыми API, применив которые можно было уже написать простые программы.
Естественно, многое осталось за рамками тех материалов - например, функции, управляющие движением моторов, были описаны не все, да и дляописанных не были указаны все возможные параметры.

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

На самом деле метод run() принимает еще один параметр, кроме мощности мотора:

run(self, power=100, regulated=False)
    Tells the motor to run continuously. If regulated is True, then the
    synchronization starts working.

Как видно из документации, параметр принимает False как значение по-умолчанию. При этом, какого рода синхронизация и зачем она нужна в документации описания нет.

Однако, когда при запуске мотора передаем в качестве значения этого параметра True, то мотор работает как и ожидается.

Видео ниже демонстрирует, как мотор работает при разных значениях этого параметра.

Комментариев нет:

Отправить комментарий