⛄
new_Базовый курс по ROS
  • Обложка
  • Урок 1. Введение в ROS
    • Что такое ROS ?
    • Знакомство с роботом TurtleBro
    • Настройка ПК
    • Установка ROS
    • Настройка робота TurtleBro
    • Настройка VSCode
    • Практические задания
  • Урок 2. Базовый понятия ROS
    • Основы теории управления
    • Сущности ROS как элементы ТАУ
    • Базовые утилиты ROS
    • Практические задания
  • Урок 3. Издатель
    • Издатель (Publisher)
    • Издатель команд для робота
    • Практические задания
  • Урок 4. Подписчик
    • Подписчик (Subscriber)
    • Подписчик на данные робота
    • Практические задания
  • Урок 5. Подписчик и Издатель
    • Взаимодействие Подписчика и Издателя в рамках одной ноды. Часть 1
    • Практические задания
    • Взаимодействие Подписчика и Издателя в рамках одной ноды. Часть 2
    • Практические задания
      • Решение
  • Урок 6. Работа с Arduino
    • Работа с Arduino
    • Создание Издателя
    • Создание Подписчика
    • Практические задания
  • Курсовая работа
    • Задание
  • Итог
    • Заключение
Powered by GitBook
On this page

Was this helpful?

  1. Урок 6. Работа с Arduino

Создание Подписчика

Аналогичным образом мы можем создать подписчика на Arduino, который получает данные из ROS и обрабатывает их.

#include <ros.h>
#include <std_msgs/Empty.h>

class NewHardware : public ArduinoHardware
{
  public:
  NewHardware():ArduinoHardware(&Serial1, 115200){};
};
ros::NodeHandle_<NewHardware>  nh;

void messageCb( const std_msgs::Empty& toggle_msg){
  digitalWrite(13, HIGH-digitalRead(13));   // blink the led
}

ros::Subscriber<std_msgs::Empty> sub("toggle_led", &messageCb );

void setup()
{
  pinMode(13, OUTPUT);
  nh.initNode();
  nh.subscribe(sub);
}

void loop()
{
  nh.spinOnce();
  delay(1);
}

Приведенный выше скетч подписывается на топик toggle_led и при получения сообщения меняет уровень напряжения на ноге D13 к которой "подключен" светодиод.

Для проверки загрузим код на Arduino и начнем публиковать данные к топик.

rostopic pub /toggle_led std_msgs/Empty "{}" -r 2

Параметр -r 2 задает частоту публикации данных 2Гц. Это значит что наш светодиод должен переключаться из состояние "включен" в состояние "выключен" каждые 500мс.

PreviousСоздание ИздателяNextПрактические задания

Last updated 1 year ago

Was this helpful?