rostime

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

Описание

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

Создание

Описание

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

пример

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") также возвращает булевскую переменную, которая указывает если time находится во времени симуляции (true) или системное время (false).

пример

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

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

Свойства

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

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

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

Примечание

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

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

Примеры

свернуть все

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

rosinit
Launching ROS Core...
...............................Done in 1.322 seconds.
Initializing ROS master on http://192.168.0.10:50464.
Initializing global node /matlab_global_node_93993 with NodeURI http://bat1072001glnxa64:35983/

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

[t,issim] = rostime('now')
t = 
  ROS Time with properties:

     Sec: 1.6058e+09
    Nsec: 710323882

issim = logical
   0

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

rosinit
Launching ROS Core...
........................Done in 1.4965 seconds.
Initializing ROS master on http://192.168.0.10:55401.
Initializing global node /matlab_global_node_28624 with NodeURI http://bat1072001glnxa64:38323/

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

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

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

rosshutdown
Shutting down global node /matlab_global_node_28624 with NodeURI http://bat1072001glnxa64:38323/
Shutting down ROS master on http://192.168.0.10:55401.
......

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

Настройте сеть ROS и сохраните время ROS.

rosinit
Launching ROS Core...
.........................Done in 1.7956 seconds.
Initializing ROS master on http://192.168.0.10:55983.
Initializing global node /matlab_global_node_85736 with NodeURI http://bat1072001glnxa64:45013/
t = rostime('now');

Преобразуйте время ROS в двойное в секундах.

secondtime = double(t.Sec)+double(t.Nsec)*10^-9;

Установите время на заданный формат MATLAB.

time = datetime(secondtime, 'ConvertFrom','posixtime')
time = datetime
   19-Nov-2020 02:00:36

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

rosshutdown
Shutting down global node /matlab_global_node_85736 with NodeURI http://bat1072001glnxa64:45013/
Shutting down ROS master on http://192.168.0.10:55983.
.....

Используйте seconds функция, чтобы получить общие секунды Time объект от его Secs и Nsecs свойства.

Создайте Time объект.

time = rostime(1,860000000)
time = 
  ROS Time with properties:

     Sec: 1
    Nsec: 860000000

Получите общие секунды от объекта времени.

secs = seconds(time)
secs = 1.8600

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

| |

Введенный в R2019b