readCartesian

Считайте области значений скана в Декартовых координатах

Описание

пример

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

Примечание

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

пример

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

[cart,angles] = readCartesian(___) возвращает скан углы, angles, которые связаны с каждой Декартовой координатой. Углы измеряются против часовой стрелки вокруг положительной оси z с нулевым углом вдоль оси x. The 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))

Завершите работу сети ROS.

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

Завершите работу сети ROS.

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-на-2 матрица в метрах.

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

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

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

Не рекомендуемый запуск в R2021a

См. также

| |

Введенный в R2019b