Grouping MVP UI Design Part 1: Compound Activities
Description & Background
We need to design basic UI capabilities in order to represent the new planning elements that will be added to model hierarchical task networks as described in this Grouping discussion.
Short recap of UI-relevant parts of discussion:
- In addition to the "primitive activity types" that are defined today, users will be able to define compound activity types in their mission model, which consist of one or more hierarchical task networks into which the compound activities can be decomposed.
- A hierarchical task network consists of a set of primitive activity directives + a set of temporal relations between the primitive directives that define their ordering/timing - eg. "
Bhappens 5 minutes afterAends" - A compound activity directive can be added to a plan, but it will be "ungrounded" at first - meaning it has a defined start time, but has not yet been decomposed into primitive activities with known start/end times. The Aerie Scheduler must be run to decompose and ground the activities.
- For example....
- If I have a mission model with primitive activity types like:
RESET_CAMERA,SET_EXPOSURE, &CAPTURE_IMAGE - I could define a compound activity type called
IMAGE_ROUTINE, and an HTN that it decomposes into, which might define something like: "RunRESET_CAMERA, wait 5 minutes, then runSET_EXPOSURE, then runCAPTURE_IMAGEafter that is done"
- If I have a mission model with primitive activity types like:
Requirements
These may need to be improved/expanded upon, but the basic UI design requirements for this are:
- Users should be able to see a list/library of the compound activity types in their mission model, and be able to add them to their plan as compound activity directives, similar to how they add regular (primitive) activity directives today by dragging and dropping from the list
- Just like primitive activity directives, users must be able to set input parameter values on their compound activity directives.
- Compound activity directives should be shown on the timeline, but should be visually distinct from primitive activity directives.
- After running simulation + scheduling, the timeline should also show "grounded" compound activity instances as spans of time, but again they should be visually distinct from primitive activity instances.
- There should be some way for the user to expand a compound activity to see more details about it - either in a side/bottom pane, or some sort of popover UI - but the contents of this are TBD and will be covered in Part 2
Out of Scope
We decided to split up the UI design for this into two parts - this is Part 1. Part 2 will cover how to visualize the decomposition of a compound activity into a list of sub-activities and relations between them. We expect this visualization to be fairly self-contained and only visible when the user clicks/interacts with a compound activity.
Action Juan: Arrange demo of TaskNet visualization Configure temporal relations parameters via UI: could be similar to the way it is done for activity arguments. Starting Next Sprint Planning: Start discussion on the approach to visualize compound tasks. Visualization of tasknet internals for later
I've updated the ticket description above to flesh out some design requirements based on discussions earlier this week, & I'd like to get @lklyne working on this in our next sprint (starting 7/22). We decided to split this into two parts and not include the more difficult task of visualizing HTNs in part 1 - opened a draft ticket for Part 2 here: #1386 . @jmdelfa please let me know (or edit in place above) if I've gotten any details wrong.
Initial discovery: https://www.figma.com/board/ZebAe57i6RM7iZq4rOMBoH/Aerie-%231375---Timeline-Grouping?node-id=0-1&t=eGOzPKLbUXU5cjrA-1
Prototype incorporating first round of design feedback: https://www.figma.com/proto/nQ2TqzIr0Kl1SIzqT246Ro/Aerie-%231375-Compound-activities?page-id=29%3A17078&node-id=34-79048&viewport=895%2C84%2C0.09&t=75xkiQJR6Ydz1TDO-1&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=34%3A75996&show-proto-sidebar=1
Hoping to address #1169 with this too
This is ready for dev with a few outstanding questions remaining. https://www.figma.com/design/nQ2TqzIr0Kl1SIzqT246Ro/Aerie-%231375-Compound-activities?node-id=65-35353&m=dev&focus-id=69-58754
Interaction states for the structure and timeline combo are in this prototype. This includes a new hover and active state for timeline activities. This section in figma has the hover and active states.
Remaining questions:
- What happens on drag for an activity that has children? How do we show out of date in the timeline?
- How do we show when something is out of date in the hierarchy / structure section in the instance details panel
- What do we show similar to anchors in the timeline to show relationships? (probably v2)