CASE STUDY

Reimagining how to deploy robot parts to a fleet of robots

Fragments on Viam are a way of sharing and managing identical resource configuration files across multiple robots. If you have multiple robots with the same hardware, wired the same way, you can create and share a fragment and add it to any number of robots.

Currently, Viam can only provide public fragments but users can create fragments within their organization.

RESEARCH FINDINGS

Conducting heuristic analysis and finding problems with the existing design

I conducted a comprehensive evaluation of the current app platform interface, utilizing research-supported principles of accessibility and usability, which involved adding a fragment to my robot myself and navigating through user pain points that had been raised.

HEURISTIC NOTES ON MAIN FRAGMENT PAGE
PROBLEM

Lack of user control and freedom

Currently, after a user adds a fragment to their component, they can't edit parameters or attributes of a component, nor go to raw JSON to edit it either, as it shows up as a UUID.

Therefore, in order for a user to edit details of a fragment, they would have to copy the fragment code from the read only editor, and then paste it onto the JSON, which shows up as separate robot components.

solution

Provide users with the ability to easily edit and modify the added fragments’ parameters

Introduce a “unlink” option that splits the fragments into individual components that the user can then edit the attribute fields for.

PROBLEM

No design source of truth

The current read-only config experience has a lot of white space and bulky attribute fields that don’t provide any value.

solution

Condense attribute fields and prioritize essential information

Using collapsible sections for robot component parts to present additional information only when users actively want to explore it and in a read-only format to showcase that the information is uneditable.

additional opportunity areas
  • Users should be able to create a robot from a fragment

  • Users should be able to turn robot component parts into a fragment

  • When changes are made to the fragment, those changes should be automatically carried to all robots that include the fragment in their config.

laying the ground work

Taking a first pass at designing possible user workflows

Creating a robot from a fragment
Creating a fragment from robot parts
design ideation

Elevating the Fragments experience

For the design, I adhered to Viam’s design system including clear and consistent typography, their icon library, and a clear visual hierarchy to direct the user’s attention to the most important information.

Condense attribute fields and prioritize essential information

The design needed to bring important information to the forefront while removing unnecessary clutter.

Using collapsible sections for robot component parts to present additional information only when users actively want to explore it and in a read-only format to showcase that the information is uneditable.

Provide users with the ability to easily edit parameters

Enable users to effortlessly adjust and refine the parameters of the incorporated fragments.

Introduce a “unlink” option that splits the fragments into individual components that the user can then edit the attribute fields for.

Creating a robot from a fragment

Enable users to effortlessly create all of the robots in their fleet and be configured the same way.

Save robot component part(s) as a fragment

Enable users to effortlessly create a fragment from the components they create on the platform instead of through raw JSON code.

(scroll horizontally to see flow)

prototype

The Fragment experience from beginning to end

Condense attribute fields and prioritize essential information
Provide users with the ability to easily edit parameters
Save robot component part(s) as a fragment
Creating a robot from a fragment

Last updated on July 20, 2024, 5:46 PM EST