Main Content

Current Time

Retrieve current ROS time or system time

  • Current Time block

Libraries:
ROS Toolbox / ROS

Description

The Current Time block outputs the current ROS or system time. ROS Time is based on the system clock of your computer or the /clock topic being published on the ROS node.

Use this block to synchronize your simulation time with your connected ROS node.

If the use_sim_time ROS parameter is set to true, the block returns the simulation time published on the /clock topic. Otherwise, the block returns the system time of your machine.

Current time block workflow. Step 1. Node start. Step 2. Check whether /use_sim_time ROS parameter is true. Step 3. If true, subscribe to /clock topic and wait to receive time. If false, get system time. Step 4. Output the received time as the current time.

Examples

Ports

Output

expand all

ROS time, returned as a bus signal or a scalar. The bus represents a rosgraph_msgs/Clock ROS message with Sec and NSec elements. The scalar is the ROS time in seconds. If no time has been received on the /clock topic, the block outputs 0.

Data Types: bus | double

Parameters

expand all

Format of ROS Time output, specified as either bus or double.

Interval between outputs, specified as a numeric scalar.

For more information, see Specify Sample Time (Simulink).

Tips

  • To set the use_sim_time parameters and get time from a /clock topic:

    Connect to a ROS network, then use the Set Parameter block or set the parameter in the MATLAB® command window:

    ptree = rosparam;
    set(ptree,'/use_sim_time',true)

    Usually, the ROS node that publishes on the /clock topic sets up the parameter.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2019b

See Also

Blocks

Functions

External Websites