User Tools

Site Tools


courses:ros:lab1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

courses:ros:lab1 [2016/09/12 06:11]
anton.filatov created
courses:ros:lab1 [2022/12/10 09:08]
Line 1: Line 1:
-==== Задание ==== 
-  * Скачачать с [[https://​github.com/​anyfilatov/​ROS-manuals/​tree/​master/​forLab1|github]] исправления сгенерированных файлов. (Обратите внимание,​ что заменить необходимо два файла, находящиеся в папке lab1/. CMakeLists, лежащий в workspace/​src/​ трогать не надо!) 
-  * Написать программу,​ передающую черепашке команду на движение в случайном направлении. Файл с кодом необходимо назвать 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)  
-  ​ 
courses/ros/lab1.txt · Last modified: 2022/12/10 09:08 (external edit)