Skip to content
Mabel Zhang edited this page Dec 16, 2020 · 10 revisions

VORC Example Tasks

Initial State

After launch, all examples given below should begin with the vessel floating on the water near the shore, as shown:

Starting scene

Additional course elements will vary from task to task.

Monitoring Task Status

The vrx_gazebo/Task status message includes:

  • task state {Initial, Ready, Running, Finished}
  • current score
  • timing information

Task status is published to /vorc/task/info (further details of the API are in the Technical Guide). We recommend that you monitor the task status during simulation. One way to do this, for example, is to run:

rostopic echo /vorc/task/info

1. Station-Keeping Task

Summary: Navigate to the goal pose and hold station. The best solutions will minimize the difference between the goal pose and the actual pose of the vehicle over the duration of the task.

  1. Start the example:
    roslaunch vorc_gazebo station_keeping.launch
    
  2. Subscribe to the task-specific topics provided by the stationkeeping scoring plugin:
    • The station-keeping goal (given as a geographic_msgs/GeoPoseStamped message):
      • rostopic echo /vorc/station_keeping/goal
    • The current position error values:
      • rostopic echo /vorc/station_keeping/pose_error
      • rostopic echo /vorc/station_keeping/rms_error

2. Wayfinding Task

Summary: Navigate through each of the published waypoints, such that vehicle achieves, as closely as possible, the positions and orientations specified.

  1. Start the example:
    roslaunch vorc_gazebo wayfinding.launch
    
  2. Subscribe to the task-specific topics provided by the wayfinding scoring plugin:
    • The list of waypoints (given as a geographic_msgs/GeoPath message):
      • rostopic echo /vorc/wayfinding/waypoints
    • The current minimum errors achieved for each waypoint so far:
      • rostopic echo /vorc/wayfinding/min_errors
    • The current mean of the minimum errors:
      • rostopic echo /vorc/wayfinding/mean_error

3. Perception Task

Summary: In this task, the vehicle remains in a fixed location and markers will appear in the field of view (see this video for a demonstration of the expected behavior). The objective is to use perceptive sensors to identify the markers and report their locations.

  1. Start the example:

    roslaunch vorc_gazebo perception.launch
    
  2. View the camera feeds from the front of the WAM-V:

    roslaunch vorc_gazebo rviz.launch
    

    Note that for all the frames to visualize correctly in RViz, localization is needed. An example is provided here:

    roslaunch vorc_gazebo localization_example.launch
    
  3. Trials will begin. Identify the type and location of the markers that appear during each trial.

  4. Publish landmark identification and localization solutions as a geographic_msgs/GeoPoseStamped message to the /vorc/perception/landmark topic:

    rostopic pub -1 /vorc/perception/landmark geographic_msgs/GeoPoseStamped '{header: {stamp: now, frame_id: "red_mark"}, pose: {position: {latitude: 21.30996, longitude: -157.8901, altitude: 0.0}}}'
    
  5. Submission criteria:

    • Each trial will last for 5 seconds.
    • Solutions must be submitted before the end of the trial.
    • Only the first submission for each trial will be considered.
  6. For further details, refer to the perception scoring plugin.

4. Black Box Gymkhana Task

Summary : This is a combination of the three basic tasks above. In the first portion, the vehicle traverses a channel marked by pairs of colored buoys, to arrive at a gate. The vehicle then passes through the gate to enter the second portion. In the second portion, the vehicle searches for an underwater acoustic pinger marking the location of a black box. The vehicle navigates to the pinger and holds station as close as possible to the pinger.

  1. Start the example:
    roslaunch vorc_gazebo gymkhana.launch
    
  2. Subscribe to the task-specific topics provided by the gymkhana scoring plugin:
    • Top-level task status has the timeout and final score
      • rostopic echo /vorc/task/info
      • Note that even though the navigation and station-keeping portions each has its own task/info topics, the final timeout and score go by the top-level topic.
    • The navigation channel portion has no specific topics. However, Gazebo messages such as [Msg] New gate crossed! and [Msg] Course completed! will be printed to the terminal, if you launch the task with argument extra_gazebo_args:=--verbose
    • The black box acoustic pinger publishes a distance and two angles, with noise
      • /cora/sensors/pingers/pinger/range_bearing
      • You should use the acoustic pinger to find the position of the blackbox
    • Though the station-keeping scoring plugin publishes the absolute goal pose, you should not use this for localization. Use the acoustic pinger instead.
      • You should not use the ground truth goal, though it is published by the scoring plugin (as a geographic_msgs/GeoPoseStamped message): rostopic echo /vorc/gymkhana_blackbox/goal
      • Pose error: rostopic echo /vorc/gymkhana_blackbox/pose_error
      • Root mean square error: rostopic echo /vorc/gymkhana_blackbox/rms_error