2023 Game Overview
ZR 2023 MS Game Background
To prepare for human activities on the Lunar surface, each team needs to control Astrobee and collect 24 grams of Lunar dust samples for analysis.
There are 9 research sites already established on the Lunar surface and are numbered from #1-9. At each site, there are the same site number of grams of Lunar dust samples and the same site number of bottles of sample enhancers.
Due to the power limitation, only 3 research sites will be active and operating at a time.
Potential Game Field Example. Active sites are in blue. Inactive sites are in grey.
ZR 2023 MS Game Background
An astronaut will observe the site status from the space station and use hand signals to tell Astrobee which sites are active.
Your task is to control the Astrobee robot, navigate it to the active sites, collect samples and/or mix samples with enhancers, and obtain 24 grams of dust samples to bring back to the base.
Once Astrobee enters the field and start moving, you will only have 3 minutes to navigate and collect and the sites status will change after 3 minutes.
*Relevant topics: Artemis Missions, Lunar Dust, Machine Learning, AI.
ZR 2023 MS Game – Phase 1
American Sign Language (ASL)
Base -> 9: Collect 9 samples
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
+
9 g
Site 9 -> 3: Collect 3 more samples
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
+
=
9 g
9 g
3 g
12 g
Site 2: Bring 24 samples back to the base station
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
24 g
24 g
ZR 2023 MS Game – Phase 2
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
Research Sites Map
C
C
D
Collect V.S. Duplicate
Collect by roll 90 degrees clockwise
Duplicate by roll 90 degrees counterclockwise
Scoring
Points Earned:
Collection Score: 5 points for each sample (maximum of 24 samples)
Battery Score: 100 - Battery Usage
Time Score = 180 - t
Penalties:
Depletion Penalty (If you use more than 100% battery) = 2 * (Battery Usage - 100)
Sample Penalty (If you exceed 24 gram sample limit) = 5 * (Number of samples dropped - 24)
Scoring
Teams earn points by:
Teams lose points by:
Total Score: 0.5 * Battery Score (B) + 0.25 * Time Score (T) + 0.25 * Collection Score (C) - Total Penalties
Block Shapes and Meanings
“Plug” puzzle piece: represents some value or piece of information
Note: “Get Carried Samples” is something called a function. It does a series of operations/actions. In this case, the function also gives you (“returns”) information after it runs. In this case, the function returns the amount of sample the robot is carrying. Not all functions return something, but this one does, so we can treat it as a “plug” piece that holds a value.
“Socket” puzzle piece: represents something that requires information/input
Note: some functions require information input. For example, the “Move to Site” function does the action of moving to a given site, but you must provide it with the input of which site you want to move to. This is when we need to put a “plug” with information into a “socket” that requires information.
“Stackable” puzzle piece: some process to be executed one after the next
plug
socket
stacking
Game API
What is an API?
Long Version:
Application program interface (API) is a set of routines, protocols, and tools for building software applications. An API specifies how software components should interact. Additionally, APIs are used when programming graphical user interface (GUI) components.
Short Version:
Cheat sheet of custom functions pre-created for your convenience.
APIs Get Sites
These set of code blocks will be important for navigating the game board and determining the current status of the game board.
int site
int GetActiveSites()
int GetCurrentSite()
APIs Get Site Status
These set of code blocks will return the status of a site’s samples and power level
int GetSiteSampleStatus
int GetSitePowerStatus
APIs Get Battery and Get Time
These set of code blocks will be important for ensuring that you are within the battery and time limits of the game
int GetBattery
int GetTime
APIs Collect
This code block is how Astrobee will collect the samples from the site it is currently at.
When this code block is used Astrobee will collect the sample at the site it is currently at. If the current site is active it will collect samples equal to the number of the site it is at. Astrobee will collect all the samples at the site if the site is active and add the samples to the total samples Astrobee is currently carrying.
The code block will return either True or False.
If the code block returns True the samples were successfully collected.
If the code block returns False the samples were not collected and the site is either inactive or the samples were already collected.
APIs Duplicate
This code block is how Astrobee will duplicate the samples from the site it is currently at.
The duplicate code block will duplicate the current number of samples that are on Astrobee. How much the samples will be duplicated by will be determined by the power level at the site. The power level is determined by the site number.
For example, if Astrobee is at site 8 the power level is 8. If duplicate is used at this site all of the samples on Astrobee will be duplicated which means the samples will be multiplied by 8. For example, if Astrobee has 2 samples on board and duplicates at site 8, Astrobee will now have 16 samples (2 samples multiplied by power level 8 = 16 samples).
APIs
MoveTo(site)
This code block is how Astrobee will move from site to site.
The MoveTo(site) code block will be used by Astrobee to move from site to site on the game map. Notice how you need two code blocks for Move To Site to work. First you need the code block Move To Site. You can then assign Move To Site another code block that represents the site number that you want Astrobee to move to.
In the example above Astrobee will move to Site 8 but you can enter any number from 1-9 to control which site Astrobee will move to.
APIs
Get Samples
These set of code blocks is how you will find out how many samples you have in total, on Astrobee and at base.
int GetBaseSamples()
int GetCarriedSamples()
int GetTotalSamples()
APIs
MoveToBase
This code block will move Astrobee back to its base site where it can deposit the samples it is currently carrying.
Note that move to base is different from moving to Site 5, while they are in the same square you cannot deposit your samples if you are at Site 5, you must move back to base to deposit samples.
APIs
DepositSamples
This code block will deposit all of the samples currently carried by Astrobee adding on to the total number of samples currently at the base site. You must be at the base site in order to deposit samples.
APIs
GetScore and EndGame
int GetScore()
void EndGame()