Анализ параметров Costmap_common_params.yaml и точки модификации

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


В этом документе указаны размерные параметры шасси робота и параметры расширения препятствий. Для конкретного робота соответствующие параметры должны быть изменены, чтобы соответствовать корпусу робота. #Максимально допустимая высота показаний датчика, в метрах;

Обычно она устанавливается немного выше фактической высоты робота, а высота относится к максимальной высоте, включая выпрямление манипулятора робота.

max_obstacle_height: 0.60  # assume something like an arm is mounted on top of the robot

 

robot_radius Для круглого робота это радиус робота в метрах, для некруглого робота

Вы можете использовать параметр посадочного места, упомянутый далее. Используемые здесь значения являются необработанными данными Черепахи.

robot_radius: 0.15  # distance a circular robot should be clear of the obstacle (kobuki: 0.18)

 

footprint: [[x0, y0], [x1, y1], ... [xn, yn]]  # if the robot is not circular

Каждая координата в списке представляет собой точку сбоку от робота, а центр робота установлен на [0,0]. Единица измерения – метры.

Точки по периметру робота располагаются либо по часовой, либо против часовой стрелки.

Когда робот не круглый, сначала найдите центр вращения робота, то есть центральная точка двух колес установлена ​​​​на (0,0), а затем определите направление размещения робота, x, y - край каждая геометрия робота, каждая вершина. Перечислите все вершины в нем. След робота завершен

footprint: [[0.55, 0.375], [0.55, -0.375],[-0.55, -0.375], [-0.55, 0.375]]

 

Тип карты, здесь voxel (воксельная карта). Другой тип карты — карта затрат.

Разница между ними заключается в том, что первое представляет собой трехмерное представление мира, а второе — двумерное представление мира.

map_type: voxel

 

Параметры слоя препятствий

obstacle_layer:

включено:     true #enable

Максимальная допустимая высота (единица измерения: м) для показаний датчика. Обычно устанавливается немного выше высоты робота. Установка для этого параметра значения, превышающего глобальный параметр max_obstacle_height, не будет иметь никакого эффекта.

Значение, установленное ниже глобального max_obstacle_height, будет отфильтровывать точки на датчике, которые больше этой высоты.

max_obstacle_height:  0.6

min_obstacle_height:  0.0

combo_method: поведение обработки входящих данных из других слоев, отличных от препятствия_слоя,

Тип перечисления (enum). Возможные значения: перезаписать существующее значение «Перезаписать» (0), взять максимальное значение «Максимум» (1), ничего не делать «Ничего» (99). «Перезапись» — это просто «переопределение» данных других слоев, например, чтобы они не имели никакого эффекта. «Возьмите максимальное значение» требуется большую часть времени. Он извлекает максимальное значение данных, предоставленных на уровне препятствия или во входных данных. «Ничего» вообще не меняет входящие данные.

# Обратите внимание, что это сильно влияет на то, как ведет себя карта стоимости, в зависимости от того, как вы установили track_unkown_space.

combination_method:   1

track_unknown_space При значении false каждый пиксель имеет одно из двух состояний:

Смертельный или свободный. Если true, каждый пиксель имеет одно из 3 состояний:

Смертельный, свободный или неизвестный.

track_unknown_space:  true    #true needed for disabling global path planning through unknown space

Эти два параметра используются для установки порога информации о препятствиях карты затрат.

«obstacle_range» обновляет робота как центр в соответствии с этим значением в качестве информации о препятствиях в пределах радиуса.

Максимальная протяженность препятствий, вносимых в карту стоимости, в метрах.

obstacle_range: 2.0

Обновление «raytrace_range» сосредоточено на роботе, и это значение представляет собой свободное пространство в пределах радиуса.

Максимальная дальность сканирования препятствий с карты в метрах.

raytrace_range: 5.0

# в настоящее время не используется

origin_z z origin, в метрах, только для воксельных карт

#origin_z: 0.0

#z_resolution Разрешение по оси z, единицы метры/ячейка;

#z_resolution: 0.2

#z_voxels Количество вокселей в каждом вертикальном столбце, значение по умолчанию пакета ROS Nav равно 10.

#z_voxels: 2

# unknown_threshold: 15 Максимальное количество неизвестных ячеек («неизвестно»), содержащихся во всем столбце, когда воксель «известен» («известен»)

mark_threshold: 0 Максимальное количество отмеченных ячеек («помеченных»), содержащихся во всем столбце вокселей, когда он «свободен» («свободен»).

 

 

publish_voxel_map: публиковать ли базовую растровую карту вокселей, которая в основном используется для визуализации.

publish_voxel_map: false

Параметр «observation_sources» определяет набор датчиков, которые передают пространственную информацию в карту затрат. Каждый датчик определяется в следующей строке.

 

Глядя на источник, здесь у нас есть данные о лазере (скан) и данные о бампе (bump). Список источников наблюдения разделен пробелами и определяет каждое из пространств имен в параметрах ниже.

observation_sources:  scan

scan:

data_type: LaserScan

topic: "/scan"

Параметры «маркировка» и «очистка» определяют, используется ли датчик для добавления информации о препятствиях на карту затрат.

# Либо удалить информацию о препятствиях из карты затрат, либо и то, и другое.

marking: true

clearing: true

expected_update_rate: 0

Примечание: в отношении маркировки и очистки:

Параметры маркировки и очистки используются для указания того, нужно ли использовать информацию датчика в реальном времени для добавления или удаления информации о препятствиях на карте затрат.

Costmap автоматически подписывается на тему датчика и автоматически обновляется.

Каждый датчик используется для операций маркировки (вставки информации о препятствиях в карту затрат), операций очистки (удаления информации о препятствиях из карты затрат) или и того, и другого.

Если используется воксельный слой, информацию о препятствиях в каждом столбце необходимо спроецировать в двух измерениях, прежде чем ее можно будет поместить на карту стоимости.

 

#cost_scaling_factor and inflation_radius were now moved to the inflation_layer ns

#Параметры слоя расширения

inflation_layer:

enable: true # включить карту инфляции

# cost_scaling_factor Коэффициент масштабирования, применяемый к значениям стоимости во время инфляции. По умолчанию: 10. Для двух разных ячеек, ячеек за пределами вписанного радиуса и ячеек в пределах вписанного радиуса, формула расчета функции стоимости выглядит следующим образом:

exp(-1.0 * cost_scaling_factor * (distance_from_obstacle - inscribed_radius)) * (costmap_2d::INSCRIBED_INFLATED_OBSTACLE - 1)

cost_scaling_factor:  10.0  # exponential rate at which the obstacle cost drops off (default: 10)

Здесь мы задаем занимаемую площадь робота.При заполнении футпринта, заданного «футпринтом» в соответствии с настройкой координат робота, считается, что центр робота находится в точке (0,0, 0,0), причем как по часовой, так и против часовой стрелки спецификации поддерживаются.

robot_radius : Занимаемая область робота представляет собой круг, а радиус можно задать напрямую

Inflation_radius: Установите радиус инфляции карты затрат. Можно понять, что радиус расширения робота как центра не может иметь препятствий в пределах этого значения.

Радиус препятствий на карте в метрах. Если ваш робот не может хорошо пройти через узкие двери или другие узкие места,

немного уменьшите это значение. И наоборот, если робот продолжает бить предметы, попробуйте увеличить это значение.

inflation_radius:     0.1 # max. distance from an obstacle at which costs are incurred for planning paths.

 

static_layer:

enabled:              true

map_topic:            "/map"

 

 

# Приложение:

Bump: второй источник наблюдения: данные Bump. Определено: типы данных источника наблюдения, публикации тем, маркировка и добавление функций препятствий, а также определение допустимого диапазона значений источника датчика.

data_type: тип данных PointCloud2 — облако точек.

тема: mobile_base/sensors/bumper_pointcloud Тема: mobile_base/sensors/bumper_pointcloud

маркировка: true включает маркировку препятствий

очистка: false отключает функцию очистки препятствий

min_obstacle_height: 0.0 Наименьшее допустимое показание датчика в метрах.

max_obstacle_height: 0,15 Максимальная допустимая высота для показаний датчика в метрах.