LaserScan

Создайте сообщение лазерного скана

Описание

The LaserScan объект является реализацией sensor_msgs/LaserScan тип сообщения в ROS. Объект содержит мета-информацию о сообщении и данных лазерного скана. Извлечь области значений и углы можно используя Ranges свойство и readScanAngles функция. Для доступа к точкам в Декартовых координатах используйте readCartesian.

Можно также преобразовать этот объект в объект lidarScan (Navigation Toolbox) объект для использования с другими алгоритмами робототехники, такими как matchScans (Navigation Toolbox), controllerVFH (Navigation Toolbox), или monteCarloLocalization (Navigation Toolbox).

Создание

Описание

пример

scan = rosmessage('sensor_msgs/LaserScan') создает пустой LaserScan объект. Можно задать информацию и данные сканы, используя свойства, или можно получить эти сообщения из сети ROS, используя rossubscriber.

Свойства

расширить все

Это свойство доступно только для чтения.

Тип сообщения ROS, возвращенный как вектор символов.

Типы данных: char

Это свойство доступно только для чтения.

Сообщение заголовка ROS, возвращенное как Header объект. Это сообщение заголовка содержит MessageType, последовательность (Seq), временная метка (Stamp), и FrameId. Временная метка относится ко времени захвата первого луча в скане.

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

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

Шаг угла данных области значений, заданный как скаляр в радианах.

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

Время завершения полного скана в секундах, заданное как скаляр.

Минимальное допустимое значение области значений в виде скаляра.

Максимально допустимое значение области значений в виде скаляра.

Диапазонные показания лазерного скана, заданные как вектор. Чтобы получить соответствующие углы, используйте readScanAngles.

Значения интенсивности из показаний области значений, заданные как вектор. Если допустимые показания интенсивности не найдены, это свойство пустое.

Функции объекта

lidarScan (Navigation Toolbox)Создайте объект для хранения 2-D сканы лидара
plotОтображение скана лидара или облака точек из структур сообщений ROS
readCartesianСчитайте области значений скана в Декартовых координатах
readScanAnglesВерните углы скана для показаний области значений лазерного скана

Примеры

свернуть все

Загрузите, осмотрите и отобразите выборку сообщение о скане лазера.

Создайте образцы сообщений и проверьте данные сообщения лазерного скана. The scan объект является образцом ROS LaserScan объект сообщения.

exampleHelperROSLoadMessages
scan
scan = 
  ROS LaserScan message with properties:

       MessageType: 'sensor_msgs/LaserScan'
            Header: [1x1 Header]
          AngleMin: -0.5467
          AngleMax: 0.5467
    AngleIncrement: 0.0017
     TimeIncrement: 0
          ScanTime: 0.0330
          RangeMin: 0.4500
          RangeMax: 10
            Ranges: [640x1 single]
       Intensities: [0x1 single]

  Use showdetails to show the contents of the message

Получите области значений и углы из свойств объекта. Проверьте, что области значений и углы совпадают по размеру.

ranges = scan.Ranges;
angles = scan.readScanAngles;
size(ranges)
ans = 1×2

   640     1

size(angles)
ans = 1×2

   640     1

plot(scan)

Figure contains an axes. The axes with title Laser Scan contains an object of type line.

scan = rosmessage('sensor_msgs/LaserScan')
scan = 
  ROS LaserScan message with properties:

       MessageType: 'sensor_msgs/LaserScan'
            Header: [1x1 Header]
          AngleMin: 0
          AngleMax: 0
    AngleIncrement: 0
     TimeIncrement: 0
          ScanTime: 0
          RangeMin: 0
          RangeMax: 0
            Ranges: [0x1 single]
       Intensities: [0x1 single]

  Use showdetails to show the contents of the message

Введенный в R2019b