-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CX: integrate basic storage station usage #409
Open
TarikViehmann
wants to merge
41
commits into
master
Choose a base branch
from
tviehmann/storage-station-full
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TarikViehmann
added
enhancement
New feature or request
agent
A bug or feature in the agent
labels
Mar 11, 2021
Have you had a look at the build failures? |
TarikViehmann
force-pushed
the
tviehmann/storage-station-full
branch
from
May 10, 2021 14:49
9587a0d
to
a526a27
Compare
TarikViehmann
force-pushed
the
tviehmann/storage-station-full
branch
from
October 20, 2021 13:35
a526a27
to
59c252e
Compare
For now assume that all slots are usable and empty in the beginning. This is probably due to changes once the storage station rules are discussed.
A first rudimentary use-case for the storage station is to store finished products if they cannot be delivered yet. This is probably a desired behavior unless it costs points to store workpieces.
It might still be needed if the rules allow for pre-stored products, for now disable it
Whenever we get info about a new product at the storage station, bind a workpiece to it so it can be properly used.
This prepare action only changes the workpiece description associated to the storage slot, hence there is no feedback in form of a mps state change. Instead the update is sensed through the periodic storage update.
According to the rules pre-stored workpieces may only be used for the C0 order(s) with quantity requested > 1. Hence we can combine the binding of the pre-stored product with updating the process information and leave the other pre-stored products as is.
domain objects are not synced, domain-objects-by-type might arrive late
All exog actions reacting on mps-states have either processing or their respective final state as precondition and do not mention the mps-state as affect.
Actions that trigger the update of workpiece descriptions at the SS do not need to be split up into a prepare followed by an exog action: there are no processing steps involved, instead all effects are passively sensed.
This is also the case for all other machine related actions.
TarikViehmann
force-pushed
the
tviehmann/storage-station-full
branch
from
May 25, 2023 09:34
ad0db73
to
d00d687
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the agent to the latest changes of the refbox regarding the storage station introduced by robocup-logistics/rcll-refbox#91.
The
MachineInfo
message processing is updated to deal with thestatus_ss
field, which provides the storage status of every single storage station slot.New Predicates
This leads to the introduction of three new sensed predicates, namely
ss-stored-wp
,ss-shelf-slot-free
andss-new-wp-at
that are updated according to the content ofstatus_ss
. The first two are simply reflecting whether a workpiece can be found on a slot.ss-new-wp-at
contains information on workpieces that are unknown to the agent and stored in the SS by decoding the additional information field that is sent. This allows to receive info on pre-stored workpieces. The paradigm here is that the agent fully trusts the workpiece descriptions sent by the refbox. Hence this info is updated to reflect the agents knowledge to a format of<wp-id> <wp-base-color> <wp-ring1-color> <wp-ring2-color> <wp-ring3-color> <wp-cap-color>
, always containing exactly 6 words.New Actions
To interact with the SS the agent can use the refbox actions
prepare-ss-to-store
,prepare-ss-to-retrieve
andprepare-ss-to-assign-wp
, the former two are accompanied by the followup actionsstore-wp
andretrieve-wp
.prepare-ss-to-assign-wp
is special as it triggers an instantaneous change in the refbox without direct feedback in form of a mps state change. Rather, the success can be determined through sensing the updated workpiece descriptions in theMachineInfo
messages. Hence, the feedback about the success of sending the prepare message and the updated worldmodel changes occur simultaneously and no split between prepare message and worldmodel update action is made.Lastly a new action modeling the assignment of a workpiece to an order is introduced with
assign-wp-to-order
. This gives us a clean way to bind workpieces to orders when it becomes necessary outside of the regulardispense-for-order
action.New Goals
SS-SPAWN-C0
that spawned a C0 at the SS output for the 2019 rule set is replaced bySS-ASSIGN-WP
that can assign a pre-stored product to the C0 order wherequantity-requested > 1
.STORE-WP
stores a finished product ifdelivery-begin > 180s
away. If the begin is closer than that, then our existing behavior is applied (pick up the product if it blocks another product from being finished, deliver once the delivery begin approaches).GET-STORED-WP
retrieves a product from the storage station once its delivery begin approaches, which makes sense if we only use the storage station for finished products as assumed for now.