Взаимодействие аппаратного обеспечения, программного обеспечения и ROS в проекте MEPhI_ROS2_drone разработано с использованием ROS 2 Control.
Этот пакет:
- Реализует hardware interface для MEPhI_ROS2_drone
- Обеспечивает связь с микроконтроллером:
- Класс
andino_base::MotorDriverотвечает за последовательную связь для управления моторами- Предоставляется приложение для оценки связи: ознакомьтесь с
applications/motor_driver_demo.cpp. Чтобы использовать это приложение, просто выполнитеmotor_driver_demo --helpдля просмотра опций
- Предоставляется приложение для оценки связи: ознакомьтесь с
- Этот модуль связи используется в реализации аппаратного интерфейса
- Класс
В ros2_control компоненты аппаратной системы представляют собой библиотеки, динамически загружаемые менеджером контроллера с использованием интерфейса pluginlib.
Для получения дополнительной информации о компонентах оборудования см. Hardware Components.
Аппаратный интерфейс принимает некоторые параметры, которые передаются через описание urdf в теге ros2_control (см. andino_description).
| Параметры | Описание |
|---|---|
| left_wheel_name | Название соединения левого колеса |
| right_wheel_name | Название соединения правого колеса |
| serial_device | Путь к последовательному устройству |
| baud_rate | Скорость передачи данных в бодах |
| timeout | Тайм-аут для связи |
| enc_ticks_per_rev | Количество тиков энкодера за один оборот колеса |
Этот аппаратный интерфейс реализует следующие интерфейсы состояния для каждого соединения (для левого и правого соединения):
Position: позиция определяется на основе информации от энкодера, полученной от микроконтроллераVelocity: скорость рассчитывается на основе информации от энкодера, полученной от микроконтроллера
Этот аппаратный интерфейс использует следующие командные интерфейсы для каждого соединения (для левого и правого соединения):
Velocity: полученная скорость (рад/с) преобразуется в номенклатуру скорости микроконтроллера для моторов
Для тестирования соединения с микроконтроллером предоставляется приложение.
После установки этого пакета можно использовать приложение под названием motor_driver_demo:
motor_driver_demo --help
Это приложение позволяет проверить связь с микроконтроллером для управления моторами. Команды для чтения энкодеров или индивидуальной установки скорости для моторов — это некоторые из возможностей.
Последовательная связь: если доступ к последовательному порту запрещен, вероятно, пользователя нужно добавить в группы plugdev и dialout:
sudo usermod -a -G dialout $USER
sudo usermod -a -G plugdev $USER