rostime

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

Описание

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

Создание

Синтаксис

time = rostime(totalSecs)
time = rostime(secs,nsecs)
time = rostime("now")
[time,issimtime] = rostime("now")
time = rostime("now","system")

Описание

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

пример

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

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

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://AH-SRADFORD:11311/.
Initializing global node /matlab_global_node_00466 with NodeURI http://AH-SRADFORD:64390/

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

[t,issim] = rostime('now')
t = 

  ROS Time with properties:

     Sec: 1.4734e+09
    Nsec: 408000000


issim =

  logical

   0

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

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

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

% Sets up ROS network and stores ROS time
rosinit
Initializing ROS master on http://bat6230glnxa64:35263/.
Initializing global node /matlab_global_node_56745 with NodeURI http://bat6230glnxa64:46343/
t = rostime('now');

% Converts ROS time to a double in seconds
secondtime = double(t.Sec)+double(t.Nsec)*10^-9;

% Sets time to a specified MATLAB format
time = datetime(secondtime, 'ConvertFrom','posixtime')
time = datetime
   22-Feb-2019 05:49:38

% Shuts down ROS network
rosshutdown
Shutting down global node /matlab_global_node_56745 with NodeURI http://bat6230glnxa64:46343/
Shutting down ROS master on http://bat6230glnxa64:35263/.

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

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

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

     Sec: 1
    Nsec: 860000000

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

secs = seconds(time)
secs = 1.8600

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

| |

Представленный в R2015a