![]() |
ИСТИНА |
Войти в систему Регистрация |
ФНКЦ РР |
||
НИЗКОУРОВНЕНВОЕ ПРОГРАММИРОВАНИЕ САМОХОДНОГО АВТОНОМНОГО РОБОТА С МАНИПУЛЯТОРОМ 1 Введение В сообщении приводятся результаты решения конкретных задач, с которыми пришлось столкнуться при создании автономного самоходного колесного робота с манипулятором в Лаборатории общей механики НИИ механики МГУ. Одно из главных отличий автономного робота от робота, управляемого дистанционно, заключается в автоматической обработке большого объема информации, поступающей от многочисленных датчиков, и формировании соответствующих команд для исполнительных устройств. Поэтому обязательной составной частью автономных роботов является достаточно мощный компьютер. В соответствии с давно сложившимся подходом для непосредственного управления устройствами ввода и вывода используются специализированные компьютеры, получившие название контроллеров. Они избавляют главный компьютер от необходимости знать специфические особенности устройств и позволяют ему при обмене информацией обходиться стандартным набором команд. Получив такую команду от главного компьютера, контроллер выполняет необходимую программу-драйвер, заставляя исполнительное устройство выполнить требуемые операции. Драйверы для широко распространенных устройств часто создают их изготовители. При создании робота эту работу, называемую низкоуровневым программированием, пришлось выполнять самим. Задачей работы является разработка драйверов для управления движением и манипулятором робота. 2 Электроника В качестве микропроцессора для контроллеров использовались STM32 [1], электронные схемы контроллеров зависят от назначения контроллера. Для передачи сообщений между главным компьютером и микроконтроллерами используется интерфейс CAN [2]. Протокол передачи данных был разработан докладчиком специально для решения поставленной задачи. 3 Драйверы для подсистемы управления движением Двигатели постоянного тока обеспечивают движение робота. Главный компьютер с помощью стандартных команд, не зависящих от модели двигателя, задает угловую скорость и направление вращения двигателя. Задача драйвера - обеспечить заданную скорость независимо от сопротивления движению. Текущая скорость вращения двигателя измеряется с помощью энкодера и передается главному компьютеру. 4 Драйверы для управления манипулятором Для управления манипулятором робота используются шаговые двигатели. В отличие от контроллеров двигателей постоянного тока, сервопривод в качестве команды получает конечное положение вала двигателя и скорость, с которой оно должно быть достигнуто. Для определения положения вала шагового двигателя используется энкодер с энергонезависимой памятью. Это позволяет не переводить манипулятор в начальное положение при каждом запуске робота. Работа проводилась при поддержке сотрудников Лаборатории общей механики. Список использованных источников 1. Donald Norris, Programming with STM32. Getting started with Nucleo Board and C/C++. 2. Texas Instruments - Introduction to the Controller Area Network (CAN)