MORAI Simulator Rosbag Replay

  • Rosbag Replay 기능은 Rosbag을 이용하여 Replay하는 기능.
    사용자가 원하는 Scenario에 대한 Ego의 주행 데이터 및 주변 환경 데이터를 Rosbag으로 저장 후 Replay하여 Scenario를 재현할 수 있고, Ego 차량에 Sensor를 부착하여 Data set을 생성 할 수 있음.

Replay Mode

  • Rosbag Replay : Rosbag File을 Simulator에 직접 Import 하여 Replay함.

  • Network Replay : Rosbag File을 ROS 환경에서 Play함. Rosbag에 저장되어 있는 /ReplayInfo_topic을
    Rosbridge를 통해 넘겨 받아 Replay함.

Rosbag Replay

Ego Vehicle 차종은 현재 시뮬레이터에서 선택한 차종으로 Rosbag Replay가 진행됨.

  • Simulator 상단 메뉴 PlayMode > Replay > Rosbag Replay 에서 Rosbag Replay를 진행 할 수 있음.

  1. 상단의 File List 에서 원하는 Rosbag 파일을 Double Click.

  2. Load가 완료되면 Message Type에서 해당 Rosbag 파일의 정보 출력.

  3. 이후 Start를 클릭 시 Replayer Control Panel을 출력.

  4. Replayer Control Panel 창의 Play버튼을 눌러 실행.

Option

  • Replayer Control Panel

    • Rosbag 파일 재생 Control

      • 화살표 버튼을 통해 재생을 조절

      • 상단 재생 바를 통해 Rosbag 파일의 재생 시점을 조절

      • 하단 재생 바를 통해 Rosbag 파일의 재생 속도를 조절

      • 재생 버튼 상단 숫자 : Rosbag 파일의 unix timestamp , 저장된 msgs의 수

  • 현재 재생 중인 시나리오의 상태 저장 기능

    • Replayer Control Panel 하단 Save 버튼 클릭 시 현재 재생 중인 상태의 Scenario 를 저장할 수 있음.

    • 저장된 시나리오는 Scenario - Save&Load 에서 확인 가능함.

  • Bridge Setting

    • 현재 재생되는 Rosbag 데이터를 Publish 하여 ROS환경에서 확인 가능.

    • Publish되는 Data의 정보는 다음과 같음.

      • Message Type : morai_msgs/ReplayInfo

      • Default Topic :  /ReplayInfo_topic


  • Select Replay / Offset / Sensor Frame Rate

    • Select Replay : Rosbag 파일 재생 시 Ego, Npc 차량, Pedestrain 정보를 재생 하는지 여부

    • Heading Offset :Ego vehicle의 heading 방향 Offset

    • Sensor Frame Rate : Rosbag Replay 진행 시 차량에 부착되어있는 Sensor Data의 저장 Rate(Hz)

    • Height Offset : Ego Vehicle 의 Z 방향 위치 Offset

      • Rosbag 파일 재생 시 아래 사진과 같이 차량이 땅에 파묻히는 경우가 생기면 Height Offset 기능을 이용하여 Ego Vehicle 의 위치를 조정 가능함.

  • Camera Setting

    • Perspective View : 자유롭게 움직일 수 있는 카메라 시점

    • Top View : 위에서 내려다 본 카메라 시점

    • Vehicle View : 현재 차량 중심의 카메라 시점

  • ROS 메세지를 이용한 Rosbag Replay 제어

    • ROS 메세지를 Publish 하여 Replay 기능을 활성 화 및 종료 가능함.

    • Replay 기능의 옵션 및 시점 진행 속도 등을 제어 할 수 있음.

  • Rosbag Replay 창 Select Mode 옵션

    • VEHICLE : 주변 차량 정보가 그대로 출력 됨.

    • BOX : 주변 차량 정보가 BOX 모양으로 출력 됨.


Network Replay

  • ROS 환경에서 Rosbag 파일을 Play, rosbridge를 통해 데이터를 Subscribe 하여 Replay

    Bridge Setting의 IP, PORT에 Rosbag file을 play하는 ROS환경의 rosbridge ip, port 를 입력.

  1. Connect를 눌러 좌측 상단의 Replayer Control Panel 확인.

  2. Dataset 및 Draw Mode 확인 및 선택.

  3. ROS 환경에서 Rosbag file play 하여 실행 확인.

Option

  • Replayer Control Panel

    • Connect 연결 후 Replayer Control Panel 을 통해 Rosbag 재생 시뮬레이션의 시점을 조절 할 수 있음

      • Perspective View : 자유롭게 움직일 수 있는 카메라 시점

      • Top View : 위에서 내려다 본 카메라 시점

      • Vehicle View : 현재 차량 중심의 카메라 시점

    • Connect 연결 후 Replayer Control Panel 이 나오면 Ubuntu 에서 Publish 되는 Rosbag 파일에 맞춰 Replay 가 재생됨.

  • ROS 환경 Setting

    • Ros bridge 실행

      • $ roslaunch rosbridge_server rosbridge_websocket.launch

    • Rosbag 파일 재생

      • 터미널을 Rosbag 파일이 저장된 경로로 이동

      • $ rosbag play (Rosbag 파일 이름.bag)

      • rosbag play 이후 Publish 되는 데이터 rqt 를 통해 확인 가능함.


ETC

Rosbag 파일 생성

  • Ubuntu 환경에서 ROS Topic 데이터를 저장하여 .bag 형식의 Rosbag 파일을 생성 할 수 있다.

  • 시뮬레이터 실행 후 Ubuntu 환경에서 rosbridge 를 연결 한다.

  • ROS Topic 확인

    • $ rostopic list

    • 현재 연결되어 있는 ROS Topic 종류를 볼 수 있다.

  • ROS Bag 파일 생성

    • $ rosbag record /ReplayInfo_topic

      • ReplayInfo_topic에는 다음과 같은 데이터들이 포함되어있다.

        • Ego 관련 정보

          • ego_acc

          • ego_brake

          • ego_steer

          • ego_orientation_x

          • ego_orientation_y

          • ego_orientation_z

          • ego_orientation_w

          • ego_linearAcceleration_x

          • ego_linearAcceleration_y

          • ego_linearAcceleration_z

        • Object(NPC Vehicle, Pedestrian, Obstacle) 관련 정보

          • num_of_object

          • object_type

          • object_id

          • pose_x :

          • pose_y

          • pose_z

          • heading

          • size_x

          • size_y

          • size_z

          • velocity

      • ROS 메세지 에 대한 자세한 설명은 다음 페이지 참조 : ROS 메세지 설정 방법 및 타입 설명

    • rosbag record 실행 시 현재 터미널 경로에 .bag 형식의 파일이 저장 된다.

Rosbag 파일 저장

  • 생성한 Rosbag파일을 Launcher 폴더의 Data\SaveFile\Rosbag 에 옮긴다.

상단 메뉴 Replay Mode - Rosbag Replay 클릭 하단의 Open 선택 Rosbag 파일 저장 경로의 폴더가 나온다


rosbag Replay 사용 예제

  • 아래 링크를 통해 Rosbag 예제 파일을 다운 받는다
    replay_example.bag

    • 다운 받은 Rosbag 파일을 저장하여 아래 영상과 같이 재생 할 수 있다.

  • Rosbag Replay 예제 영상

Network Replay 사용 예제