User Tools

Site Tools


courses:ros:class1

Differences

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

Link to this comparison view

courses:ros:class1 [2018/10/25 19:06]
kseniya.diogenova
courses:ros:class1 [2022/12/10 09:08]
Line 1: Line 1:
- ==== Занятие № 1. Введение в среду ==== 
  
- == По завершении занятия студент должен:​ == 
-  * установить среду 
-  * уметь писать простые программы,​ взаимодействующие с ROS 
- 
- == Содержание == 
-  * Демонстрация примера с использованием rviz 
-  * Описание структуры общения node-topic 
-  * Описание простой программы Hello world 
- 
- == Как написать программу == 
-В первую очередь необходимо создать workspace 
- 
-  $ mkdir -p ~/<​put_your_path_here>/​workspace/​src 
-  $ cd ~/<​put_your_path_here>/​workspace/​src 
-  $ catkin_init_workspace 
-  ​ 
-После выполнения этой команды создастся только ссылка на CMakeLists.txt,​ однако,​ для утилиты catkin это будет означать,​ что рабочая область определена в дивектории workspace/ 
-После сборки в директории workspace/ появятся папки devel/ и build/ 
- 
-Во-вторых,​ находясь в директории workspace/​src/​ необходимо создать пакет 
-  $ catkin_create_pkg lab1 
-Дерево файловой системы должно выглядеть следующим образом:​ 
-  ​ 
-  workspace/ 
-  ┣━━━━src/​ 
-  ┃    ┣━━━━CMakeLists.txt 
-  ┃    ┗━━━━lab1/​ 
-  ┃         ​┣━━━━package.xml 
-  ┃         ​┣━━━━CMakeLists.txt 
-  ┃         ​┣━━━━... 
-  ┃         ​┗━━━━src/​ 
-  ┃              ┗━━━━... 
-  ┣━━━━devel/​ 
-  ┃    ┗━━━━... 
-  ┗━━━━build/​ 
-       ​┗━━━━... 
- 
-В папке src/ необходимо расположить файлы исходного кода. 
- 
- == Задание == 
-  * Скачать с [[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. Тип сообщения можно узнать,​ выведя информацию о топике. ​ 
- 
-Информацию о том, из каких полей состоит сообщение можно узнать командой 
-  rosmsg show <​msg_type>​ 
-В тексте программы необходимо создать объект класса <​msg_type>​ и наполнить его содержимым. Информативными являются поля msg.linear.x и msg.angular.z. Остальные поля сообщения не учитываются при обработке. 
- 
-После того, как сообщение сформировано,​ его можно отправить в топик командой 
-  <​publisher_name>​.publish (msg)  
-  ​ 
courses/ros/class1.txt · Last modified: 2022/12/10 09:08 (external edit)