В частности, я бы посмотрел на параметры карты затрат для плагинов, в основном плагины static_map
и obstacles
. Возможно, вы хотите, чтобы параметр staticmap
trinary_costmap
был истинным, чтобы иметь полную шкалу значений в карте затрат. Те, что указаны в obstacles
, могут изменить то, что вы ожидаете увидеть, с несколькими слоями или входными данными.
Я бы также посмотрел на пакет Clearpath Husky husky_navigation в качестве хорошего примера, например. move_base.launch файл. Все параметры записываются в каталог config/
и загружаются rosparam
в узел move_base
. Некоторые детали: если вы составляете локальную карту затрат, которая перемещается вместе с роботом, вы не хотите отслеживать пустое пространство, вам нужно скользящее окно и использовать слой препятствий вместо слоя stati c. ; для глобального вы бы отслеживали все пространство, но не перемещали бы окно относительно робота, и вы бы использовали бы карту stati c.
Я думаю, что у вас есть одна проблема в потоке данных . Как Ros (и большинство людей из-за этого) склоняется к тому, чтобы иметь начальную / stati c карту, загруженную с самого начала (map_server
) для amcl
и move_base
, обновите оба с помощью LaserScan
s & / или PointCloud
s, и тогда у вас останется только результат amcl
tfs кадра и оценка локальной позиции, и, подав его в узел move_base
, вам понадобится только goal
. Чтобы использовать сообщение карты occ_grid для обновления amcl
, например, вам нужно изменить параметр use_map_topic
.
Изменить: в случае, если map_server
было тем, что вам действительно нужно, вот пример использования, который я взял из amcl_demo.launch
:
<!-- Run the map server -->
<arg name="map_file" default="$(find husky_navigation)/maps/playpen_map.yaml"/>
<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />