select

Выберите подмножество сообщений, чтобы читать из файла Контейнера данных Ibeo (IDC)

Описание

Использование select возразите функции, чтобы задать подмножество сообщений, чтобы читать из файла IDC на основе типа сообщения, идентификатора сообщения или ID устройства. select метод возвращает ibeoMessageReader объект, который может использоваться, чтобы считать выбранные сообщения из файла IDC. Поддерживаемые значения для типа сообщения и идентификатора сообщения описаны ниже. Лицензия Lidar Toolbox™ требуется считать scan и pointCloudPlane сообщения.

Тип сообщения Идентификатор сообщенияIbeo® Имя типа данных
'scan''0x2205' Fusion Ibeo данные сканирования SYSTEM/ECU
'pointCloudPlane''0x7510'Плоскость облака точек Ibeo
'image''0x2403'Fusion Ibeo изображение SYSTEM/ECU
'object''0x2281'Fusion Ibeo данные объектов SYSTEM/ECU
'vehicleState''0x2808'Fusion Ibeo состояние транспортного средства SYSTEM/ECU
'measurementList''0x2821'Fusion Ibeo список измерений SYSTEM/ECU
'CAN''0x1002'Fusion Ibeo сообщения CAN SYSTEM/ECU

пример

msgReader = select(ibeoReader,msgType) создает ibeoMessageReader объект, msgReader, это может считать все сообщения типа, msgType, существующий в ibeoFileReader объект, ibeoReader.

msgReader = select(ibeoReader,msgID) создает ibeoMessageReader объект, msgReader. это может считать все сообщения с ID, msgID, существующий в ibeoFileReader объект.

msgReader = select(___,timeRange) указывает диапазон времени в который ibeoMessageReader объект может считать сообщения, в дополнение к любой комбинации аргументов от предыдущих синтаксисов.

msgReader = select(___,'DeviceID',deviceID) задает соответствие ID устройства который ibeoMessageReader объект может считать сообщения, в дополнение к любой комбинации аргументов от предыдущих синтаксисов.

Примеры

свернуть все

Создайте 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);

Создайте 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, считать все изображения за первые 2 минуты, при помощи select функция с соответствующим типом сообщения и значениями области значений времени.

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

Визуализируйте данные о сообщении путем чтения сообщений по одному в объект видеоплеера. Во-первых, создайте vision.VideoPlayer объект. Затем используйте hasNextMessage функционируйте, чтобы проверять ли imgReader содержит сообщение после текущего. Если это делает, использовать readNextMessage функционируйте, чтобы считать изображения в рабочую область.

videoPlayer = vision.VideoPlayer;
while hasNextMessage(imgReader)
    img = readNextMessage(imgReader);
    step(videoPlayer,img);
end
release(videoPlayer);
     

Сбросьте ibeoMessageReader объект, imgReader, к первому сообщению в выборе, с помощью reset функция.

 reset(imgReader);

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

свернуть все

ibeoFileReader объект, соответствуя файлу IDC, который будет считан.

Тип сообщения, чтобы читать из файла IDC в виде строкового скаляра или вектора символов. Определенный msgType значения соответствуют типам данных Ibeo, как проиллюстрировано в таблице.

Идентификатор сообщения типа сообщения, который будет считан из файла IDC в виде строкового скаляра или вектора символов. Определенный msgID значения соответствуют типам данных Ibeo, как проиллюстрировано в таблице.

Область значений времени, в которой можно считать сообщения в виде длительности или вектора datetime из формы [startTime endTime]. Если timeRange вектор длительности, startTime и endTime относительно времени начала, заданного StartTime свойство ibeoReader.

Идентификаторы устройства сообщений, чтобы читать в виде скаляра или вектора из неотрицательных целых чисел. Для списка идентификаторов устройства, которые можно выбрать, смотрите DeviceID столбец таблицы, хранимой в FileSummary свойство ibeoReader.

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

свернуть все

Передайте читателя, возвращенного как ibeoMessageReader объект. Этот объект чтения выбрал сообщения из файла IDC.

Введенный в R2021a