Система сообщений ROS

Первое фундаментальное понятие, с которым нам надо познакомиться, это Сообщение. Создавая любую программу, мы рано или поздно начинаем сталкиваться с обменом данных между разными модулями программы, обычно эти вопросы решаются с применением типов или структур данных.

В ROS - данные, которые мы хотим передавать или получать, объединяются одной конкретной сущностью - Сообщение (message).

Например, если мы говорим "мы получаем данные датчика температуры", то в логике ROS это означает что мы получаем сообщение, содержащие данные о температуре, передаваемые в соответствующий топик, нодой датчика температуры.

Важно уточнить, что любое сообщение описывает определенный и заранее заданный набор данных - структуру, и их тип. Для сообщений от датчика температуры, мы можем представить данные и их тип как одну переменную типа float. В общем случае сообщения могут содержать довольно сложные структуры данных, и также включать в себя "другие" сообщения.

Типовые сообщения ROS, находятся в пакете std_msgs. Мы можем посмотреть все типы сообщений этого пакета.

rosmsg package std_msgs

====
std_msgs/Bool
std_msgs/Byte
std_msgs/ByteMultiArray
std_msgs/Char
std_msgs/ColorRGBA
std_msgs/Duration
std_msgs/Empty
std_msgs/Float32
.....
std_msgs/UInt8
std_msgs/UInt8MultiArray

Все сообщения доступные в системе, мы можем посмотреть командой

rosmsg list

Посмотреть информацию о структуре сообщения возможно используя параметр info и имя типа сообщения. Для данных датчика IMU (инерциальный датчик) мы получим структуру сообщения как представлено ниже.

rosmsg info sensor_msgs/Imu

====
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
geometry_msgs/Quaternion orientation
  float64 x
  float64 y
  float64 z
  float64 w
float64[9] orientation_covariance
geometry_msgs/Vector3 angular_velocity
  float64 x
  float64 y
  float64 z
float64[9] angular_velocity_covariance
geometry_msgs/Vector3 linear_acceleration
  float64 x
  float64 y
  float64 z
float64[9] linear_acceleration_covariance

Более детально о сообщениях можно прочитать в книге Введение в ROS http://docs.voltbro.ru/starting-ros/messaging/message.html

results matching ""

    No results matching ""