картограф добивается чистого позиционирования

искусственный интеллект

\

добиться чистого позиционирования

 

(1) Поскольку карта обычной карты картографа публикуется картографом, следующим образом

 

rostopic info /map

Type: nav_msgs/OccupancyGrid

Publishers:

 * /cartographer_occupancy_grid_node

Поэтому выпуск карты нужно заменить на

 

<node name="map_server" pkg="map_server" type="map_server"

args="/home/lx/carto_ws/map/2d-1.yaml" />

 

удалить оригинал

<node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"

      type="cartographer_occupancy_grid_node" args="-resolution 0.05" />

Это изменено в файле запуска, который запускает отображение картографа.

 

(2) Открытое чистое позиционирование

Измените параметры конфигурации файла lua.

 

 

TRAJECTORY_BUILDER.pure_localization_trimmer = {

max_submaps_to_keep = 3, //Максимальное количество сохраняемых подкарт, режим позиционирования позиционируется по подкартам, но нужны только текущая и предыдущая подкарты, здесь ставлю 2

}

POSE_GRAPH.optimize_every_n_nodes = 20 //Каждые 20 допустимых кадров есть подграф, и после создания подграфа требуется обнаружение с обратной связью.

 

Принцип чистого позиционирования

image.png

Чисто позиционированное дерево ТФ

image.png

Карта tf для следа на картинке - это фактическая поза робота.

 

Оптимизация для чистого позиционирования

 

Чистое позиционирование имеет как минимум две траектории

Чистая локализация отличается от картографирования. Во-первых, мы ожидаем меньшей задержки для локального и глобального SLAM. Во-вторых, глобальный SLAM обычно находит очень большое количество взаимных ограничений между замороженной траекторией в виде карты и текущей траекторией.

 

Если вы используете pure_localization в , submaps.resolution должно соответствовать разрешению используемой вами подкарты .pbstream. Использование другого разрешения в настоящее время не проверено и может работать не так, как ожидалось.

 

POSE_GRAPH.optimize_every_n_nodes нужно уменьшить, тогда частоту оптимизации увеличить

Уменьшение global_sampling_ratio снижает глобальную частоту дискретизации, а уменьшение limited_builder.sampling_ratio уменьшает частоту дискретизации общих ограничений. Поэтому объем расчета уменьшается

 

Чтобы запустить чистое позиционирование, submaps.resolution должно совпадать с разрешением подкарт в .pbstream.

 

Релевантная информация

Прикладная адаптация режима чистого позиционирования Cartographer на низкопроизводительных процессорах

blog.CSDN.net/Spiderweb/art…