pEncircle: Decentralized Group Balancend Encircling
Maintained by: mikerb@mit.edu
Get PDF
1 Overview
2 Configuration Parameters for pEncircle
2.1 An Example MOOS Configuration Block
3 Publications and Subscriptions of pEncircle
3.1 Variables Published by pEncircle
3.2 Variables Subscribed for by pEncircle
4 Terminal and AppCast Output
5 Simple Example Missions
1 Overview
The pEncircle app is designed to support a mission comprised of a group of vehicles, each encircling a common point with a common encircling radius. This output of this app will be a speed adjustment recommendation to ownship based the distance between ownship and the closest vehicle fore and aft of ownship on the circle.

This app assumes ownship is presently in an autonomy mode utilizing the Loiter behavior, and there is presently a collision avoidance behavior also actively ensuring against collisions between vehicles.


Figure 1.1: Balanced Encircling: Left: four vessels encircling a common point and common radius with equal spacing between vehicles. Right: four vessels encircling a common point with common radius, but with unequal spacing between vehicles.



The below are a pair of snippets from a four-vehicle simulation with, and without, the influence of pEncircle.


Figure 1.2: Balanced Encircling: Left: four vessels encircling a common point and common radius with equal spacing between vehicles. Right: four vessels encircling a common point with common radius, but with unequal spacing between vehicles.



2 Configuration Parameters for pEncircle
The following parameters are defined for pEncircle. A more detailed description is provided in other parts of this section. Parameters having default values are indicated.

Listing 2.1 - Configuration Parameters for pEncircle.

| circle_position: | The position and radius of the encircle polygon. |
| consider_thresh: | Contact range to the encircle polygon before accepting for consideration of speed modulation. |
| encircle_active: | If false, temporarily disable speed modulation. |
| group_speed: | Default group speed for traversing the encircle polygon. |
| max_speed: | Maximum speed for speed modulation output. |
| message_color: | Visual hint for confirming balanced position. |
| on_circle_thresh: | Threshold for a contact to be considered on the encircle polygon. |


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


$ pEncircle --example or -e


This will show the output shown in Listing 2.2 below.

Listing 2.2 - A Simple pEncircle Example.

1 ===============================================================
2 pEncircle Example MOOS Configuration
3 ===============================================================
4
5 ProcessConfig = pEncircle
6 {
7 AppTick = 4
8 CommsTick = 4
9
10 circle_position = x=75,y=-195,radius=50
11 max_speed = 5
12 aggression = 1
13
14 encircle_active = true
15 consider_thresh = 30
16 on_circle_thresh = 20
17
18 message_color = dodger_blue // any MOOS color or off
19 }



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


$ pEncircle --interface or -i



3.1 Variables Published by pEncircle [top]
The output of pEncircle is:

- 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.
- [LOITER_UPDATE]:
- [ENC_RNG_TO_CIRC]: Distance in meters between ownship and the encircle polygon.
- [ENC_SPD_FACTOR]: The ratio betwen closest fore distance minus the closest aft distance divided by the sum of the two.
- [ENC_DIST_FORE]: Distance in meters to the closest vehicle, fore of ownship and on the encircle polygon.
- [ENC_DIST_AFT]: Distance in meters to the closest vehicle, aft of ownship, and on the encircle polygon.
- [ENC_NEW_OS_SPD]:
- [ENC_DES_GRP_SPD]: The parameter setting for the set speed to settle on when vehicles are within a threshold of balanced distances.

The obstacle manager will also publish to whatever MOOS variables are specified in the obstacle alerts. See Section ???.


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

- APPCAST_REQ: A request to generate and post a new apppcast report, with reporting criteria, and expiration.
- ENCIRCLE_ACTIVE: A Boolean string, when set to "false" will disable this app until reset to "true".
- ENCIRCLE_AGGRESSION:
- ENCIRCLE_GRP_SPEED: The set speed to settle on when vehicles are within a threshold of balanced distances.
- ENCIRCLE_MAXSPEED: A maximum speed to be posted as the vehicle set speed, in meters per second. Currently this feature is not in use.
- ENCIRCLE_POSITION: The position and radius of the circle.
- NODE_REPORT: The position, heading and speed of other vehicles in the group.
- NODE_REPORT_LOCAL: The position, heading and speed of ownship.



4 Terminal and AppCast Output
The pEncircle application produces some useful information to the terminal on every iteration of the application. An example is shown in Listing 4.1 below. This application is also appcast enabled, meaning its reports are published to the MOOSDB and viewable from any uMAC application or pMarineViewer. The counter on the end of line 2 is incremented on each iteration of pEncircle, and serves a bit as a heartbeat indicator. The "0/0" also on line 2 indicates there are no configuration or run warnings detected.

The output in the below example comes from the s1_alpha_obstacles mission.

Listing 4.1 - Example terminal or appcast output for pEncircle.

1 =================================================================== 2 pEncircle abe 0/0(799) 3 =================================================================== 4 Config: 5 ----------------- 6 center_x: 75 7 center_y: -95 8 radius: 45 9 group spd: 4 10 os_max_speed: 5 11 on_circle_thresh: 20 12 consider_thresh: 30 13 14 General State: 15 ----------------- 16 activated: true 17 reports: 1454 18 os_clockwise: false 19 os_ctr_clock: true 20 os_rng_to_circ: 0.3 21 22 Closest: 23 ----------------- 24 closest_fore: cal 25 closest_aft: eve 26 closest_fore_gap_spd: 0.1 27 closest_aft_gap_spd: -0.1 28 29 Contact On RangeTo Reps Rng Rng Clock 30 Circ Ownship Total Aft Fore -wise 31 ------- ---- ------- ----- ----- ----- ----- 32 ben true 86.9 269 116 166.8 ctr 33 cal true 51.8 267 227.9 54.9 ctr 34 deb true 85.1 309 172.5 110.3 ctr 35 eve true 54.7 282 58.5 224.2 ctr 36 37 closest fore: cal --> 54.8524 38 closest aft: eve --> 58.4982


The first group of lines (4-12) show the configuration settings for pEncircle. The status of pEncircle is shown in Lines 14-38.

5 Simple Example Missions
The primary example missions using the pEncircle app:

- missions-swarm/S50-swarm_fence
- missions-swarm/S55-swarm_defend


Both are in the missions-swarm private repo:

git@github.com:pavlab-mit/missions-swarm.git

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