Практические задания
- "Соберите" библиотеку
ros_libна своем роботе и перепишите ее на компьютер - Загрузите и запустите на Arduino примеры Издателя и Подписчика из этого урока.
Напишите различные программы для Arduino микроконтроллера:
Скетч, создающий Подписчика (Subscriber) на топик /led_control c типом сообщения std_msgs/Int32. При получении в данный топик различных значений должна выполняться следующая логика:
При получении значения "0" - все светодиоды D26 - D29 - не горят
- При получении значения "1" - все светодиоды D26 - D29 - горят
- При получении значения "26" - "29" - загорается светодиод, в зависимости от введённого номера.
2. Скетч, создающий Издателя (Publisher) для топика /button_cmd с типом сообщения std_msgs/Int31. При нажатия на кнопки D22/D25 должна выполняться следующая логика:
- Когда обе кнопки отжаты - в топик /led_control (из прошлой программы) публикуется значение "0" - все светодиоды D26-D29 не горят
- Когда нажата кнопка D22 - в топик /led_control публикуется значение "15" - все светодиоды D26-D29 мигают одновременно с частотой 4 Гц
- Когда нажата кнопка D25 - в топик /led_control публикуется значение "69" - все светодиоды D26-D29 мигают попарно ( D26 и D28 / D27 и D29) с частотой 10 Гц
- Когда обе кнопки нажаты - в топик /led_control публикуется значение "1" - все светодиоды D26-D29 - горят
3. Создайте Сервис с собственным сообщением, в котором в запросе передается ПИН переключателя D25/D22 (int8), а в ответ его состояние (bool).
Продемонстрируйте работу программ при помощи утилит rostopic и rosservice
Дополнительные материалы
- Библиотека rosserial
- Библиотека rosserial_arduino
- Примеры использования rosserial_arduino