uFldVoronoi: Rendering Multi-Vehicle Voronoi Partitions
Maintained by: mikerb@mit.edu
Get PDF
1 Overview
2 Configuration Parameters of uFldObstacleSim
2.1 An Example MOOS Configuration Block
3 Publications and Subscriptions for uFldVoronoi
3.1 Variables Published by uFldVoronoi
3.2 Variables Subscribed for by uFldVoronoi
4 Terminal and AppCast Output
1 Overview
The uFldVoronoi application is a tool for rendering a Voronoi partition of one or more convex polygons, given set of vehicle positions. In typical applications using a Voronoi autonomy behavior, each vehicle may have its own view of its local Voronoi cell. This view may be based on outdated or limited information about neighbor positions. This may be due to latency, range limitations, frequencey limitations, or all of the above, for inter-vehicle communicatins. The uFldVoronoi app, on the other hand may have a more up-to-date set of vehicle locations by virtue of being on the shoreside. Thus it is presumed to be closer to "ground truth", and renders the Voronoi position based on this information.

The setup overview is depicted in Figure 1.1:


Figure 1.1: The uFldVoronoi: The uFldVoronoi app resides on the shoreside and ingests and maintains ground truth vehicle position state. Local Voronoi cells are calculated and published as viewable polygons for consumption by pMarineViewer.



2 Configuration Parameters of uFldObstacleSim
The following parameters are defined for uFldObstacleSim. For some parameters, more detailed description are provided in other sections. Parameters having default values are indicated so.

Listing 2.1 - Configuration Parameters for uFldObstacleSim.

| region: | The overall surrounding convex polygon region. |
| prox_edge_color: | Color of Voronoi cell edge color. Default is gray90. |
| prox_vertex_color: | Color of Voronoi cell polygon vertices. Default is green. |
| prox_fill_color: | Color of Voronoi cell internal fill. Default is green. |
| prox_label_color: | Color of Voronoi cell labels. Default is white. |
| match_group: | If specified, vessels must match this group name if it is to be included in the Voronoi decomposition. |
| poly_duration: | Duration, in seconds, associated with the posted polygon for rendering a Voronoi cell. The default is 100 seconds. |
| use_unc_reports: | If true, obtain node reports from the NODE_REPORT_UNC variable instead of NODE_REPORT. This is done in cases of high time warp and high number of contacts, to reduce load. See the documentation for uFldNodeComms. |
| load_summary: | If specified, a summary report will be posted to this MOOS variable. |


2.1 An Example MOOS Configuration Block [top]
To see an example MOOS configuration block, enter the following from the command-line:


$ uFldVoronoi --example or -e


This will show the output shown in Listing 2.2 below.

Listing 2.2 - Example configuration for uFldVoronoi.

1 ===============================================================
2 uFldVoronoi Example MOOS Configuration
3 ===============================================================
4
5 ProcessConfig = uFldVoronoi
6 {
7 AppTick = 4
8 CommsTick = 4
9
10 stale_time = 5 // Default (in seconds) is 5
11 poly_duration = 100 // Default (in seconds) is 100
12
13 region = 0,0: 150,0:200,-100:175,-275:-25,-275:-75,-150
14 match_group = blue_team
15
16 use_unc_reports = true
17
18 prox_edge_color = <color> // Default is gray90
19 prox_fill_color = <color> // Default is green
20 prox_vert_color = <color> // Default is green
21 prox_edge_color = <color> // Default is gray90
22 prox_label_color = <color> // Default is green
23}



3 Publications and Subscriptions for uFldVoronoi
The interface for uFldVoronoi, in terms of publications and subscriptions, is described below. This same information may also be obtained from the terminal with:


$ uFldVoronoi --interface or -i



3.1 Variables Published by uFldVoronoi [top]
The primary output of uFldVoronoi to the MOOSDB is posting of sensor reports, visual cues for the sensor reports, and visual cues for the hazard objects themselves.

- APPCAST: Contains an appcast report identical to the terminal output. Appcasts are posted only after an appcast request is received from an appcast viewing utility.
- VIEW_POLYGON: A visual artifact for rendering a a ground truth obstacle polygon.
- LOAD_SUMMARY: If the load_summary configuration parameter is set to the MOOS variable named LOAD_SUMMARY, then the load summary report published to this variable.
- UVOI_REPORT:

Example postings:

LOAD_SUMMARY = warp_elap=202.05,real_elap=13.47,all_reps=2926,node_reps=2926, [=\=]
unc_reps=0,all_reps_rate_real=217.2,all_reps_rate_warp=14.5, [=\=]
unc_reps_rate_real=0.0,unc_reps_rate_warp=0.0, [=\=]
node_reps_rate_real=217.2,node_reps_rate_warp=14.5,polys=1, [=\=]
fields=1,evaluators=1,mstate_logs=1
UVOI_REPORT = avg_area=55.5,min_area=45.2,max_area=89.3,std_dev=3.4,rel_std_dev=2.4,\
label=vregion_0
VIEW_POLYGON = pts={48,-77:52,-80:52,-86:48,-89:43,-89:39,-86:39,-80:43,-77}, [=\=]
label=ob_4,label_color=invisible,edge_color=gray50,vertex_color=gray50, [=\=]
fill_color=white,vertex_size=1,edge_size=1,fill_transparency=0.15



3.2 Variables Subscribed for by uFldVoronoi [top]
The uFldVoronoi application will subscribe for the following MOOS variables:

- APPCAST_REQ: A request to generate and post a new apppcast report, with reporting criteria, and expiration.
- BVOI_STATE: The status from certain vehicle's perspective, including the vehicle name, the state (activated, capture, slipping), and the distance traveled thus far.
- VOI_REGION_POLY: Dynamically set the overall region polygon, which is otherwise set via the configuration parameter region.
- NODE_REPORT: A report on a vehicle location and status.
- NODE_REPORT_UNC: A report on a vehicle location and status.

Example postings:

BVOI_STATE = vname=cal,state=captured,activated_dist=14.4 VEHICLE_CONNECT = true



Command Line Usage of uFldVoronoi [top]
The uFldVoronoi application is typically launched as a part of a batch of processes by pAntler, but may also be launched from the command line by the user. To see command-line options enter the following from the command-line:


$ uFldVoronoi --help or -h


This will show the output shown in Listing 3.1 below.

Listing 3.1 - Command line usage for the UFldObstacleSim tool.

1 =============================================================== 2 Usage: uFldVoronoi file.moos [OPTIONS] 3 =============================================================== 4 5 SYNOPSIS: 6 ------------------------------------ 7 A shoreside tool maintaining a current state of all vehicles 8 reporting node reports to the shoreside. It will repeatedly 9 build a Voronoi decomposition of the given search region and 10 generate a Voronoi polygon for each vehicle. 11 12 Options: 13 --alias=<ProcessName> 14 Launch uFldNodeComms with the given process 15 name rather than uFldNodeComms. 16 --example, -e 17 Display example MOOS configuration block. 18 --help, -h 19 Display this help message. 20 --interface, -i 21 Display MOOS publications and subscriptions. 22 --version,-v 23 Display the release version of uFldNodeComms. 24 25 Note: If argv[2] does not otherwise match a known option, 26 then it will be interpreted as a run alias. This is 27 to support pAntler launching conventions.



4 Terminal and AppCast Output
The uFldVoronoi application produces some useful information to the terminal and identical content through appcasting. An example is shown in Listing 4.1 below. On line 2, the name of the local community, typically the shoreside community, is listed on the left. On the right, "0/0(204) indicates there are no configuration or run warnings, and the current iteration of uFldVoronoi is 160. Lines 6-9 show the configuration.

Lines 12-31 reveal the current state of the app.

Listing 4.1 - Example uFldVoronoi console/appcast output.

1 ===================================================================
2 uMAC_1291: Nodes (9) [GOOD-TREE] (20) PAUSED
3 ===================================================================
4 uFldVoronoi shoreside 0/0(160)
5 ===================================================================
6 Configuration:
7 match_group:
8 Regions: 1
9 pts={-500,2300:-3500,-1000:-3500,-4600:3100,-4600:8400,2300},label=vregion_0
10
11
12 Region Summary:1
13 ======================================
14 Region Avg Min Max Std All
15 Label Prox Prox Prox Dev Stable
16 --------- ---- ---- ---- --- ------
17 vregion_0 0 0 0 0 false
18
19 Node Report Summary:11818
20 ======================================
21 Node Curr Curr InReg Actv Hold Capt
22 VName Reps Region State Dist Time Time Time
23 ----- ---- --------- --------- ------- ------ ---- ------
24 abe 1474 vregion_0 activated 5936.63 776.45 0.00 0.00
25 ben 1479 vregion_0 slipping 1586.30 181.52 0.00 337.90
26 cal 1478 vregion_0 slipping 5520.49 700.88 0.00 0.00
27 deb 1476 vregion_0 captured 4407.15 544.62 0.00 70.53
28 eve 1476 vregion_0 slipping 3382.93 433.57 0.00 312.65
29 fin 1481 vregion_0 activated 4098.18 519.28 0.00 30.24
30 gil 1478 vregion_0 slipping 5673.03 700.88 0.00 0.00
31 hix 1476 vregion_0 activated 4096.47 534.38 0.00 242.07


Document Maintained by: mikerb@mit.edu
Page built from LaTeX source using texwiki, developed at MIT. Errata to issues@moos-ivp.org.
Get PDF
