Skip to content

Connections Validator Tool

Nate Koenig edited this page May 21, 2020 · 3 revisions

This tutorial explains how to use the connections validator tool to visualize tile connections in the practice worlds.

  1. 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_connections.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_connections.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 connections.

connection_validator_two_image_displays.png

  1. 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 connections:

      ign service -s /connection/next --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'

      ign service -s /connection/prev --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'

      # Then iterate through connections using the /connection/next service; which will respond with the connection name (e.g. data: "TBD") that the two cameras
      # are displaying (top-down and at a 45 deg angle).

      ign service -s /connection/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 /connection/next --reqtype ignition.msgs.StringMsg --reptype ignition.msgs.StringMsg --timeout 1000 --req 'data: ""'

atconnection.png