rostime

Доступ к функциональности времени ROS

Описание

ROS Time сообщение представляет экземпляр времени в секундах и наносекундах. Это время может быть основано на вашем системном времени, времени симуляции ROS, или произвольный момент времени.

Создание

Описание

time = rostime(totalSecs) инициализирует временные стоимости в течение многих секунд и наносекунд на основе totalSecs, который представляет время в секундах как число с плавающей запятой.

Примечание

В будущем релизе ROS Toolbox будет использовать структуры сообщения вместо объектов для сообщений ROS.

Чтобы использовать структуры сообщения теперь, установите "DataFormat" аргумент значения имени к "struct". Для получения дополнительной информации смотрите, что ROS передает Структуры.

time = rostime(secs,nsecs) инициализирует временные стоимости в течение многих секунд и наносекунд индивидуально. Оба входных параметров должны быть целыми числами. Большие значения для nsecs перенесены автоматически с остатком, добавленным к secs.

time = rostime("now") возвращает текущее время ROS. Если use_sim_time Параметр ROS устанавливается на true, rostime возвращает время симуляции, опубликованное на clock тема. В противном случае функция возвращает системное время вашей машины. time Time ROS объект. Если никакой выходной аргумент не дан, текущее время (в секундах) распечатано на экран.

rostime может использоваться, чтобы добавить метку времени к сообщениям или измерить время в сети ROS.

пример

[time,issimtime] = rostime("now") также возвращает Boolean, который указывает если time находится во времени симуляции (true) или системное время (false).

пример

time = rostime("now","system") всегда возвращает системное время вашей машины, даже если ROS публикует время симуляции на clock тема. Если никакой выходной аргумент не дан, системное время (в секундах) распечатано на экран.

Системное время в ROS следует за UNIX или стандартом времени POSIX. Время POSIX задано как время, которое протекло с 0:00:00 Всемирное координированное время (UTC), 1 января 1970, не считая секунды прыжка.

пример

time = rostime(___,"DataFormat","struct") использование передает структуры вместо объектов с любым из аргументов в предыдущих синтаксисах. Для получения дополнительной информации смотрите, что ROS передает Структуры.

Свойства

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

Общее время в виде скаляра с плавающей точкой. Целочисленный фрагмент установлен в Sec свойство с остатком применилось к Nsec свойство Time объект.

Целые секунды в виде положительного целого числа.

Примечание

Максимальные и минимальные значения для secs [0, 4294967294].

Наносекунды в виде положительного целого числа. Это это значение больше или равно 109, затем значение перенесено, и остатки добавляются к значению Sec.

Формат сообщения в виде "object" или "struct". Необходимо установить это свойство на создании с помощью входа значения имени. Для получения дополнительной информации смотрите, что ROS передает Структуры.

Примеры

свернуть все

Соединитесь с сетью ROS.

rosinit
Launching ROS Core...
Done in 0.69952 seconds.
Initializing ROS master on http://192.168.0.10:57100.
Initializing global node /matlab_global_node_73594 with NodeURI http://bat6312glnxa64:36963/

Получите текущее Время ROS как структуру сообщения ROS. Можно также проверять, является ли им системное время путем получения issim вывод .

[t,issim] = rostime('now','DataFormat','struct')
t = struct with fields:
     Sec: 1629898044
    Nsec: 824835311

issim = logical
   0

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

rosshutdown
Shutting down global node /matlab_global_node_73594 with NodeURI http://bat6312glnxa64:36963/
Shutting down ROS master on http://192.168.0.10:57100.

Инициализируйте сеть ROS.

rosinit
Launching ROS Core...
Done in 0.64379 seconds.
Initializing ROS master on http://192.168.0.10:58359.
Initializing global node /matlab_global_node_63769 with NodeURI http://bat6312glnxa64:45683/

Создайте штампованное сообщение ROS с помощью структур. Задайте Header.Stamp свойство с текущим системным временем.

point = rosmessage('geometry_msgs/PointStamped','DataFormat','struct');
point.Header.Stamp = rostime('now','system','DataFormat','struct');

Закройте сеть ROS.

rosshutdown
Shutting down global node /matlab_global_node_63769 with NodeURI http://bat6312glnxa64:45683/
Shutting down ROS master on http://192.168.0.10:58359.

В этом примере показано, как преобразовать текущее время ROS во время стандарта MATLAB®. Объект ROS Time сначала преобразован в двойное в секундах, затем к заданному времени MATLAB.

Настройте сеть ROS и сохраните время ROS как сообщение структуры.

rosinit
Launching ROS Core...
.Done in 1.0993 seconds.
Initializing ROS master on http://192.168.0.10:52273.
Initializing global node /matlab_global_node_53086 with NodeURI http://bat6312glnxa64:45349/
t = rostime('now','DataFormat','struct');

Преобразуйте Время ROS, чтобы удвоить использование seconds функция и время набора к заданному формату MATLAB, datetime.

time = datetime(t.Sec + 10^-9*t.Nsec,'ConvertFrom','posixtime')
time = datetime
   25-Aug-2021 13:22:37

Закройте сеть ROS.

rosshutdown
Shutting down global node /matlab_global_node_53086 with NodeURI http://bat6312glnxa64:45349/
Shutting down ROS master on http://192.168.0.10:52273.

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

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

Изменение поведения в будущем релизе

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

|

Введенный в R2019b