- 
                Notifications
    You must be signed in to change notification settings 
- Fork 104
Artifacts Validator Tool
        Nate Koenig edited this page Apr 9, 2020 
        ·
        2 revisions
      
    This tutorial explains how to use the artifacts validator tool to visualize artifacts in the practice worlds.
- Open a terminal and launch a world following the instructions below (if you setup a catkin workspace):
      cd ~/subt_ws/
      source ~/subt_ws/install/setup.bash
      ign launch -v 4 validate_artifacts.ign worldName:=[e.g. urban_qual or tunnel_circuit_practice_01]
If you installed the SubT Simulator as a docker image, then run these commands:
      ./run.bash osrf/subt-virtual-testbed validate_artifacts.ign worldName:=[e.g. urban_qual or tunnel_circuit_practice_01]
The above launches the world with a marker, a spotlight, and two camera displays (as shown below); which can be moved to various artifacts.

- Open another terminal and run these commands:
      cd ~/subt_ws/
      source ~/subt_ws/install/setup.bash
   
      # Use any of the following commands to iterate the through the artifacts:
      ign service -s /artifact/next --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'
      ign service -s /artifact/prev --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'
      ign service -s /artifact/move_to --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: "phone_3"'
      # Then iterate through artifacts using the /artifact/nex service; which will respond with the artifact name (e.g. data: "backpack_1") that the two cameras
      # are displaying (top-down and at a 45 deg angle).
      ign service -s /artifact/next --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'
      
If you are running the SubT Simulator inside a docker container, then run these commands to join the container:
      containerid=$(docker ps -aqf ancestor=osrf/subt-virtual-testbed:latest) && echo $containerid
      docker exec --privileged -e DISPLAY=${DISPLAY} -e LINES="`tput lines`" -it ${containerid} bash
      # Once inside the docker container, then run these commands:
      . install/setup.bash
      ign service -s /artifact/scan --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'
      ign service -s /artifact/next --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'

