Hide Rover

Overview

Hide Rover is a sample application designed to hide a rover within an area. The application reads a mission from a plan file and executes it. The mission plan consists of a series of waypoints that are traversed in order.  Upon reaching the end of the plan file,  the rover is then commanded to go hide at a set of coordinates. The coordinates the rover will hide at can either be specified by the operator or randomly generated (see Execution for further instructions). After reaching the desired hiding coordinates, execution will stop.

There are two file inputs that are provided to this application: a plan file, and a geofence. The geofence is given to provide the application with a geographical region in which to generate random coordinates for the rover to hide. The plan file is intended to move the rover to a position from which it will be able to proceed towards anywhere in the geofence without hitting any obstacles.

NOTE: For your convenience, we have provided sample input files for hiding the rover for the AFAR challenge.

Location

The script is found in /root/Profiles/vehicle_control/aerpawlib/examples/hide_rover.py

Sample missions and geofences are found under the subdirectory /root/Profiles/vehicle_control/RoverSearch

Two sample input files are provided in this subdirectory: Sample Plan - MidpinesRoverSetup.plan,  Sample Geofence - AFAR_Rover.kml

Execution

To select Hide Rover as the vehicle application, do the following (on the E-VM of the rover/UGV):

$ cd /root/Profiles/ProfileScripts/Vehicle

$ cp Samples/startHideRover.sh startVehicle.sh

If you want to change some parameters in the sample vehicle experiment, please edit this file: /root/Profiles/ProfileScripts/Vehicle/Helpers/hideRoverHelper.sh

In that helper script you can change or add the following parameters:

--lat:       latitude to hide the rover at

--lon:        longitude to hide the rover at

--file:                 mission plan for setting up rover

--hide-fence: geofence to hide the rover in


The script is written in python3 and uses the AERPAW vehicle control library aerpawlib. 

If the --lat  & --lon parameters are used, they must both be specified, otherwise the application will not run. If neither the parameters are specified in roverSearchHelper.sh, then the application will generate random coordinates within the provided geofence. In both cases, the application will print the coordinates the rover will hide at before it starts running.

By default, in roverSearchHelper.sh, the --file  & --hide-fence parameters use the sample files MidpinesRoverSetup.plan & AFAR_Rover.kml, respectively. Using these sample files will simulate the procedure used to hide the rover for the AFAR challenge. If you would like to create your own plan files, see 3.1.2) Creating and Editing Mission Plan Files.

How to Run the Application

To run the entire search, an Experimenter should setup an experiment with at least one portable node. This portable node should be designated as an UGV. Initiate development, then setup the application (as shown in the Execution section above). Then start the experiment. This will move the rover according to the plan file you provided, and then move it to the hiding coordinates (these will be printed at the start of the script).