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
Next revision Both sides next revision
courses:ros:lab3 [2016/09/15 13:50]
anton.filatov
courses:ros:lab3 [2016/09/16 13:44]
anton.filatov
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.txt · Last modified: 2022/12/10 09:08 (external edit)