Инструменты пользователя

Инструменты сайта


courses:ros:lab1

Задание

  • Написать программу, передающую черепашке команду на движение по заданной траектории. Файл с кодом необходимо назвать lab1.cpp и расположить в папке src/
Краткое пояснение к заданию

У объекта класса NodeHandle

ros::NodeHandle <node_handle_name>;

есть метод, реализующий механизм отправки сообщений в топик с именем <topic_name>.

Это делается при помощи команды

ros::Publisher <publisher_name> = <node_handle_name>.advertise<msg_type>("<topic_name>",<size>);

где <topic_name> это имя топика, через который будут общаться publisher и subscriber; а <size> - размер буфера сообщений (а треугольные скобочки после advertize - это конкретизация шаблонной функции).

В данном случае имя топика можно получить, узнав, на какой топик подписан turtlesim_node. Тип сообщения можно узнать, выведя информацию о топике. Команды для этого:

rosnode list
rosnode info <node_name>
rostopic info <topic_name>

Информацию о том, из каких полей состоит сообщение можно узнать командой

rosmsg show <msg_type>

В тексте программы необходимо создать объект класса <msg_type> и наполнить его содержимым. Информативными являются поля msg.linear.x и msg.angular.z. Остальные поля сообщения не учитываются при обработке.

После того, как сообщение сформировано, его можно отправить в топик командой

<publisher_name>.publish (msg)