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 - ось. 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))

Сеть Shutdown 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))

Сеть Shutdown 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]

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

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

свернуть все

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

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

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

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

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

Смотрите также

| |

Введенный в R2019b