Освоение ROS2: публикация сообщений из командной строки

ROS2 (Операционная система робота 2) – популярная платформа для разработки роботизированных систем. Одной из его ключевых особенностей является возможность обмена сообщениями между различными компонентами системы. В этом сообщении блога мы рассмотрим различные методы публикации сообщений в ROS2 непосредственно из командной строки. Мы предоставим примеры кода для демонстрации каждого метода.

Метод 1: Использование команды ros2 topic pub:
Команда ros2 topic pubпозволяет вручную публиковать сообщения в определенной теме. Вот пример того, как его использовать:

ros2 topic pub /topic_name message_type '{field1: value1, field2: value2}'

Замените /topic_nameна название темы, в которой вы хотите опубликовать, message_typeна тип сообщения, которое вы хотите опубликовать, и укажите значения для сообщения. поля.

Метод 2. Использование команды ros2 runс пользовательским скриптом.
Вы можете создать собственный скрипт Python для публикации сообщений, а затем использовать команду ros2 runдля его выполнения. это. Вот пример:

Создайте файл с именем publisher.pyсо следующим кодом:

import rclpy
from std_msgs.msg import String
def main(args=None):
    rclpy.init(args=args)
    node = rclpy.create_node('message_publisher')
    publisher = node.create_publisher(String, '/topic_name')
    msg = String()
    msg.data = 'Hello, world!'
    while rclpy.ok():
        publisher.publish(msg)
        rclpy.spin_once(node)
if __name__ == '__main__':
    main()

Затем из командной строки выполните следующую команду:

ros2 run <package_name> publisher.py

Замените <package_name>на имя вашего пакета ROS2.

Метод 3: Использование файла запуска:
Файлы запуска ROS2 предоставляют удобный способ запуска нескольких узлов и настройки их параметров. Вот пример использования файла запуска для публикации сообщений:

Создайте файл с именем publish.launch.pyсо следующим кодом:

from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
    return LaunchDescription([
        Node(
            package='package_name',
            executable='publisher_node',
            name='message_publisher',
        ),
    ])

Замените package_nameна имя вашего пакета ROS2 и publisher_nodeна имя узла, ответственного за публикацию сообщений.

Затем из командной строки выполните следующую команду:

ros2 launch <package_name> publish.launch.py

Замените <package_name>на имя вашего пакета ROS2.

В этом сообщении блога мы рассмотрели три различных метода публикации сообщений в ROS2 из командной строки. Мы рассмотрели использование команды ros2 topic pub, создание собственного сценария Python и использование файла запуска. Каждый метод обеспечивает гибкость и может использоваться в зависимости от конкретных требований вашего проекта ROS2. Освоив эти методы, вы сможете эффективно публиковать сообщения и создавать сложные роботизированные системы.