LaserScan

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

Описание

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

Можно также преобразовать этот объект в a 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)Создайте объект для хранения 2D скана лидара
plotОтобразите скан лидара или облако точек от структур сообщения ROS
readCartesianСчитайте лазерные области значений скана в Декартовых координатах
readScanAnglesВозвратите углы сканирования для лазерных показаний области значений скана

Примеры

свернуть все

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

Создайте демонстрационные сообщения и смотрите лазерные данные о сообщении скана. 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 object. The axes object 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