Skip to main content
Skip table of contents

ROS SIM Time

본 페이지에서 MORAI SIM Time과 ROS TIME을 동기화 하기 위한 방법을 소개한다.


참고 페이지 : http://wiki.ros.org/Clock, http://wiki.ros.org/roscpp/Overview/Time

  • ROS 의 Time System

    • ROS의 Node 들은 서로 간의 상호작용에 있어 동기화 된 시간 흐름을 사용하기 위해 ROS Time을 사용한다.

    • 동작 주기, 메시지 간 동기 확인 등에서 ROS Time은 필수적이다.

      • 메시지 간 동기를 확인할 때는 메시지의 Header에 들어가는 Time을 사용한다.

    • ROS Time의 기본 설정으로는 동작 중인 PC Time이 사용된다.

    • use_sim_time 활성화 및 /clock topic 발행 시 PC Time이 아닌 '/clock topic'이 ROS Time으로 사용된다.

  • MORAI SIM Time Management에서 ROS Time 연동 : use_sim_time 사용한다.

    • use_sim_time을 활성화하지 않으면 ROS와 MORAI SIM 간의 Time 동기가 불가능하다.

      • ex) Sensor Message subscribe node

        • MORAI SIM에서는 SIM내에 정의된 시간으로 Sensor Message Header에 Time을 입력한다.

        • ROS Node는 ROSTIME을 호출해서 현재 시간 정보에 접근한다.

        • ROSTIME과 SIM Time이 다르기에 정상적인 동작 불가능하다.

    • MORAI SIM Time을 /clock topic으로 발행하여 ROSTIME을 시뮬레이터와 동기화한다.

  • 개발 시 고려 필요 사항

    • 토픽 발행 시 IP/Port를 설정할 수 있어야 함 → ROS 사용하는 모든 IP에 보내는 방향

      • 현재 시뮬레이터에서 데이터를 주고 있는 모든 ROS IP에 대해 /clock topic을 발행

    • 토픽 발행 시기/주기 결정 필요

      • Time Management 실행 시 자동으로 /clock topic을 발행

      • 1ms 주기

  • User Guide (ROS)

    • roscore 실행 후 rosparameter 중 use_sim_time을 true로 설정한다.

      • CODE
        rosparam set use_sim_time true
    • MORAI SIM에서 /clock topic을 발행하도록 설정한다.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.