User Tools

Site Tools


courses:ros:lab3

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:ros:lab3 [2016/09/15 13:50]
anton.filatov
courses:ros:lab3 [2022/12/10 09:08] (current)
Line 1: Line 1:
 ==== Задание ==== ==== Задание ====
  
-Смодулировать на rviz работу радиолокатора: на вход программе подаётся в любом виде окружающая местность, необходимо отражать её в rviz "по кругу"​, как в радиолокаторе+Робот потерялся и не может найти точку выхода. В эфир он посылает сообщения ​о собственныых координатах. Ему на помощь из точки выхода выдвинулся второй робот. Второй робот должен добраться ​до первого. Как только их координаты совпадут - второй робот начинает следовать к выходу - точкеоткуда он начал своё движение. Первый робот начинает ​движение за вторым. Процесс заканчивается, когда ​оба робота ​достигают точки выхода. \\ 
 +(Усложнение) Потерявшийся робот мечется ​в пространствепока до него добирается второй робот.
  
 ==== Указание ==== ==== Указание ====
-В rviz можно писать различные типы сообщений,​ которые уже описаны за нас (не надо каждый раз строить велосипед из маркеров-точек). Полный список и описание поддерживаемых сообщений можно найти [[http://​wiki.ros.org/​rviz/​DisplayTypes| на вики]]. 
-Так, например,​ карту можно отображать при помощи сообщения nav_msgs/​OccupancyGrid. 
-Из чего состоит сообщение можно узнать при помощи команды 
  
-  rosmsg show nav_msgs/​OccupancyGrid 
-  ​ 
-int8[] data - это std::​vector<​int8>​ занятости ячеек. Если карта размером 10х100, то в этом векторе должно быть 1000 значений. Значения должны быть либо в диапазоне от 0(ячейка свободна) до 100(ячейка занята),​ либо -1, если ячейка не является информативной частью карты. 
  
-запущенную ноду ​rviz необходимо подписать ​на топик, куда передаётся ​заполненное ​сообщение +В rviz можно писать различные типы ​сообщений, которые ​уже описаны за нас (не надо ​каждый ​раз строить велосипед из маркеров-точек). Полный список и описание поддерживаемых сообщений можно найти [[http://​wiki.ros.org/​rviz/​DisplayTypes| на вики]]. \\ 
-При посылке очередного сообщения карта перерисовывается заново, то есть правильным будет ​создать изменяющийся ​во времени объект "карта" ​и через ​какие-то интервалы времени отсылать ​его в rviz +Так, например, сферу можно создать ​так:
-{{:start:​ros:​rviz_map.png|}}+
  
 +  visualization_msgs::​Marker marker;
 +  marker.type = visualization_msgs::​Marker::​SPHERE;​
 +
 +Если в тот же топик послать маркер с тем же id, но с другими координатами,​ то rviz сотрёт старый маркер и нарисует новый в новых координатах.
 +
 +В целом структуру программы можно описать так: в tf попадают и координаты потерявшегося робота и робота-помощника. По координатам потерявшегося робота помощник определяет направление движения и движется вдоль этого направления. Как только помощник достигает своей цели, происходит два события:​ помощник начинает движение к выходу,​ а потерявшийся робот едет вслед за помощником. (Понятно,​ что помощник всё ещё должен посылать в эфир собственные координаты,​ чтобы потерявшийся робот знал, куда ехать) ​
courses/ros/lab3.1473947409.txt.gz · Last modified: 2022/12/10 09:08 (external edit)