exponenta event banner

readCartesian

Считывание диапазонов лазерного сканирования в декартовых координатах

Описание

пример

cart = readCartesian(scan) преобразует полярные измерения объекта лазерного сканирования, scan, в декартовы координаты, cart. Эта функция использует метаданные в сообщении, такие как угловое разрешение и угол открытия лазерного сканера, для выполнения преобразования. Недопустимые показания диапазона, обычно представленные как NaN, игнорируются в этом преобразовании.

Примечание

ReadDecartesian будет удален. Использовать rosReadCartesian вместо этого. Для получения дополнительной информации см. Функции структуры сообщений ROS

пример

cart = readCartesian(___,Name,Value) предоставляет дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары. Имя должно отображаться в отдельных кавычках (''). Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

[cart,angles] = readCartesian(___) возвращает углы сканирования, angles, которые связаны с каждой декартовой координатой. Углы измеряются против часовой стрелки вокруг положительной оси z с нулевым углом вдоль оси X. angles возвращается в радианах и переносится в [-pi, pi] интервал.

Примеры

свернуть все

Подключение к сети ROS. Подпишитесь на тему лазерного сканирования и получите сообщение.

rosinit('192.168.17.129')
Initializing global node /matlab_global_node_40737 with NodeURI http://192.168.17.1:56343/
sub = rossubscriber('/scan');
scan = receive(sub);

Считывайте декартовы точки из лазерного сканирования. Постройте график лазерного сканирования.

cart = readCartesian(scan);
plot(cart(:,1),cart(:,2))

Завершение работы сети АФК.

rosshutdown
Shutting down global node /matlab_global_node_40737 with NodeURI http://192.168.17.1:56343/

Подключение к сети ROS. Подпишитесь на тему лазерного сканирования и получите сообщение.

rosinit('192.168.17.129')
Initializing global node /matlab_global_node_12735 with NodeURI http://192.168.17.1:56572/
sub = rossubscriber('/scan');
scan = receive(sub);

Считывайте декартовы точки из лазерного сканирования с заданными пределами дальности. Постройте график лазерного сканирования.

cart = readCartesian(scan,'RangeLimit',[0.5 6]);
plot(cart(:,1),cart(:,2))

Завершение работы сети АФК.

rosshutdown
Shutting down global node /matlab_global_node_12735 with NodeURI http://192.168.17.1:56572/

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

свернуть все

'sensor_msgs/LaserScan' Сообщение ROS, указанное как LaserScan дескриптор объекта.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'RangeLimits',[-2 2]

Минимальный и максимальный диапазон сканирования в метрах, указанный как 2-элементный [min max] вектор. Все диапазоны меньше min или больше, чем max игнорируются при преобразовании в декартовы координаты.

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

свернуть все

Декартовы координаты лазерного сканирования, возвращаемые в виде матрицы n-by-2 в метрах.

Углы сканирования для данных лазерного сканирования, возвращаемые в виде матрицы n-by-1 в радианах. Углы измеряются против часовой стрелки вокруг положительной оси z с нулевым углом вдоль оси X. angles возвращается в радианах и переносится в [-pi, pi] интервал.

Вопросы совместимости

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

Не рекомендуется начинать с R2021a

См. также

| |

Представлен в R2019b