Поведение восстановления очищает слой препятствий - PullRequest
0 голосов
/ 23 апреля 2020

Я использую RP-Lidar / scan topi c вместе с move_base из стека навигации. Хотя слой препятствий параметризован для получения данных типа LaserScan из / scan topi c, я получаю сообщение, что «Поведение восстановления устранит« препятствия »слоя». Хочу отметить, что UniTest over / scan topi c и / odom topi c работают нормально. Таким образом, в моем RVIZ препятствия не показаны, и планировщик учитывает их, чтобы предотвратить столкновение. Для ясности вот мой общий конфигурационный файл:

footprint: [ [-0.15,-0.15], [0.15,-0.15], [0.15,0.15], [-0.15,0.15] ]
transform_tolerance: 0.5
map_type: costmap
obstacle_layer:
 enabled: true
 obstacle_range: 3.0
 raytrace_range: 3.5
 inflation_radius: 0.2
 track_unknown_space: false
 combination_method: 1
 observation_sources: laser_scan_sensor
 laser_scan_sensor: {sensor_frame: scanmatcher_frame, data_type: LaserScan, topic: /scan, marking: true, clearing: false}
inflation_layer:
  enabled:              true
  cost_scaling_factor:  1.0  
  inflation_radius:     0.2
obstacle_layer:
     enabled: true
     obstacle_range: 5.0
     raytrace_range: 1.0
     observation_sources: "/scan"
     observation_persistence: 0.0
     inf_is_valid: false
     scan:
       data_type: LaserScan
       topic: scan  

1 Ответ

0 голосов
/ 24 апреля 2020

Ваш observation_sources должен быть scan, а не "/scan".

Как упомянуто в вики Уровень препятствий :

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

~ // topi c (строка, по умолчанию: имя_источника)

Топи c, в которую поступают данные датчика для этого источника. По умолчанию используется имя источника.

...