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
Initializing ROS master on http://bat6306glnxa64:34521/.
Initializing global node /matlab_global_node_42695 with NodeURI http://bat6306glnxa64:35137/

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

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

     Sec: 1.5771e+09
    Nsec: 365000000

issim = logical
   0

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

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

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

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

rosinit
Initializing ROS master on http://bat6306glnxa64:41095/.
Initializing global node /matlab_global_node_49884 with NodeURI http://bat6306glnxa64:33171/
t = rostime('now');

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

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

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

time = datetime(secondtime, 'ConvertFrom','posixtime')
time = datetime
   23-Dec-2019 12:50:51

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

rosshutdown
Shutting down global node /matlab_global_node_49884 with NodeURI http://bat6306glnxa64:33171/
Shutting down ROS master on http://bat6306glnxa64:41095/.

Используйте 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

Для просмотра документации необходимо авторизоваться на сайте