Комментарии 3
Нужно написать некий код, который подгрузит карту, найдёт текущее положение, поставил задачу планировщику (конечную точку) и будет крутить в цикле какой-то next_step(), пока робот не окажется в конечной точке? Потом обернуть запуск этой ноды и всех зависимостей в .launch?
Привет!
Некоторое время не следил за темой — возможно ребята (из / вместе с) ros уже придумали какой — нибудь комплексный подход. Мне в голову пришло следующее:
1 — вроде у slam rtabmap есть некий localization mode и там говорится о multi-session mapping.
возможно, локализацию в уже построеной карте можно положить на этот узел.
2 — дальше в зависимости от того, что у нас за железо (ходящее, ездиющее, ползающее) и насколько оно маневренное — берем из карты какой — нибудь упрощенный агрегат — octomap, occupancy_map для планирования маршрута / движения
выбор цели — отдельная история (широкий простор для фантазии).
для простоты — можно попробовать задавать вручную — например с удаленной машинки.
http://wiki.ros.org/ROS/Tutorials/MultipleMachines
3 — дальше — берем что — нибудь для планирования (от простого move_base до сложного gazebo) и просим железяку напрямую или косвенно проделывать те финты, которые предлагает планировщик чтобы дойти туда, куда планировалось.
Тут же обработка внештатных ситуаций вида "не смог" и т.п.
Здесь могу соврать — с этим почти не работал.
Где это считать? Хороший вопрос.
Мне кажется хорошей идеей считать это на отдельной машинке — думаю, встраиваемое железо, которому хватит сил bubuntu + ros + slam + планировщик — дорогое и в этом мало смысла.
Интересная задачка — стриминг point_cloud по сети — тоже недешево (они вроде большие).
Хотя, наверняка их пережимать можно.
Писать скорее всего придется мало — и в основном конфиги =)
Самое сложное уже давно реализовано.
ROS. Стек навигации