Получение ошибки: YAML:: TypedBadConversion<double>'

Я пытался преобразовать информацию о камере из файла yaml в sensor_msgs/CameraInfo. Файл yaml был успешно загружен. И ошибка возникает при попытке получить значение коэффициента искажения:

YAML::Node conf = YAML::LoadFile(yaml_file); 
std::vector<double> dd;
dd = conf["distortion_coefficients"]["data"].as<std::vector<double> >();

И ошибка выглядит так: "терминат вызывается после броска экземпляра

'YAML::TypedBadConversion' what(): yaml-cpp: ошибка в строке 0, столбец 0: плохое преобразование "

Мой файл YAML для distortion_coefficients похож на

distortion_coefficients:   
  rows: 1  
  cols: 5  
  data: [0.013750 -0.162804 0.008105 0.002423 0.000000]

Есть идеи как это решить?

1 ответ

Решение

Ваш data не имеет запятых, разделяющих значения, поэтому его нельзя прочитать как последовательность чисел.

Если вы измените его на

distortion_coefficients:   
  rows: 1  
  cols: 5  
  data: [0.013750, -0.162804, 0.008105, 0.002423, 0.000000]

тогда это должно работать как ожидалось.

Другие вопросы по тегам