readMessages

Чтение сообщений из выбора файла Ibeo Data Container (IDC)

Описание

пример

msgs = readMessages(msgReader) считывает все сообщения, доступные в ibeoMessageReader объект, msgReader. Если вход MessageType свойство msgReader является 'object', этот синтаксис возвращает сообщения оперативного объекта.

msgs = readMessages(msgReader,timeRange) считывает сообщения, которые находятся в пределах заданной временной области значений, timeRange.

[___] = readMessages(___,'DeviceID',deviceID) считывает сообщения, которые соответствуют указанному устройству, deviceID, в сложение к любой комбинации входных параметров из предыдущих синтаксисов.

msgs = readMessages(msgReader,indices) считывает сообщения по заданным линейным индексам, indices.

msgs = readMessages(msgReader,timestamps) считывает сообщения с указанными временными метками, timestamps.

[msgs,metadata] = readMessages(___) возвращает метаданные, сопоставленные с выбранными сообщениями. Если MessageType свойство msgReader является 'object', тогда этот синтаксис не применяется.

[rawMsgs,procMsgs] = readMessages(___) возвращает онлайн-сообщения об обнаружении объектов, rawMsgs, и постпроцессированные сообщения обнаружения объектов, procMsgs, в выделенной области. Чтобы использовать этот синтаксис, MessageType свойство msgReader должен быть 'object'.

[rawMsgs,procMsgs,rawMetadata,procMetadata] = readMessages(___) возвращает метаданные, связанные с rawMsgs и procMsgs. Чтобы использовать этот синтаксис, MessageType свойство msgReader должен быть 'object'.

Примеры

свернуть все

Создайте ibeoFileReader объект, ibeoReader, для чтения заголовков сообщений из файла IDC. Замените аргумент заполнителя sample_data.idc с именем вашего файла IDC следующим sample_data.idc файл не поставляется вместе с тулбоксом.

ibeoReader = ibeoFileReader('sample_data.idc')
ibeoReader =
 
  ibeoFileReader with properties:
 
       FileName: "C:/Documents/MATLAB/ibeo_data/sample_data.idc"
      StartTime: 15-Mar-2020 11:21:04.999434999
        EndTime: 15-Mar-2020 11:25:35.030095000
       Duration: 00:04:30
    FileSummary: CAN             53    msgs [0x1002]
                 scan            53    msgs [0x2205]
                 object          106   msgs [0x2281]
                 image           53    msgs [0x2403]
                 vehicleState    53    msgs [0x2808]
                 measurementList 53    msgs [0x2821]
                 pointCloudPlane 53    msgs [0x7510]
                 unsupported     53    msgs [0x6120]
                 unsupported     53    msgs [0x6970]

Создайте два ibeoMessageReader объекты, imgReader и objReader, для чтения всех изображений и сообщений об обнаружении объектов в первые 2 минут, соответственно, при помощи select функция с соответствующим типом сообщения и значениями временной области значений.

timeRange = [0 minutes(2)];
imgReader = select(ibeoReader,'image',timeRange);
objReader = select(ibeoReader,'object',timeRange);

Считайте первые 10 изображения и все сообщения об обнаружении объектов за первые 2 минуты при помощи readMessages функция на соответствующем ibeoMessageReader объекты с соответствующими indices и timeRange аргументы. Чтение сообщений обнаружения объектов возвращает как интерактивные объекты, так и постпроцессированные объекты вместе с их метаданными.

imgs = readMessages(imgReader,1:10);
[rawObjs,procObjs,rawMetadata,procMetadata] = readMessages(objReader);

Входные параметры

свернуть все

Устройство чтения сообщений, заданное как ibeoMessageReader объект.

Линейные индексы считываемых сообщений, заданные как вектор неотрицательных целых чисел. Максимальное значение индекса, которое может быть задано, соответствует количеству сообщений в выборе, соответствующему NumMessages свойство msgReader.

Временные метки считываемых сообщений, заданные как M-by-1 datetime или вектор длительности. В этой таблице перечислена область значений допустимых значений временных меток на основе типа данных:

timestamps Тип данныхМинимальное значениеМаксимальное значение
datetime векторStartTime свойство msgReaderEndTime свойство msgReader
duration вектор0Duration свойство msgReader

Временная область значений считываемых сообщений, заданный как длительность или вектор datetime формы [startTime endTime]. Если timeRange - вектор длительности, значения startTime и endTime относятся ко времени запуска, заданному StartTime свойство msgReader.

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

Выходные аргументы

свернуть все

Сообщения, считанные из файла IDC, возвращенные как массив структур, массив pointCloud или массив ячеек. Тип данных определяется MessageType свойство msgReader. Для получения дополнительной информации смотрите Структуру данных Сообщений Ibeo и Метаданных.

Метаданные сообщений, возвращенные как массив структур. Поля каждой структуры определяются MessageType свойство msgReader. Для получения дополнительной информации смотрите Структуру данных Сообщений Ibeo и Метаданных.

Оперативные сообщения об обнаружении объектов, возвращенные как массив ячеек из массива структур. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Сообщений Ibeo и Метаданных.

Постпроцессированные сообщения обнаружения объектов, возвращенные как массив ячеек массива структур. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Сообщений Ibeo и Метаданных.

Метаданные оперативных сообщений об обнаружении объектов, возвращенные как массив структур. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Сообщений Ibeo и Метаданных.

Метаданные сообщений обнаружения объектов после обработки, возвращенные как массив структур. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Сообщений Ibeo и Метаданных.

Подробнее о

свернуть все

Структура данных сообщений и метаданных Ibeo

Следующие вызовы функций иллюстрируют использование readMessages функция для чтения нескольких сообщений и связанных с ними метаданных из файла IDC с помощью ibeoMessageReader объект.

  • [msgs, metadata] = readMessages(msgReader)

  • [rawMsgs, procMsgs, rawMetadata, procMetadata] = readMessages(msgReader)

В этой таблице описываются формат и структура данных сообщений и метаданных, возвращаемых этой функцией, на основе типа сообщения ibeoMessageReader объект.

Тип сообщенияФормат сообщения [msgs, rawMsgs, procMsgs]Формат метаданных [метаданные, необработанные метаданные, procMetadata]
Скан

pointCloud массив

Массив структур ScanMetaDataStruct

PointCloudPlane

pointCloud массив

Массив структур PointCloudPlaneMetaDataStruct

Изображение

Массив ячеек H t-by- W t-by-3 матриц, где t - временная метка каждого сообщения.

Массив ячеек объектов ImageMetaDataStruct

Объект

И интерактивные объекты, и постобработанные объекты имеют одинаковую структуру.

Массив ячеек M массивов структур t на 1 ObjectStruct, где t - временная метка каждого сообщения.

Массив структур ObjectMetaDataStruct

VehicleState

Массив структур VehicleStateStruct

Массив структур VehicleStateMetaDataStruct

MeasurementList

Массив ячеек M массивов структур t на 1 MeasurementStruct, где t - временная метка каждого сообщения.

Массив структур MeasurementMetaDataStruct

МОЖЕТ

Массив структур CANStruct

Массив структур CANMetaDataStruct

Совет

При работе с большим количеством сообщений это имеет высокие требования к времени и системной памяти. Рассмотрите чтение небольших пакетов сообщений или использование readNextMessage функция объекта для чтения сообщений один за другим.

Введенный в R2021a