Создание Издателя

Рассмотрим пример программы Издателя, который публикует из Arduino в топик chatter текстовое сообщение "hello world!"

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

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

std_msgs::String str_msg;
ros::Publisher chatter("chatter", &str_msg);

char hello[13] = "hello world!";

void setup()
{
  nh.initNode();
  nh.advertise(chatter);
}

void loop()
{
  str_msg.data = hello;
  chatter.publish( &str_msg );
  nh.spinOnce();
  delay(1000);
}

Один из важных частей в примере, это блок в котором мы настраиваем библиотеку для работы через порт Serial1 и устанавливаем скорость работы 115200. Если указать неправильный порт или скорость, подключения не будет.

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

Загрузим скетч на платуArduino.

После загрузки, зайдем на Raspberry и посмотрим, появился ли созданный топик:

rostopic list

Также мы можем вывести в терминал сообщение из топика:

rostopic echo /chatter

Last updated