LaserScan

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

Описание

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

Можно также преобразовать это в объект lidarScan использовать с другими алгоритмами робототехники, такими как matchScans, robotics.VectorFieldHistogram или robotics.MonteCarloLocalization.

Создание

Синтаксис

scan = rosmessage('sensor_msgs/LaserScan')

Описание

пример

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

Свойства

развернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

lidarScanСоздайте объект для хранения 2D сканирования лазерного дальномера
plotОтобразите лазер или лоцируйте показания сканирования
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.

plot(scan)

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

Введенный в R2016a