LaserScan

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

Описание

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

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

Создание

Описание

пример

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(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

Введенный в R2019b