When you plan to use MIRAI, imagine the robot task divided into sections. The robot’s native controller will steer sections of the task with predetermined movements and the MIRAI controller will steer the complex sections with variance — when things in the workspace aren’t predictable. During the task, the native control program transfers control of the robot to MIRAI to handle the complex section. Once MIRAI has completed the skill, it hands back control to the native program. How does MIRAI know when to do the handback? - End states.
An end state is a condition that a MIRAI-powered robot reaches at the end of a skill. At that point, MIRAI knows to hand control of the robot back to the native controller. Common end-states are TCP speed or the force readings from the end effector. All end state options can be used in parallel. In case these parameters are used simultaneously, the condition that is met first will trigger the desired end state.
- Configuring End State Parameters
- Visual End State Recognition (Smart Detection)
- Speed (TCP Speed-based)
- Force (TCP Force-based)
- Position-Based (TCP Position-Based)
Configuring End State Parameters:
For existing skills, open a skill and navigate to the "Skill versions" tab where you can select the version of the skill you would like to configure. Tap on "Test & Configure" to start the testing session.
Note: End states can only be changed within the active skill version, but will apply for all skill versions in this list.
You should now see the skill session main page. Navigate to the the ‘Execution Settings’ button at the bottom. Then ‘End States’.
Determining which End-State to Use:
When determining which triggers are best for your application, think through the task and decide which conditions best indicate the final state of a successful skill.
Example: Does your skill need to stop over a certain insertion point? Perhaps using speed would be best - since we expect the TCP to come to a complete stop over the target position, this would be highly repeatable and precise.
MIRAI uses the following four end-states to determine the successful conclusion of a skill:
1. Visual Endstate Recognition (Smart detection)
The visual and state is a smart feature that allows Mirai to determine automatically when the skill ends. Mirai compares the current live image with the image that was recorded during training. For example, if you select 0.7 as the value, this means that 70% of the current image must match the training images already demonstrated in order for the skill to be considered complete. This option will deliver good results for most cases and should be tried first.
The Visual Endstate Recognition end state trigger is best used for tasks that end by:
- beginner trainers
- Not clear which end-state is best (good starting point)
- Visuals are clearly defined within the camera's field of view
How to configure Visual endstate Recognition:
From the endstate page - Use the slider to modify the threshold.
A lower value means that the skill could stop significantly before the final end state. A higher value means the positioning at the end of the skill must match the images from the live camera feed and recorded footage almost precisely.
The value in the scale e.g. 0.55 indicates that MIRAI has reached 55% of the desired final position and the skill is then terminated.
2. Speed (TCP Speed-based)
The movement at the tool center point exceeds (above or below) a certain speed threshold, which indicates that the successful end state is reached, e.g., the speed of the TCP slows down too close to zero when a target position is reached.
The speed-based end state trigger is best used for tasks that end by:
- slowing down or stopping when reaching a target position in space
- stopping after a successful insertion
- slowing down when reaching the end path (e.g., gluing, painting, etc.)
How to Configure Speed-Based Settings:
The speed-based threshold value can be adjusted from 0.1 to 100 (cm/sec), and can be set to trigger above or below the threshold.
The ‘Timeout’ defines the maximum timespan in seconds a skill can run before timing out. This is meant to be a local timeout for a skill in case it does not reach a defined end-state. Once timeout is reached, the skill is automatically stopped.
The ‘Delay’ option defines the delay in seconds after the start of skill before the end state settings will be activated. This is done to prevent an early stop. The default value is 1 second which should suffice for most cases.
3. Force (TCP Force-based)
The force measured at the tool center point (end effector) exceeds (above or below) a threshold value, which indicates that the end state is reached, e.g., when touching a surface.
A force-based end state trigger can be used for tasks that end by:
- touching a surface (e.g., end points for surface measurements or insertion)
- stopping a surface interaction (e.g., by reaching the end of a working area)
- dropping a part (e.g., after picking)
How to configure Force-Based settings:
The value of the force threshold can be adjusted between 0 to 100 (Newton). The default value is set to 3 Newtons. You can define whether the skill should stop ‘above’ or ‘below’ this value as measured by the F/T sensor.
4. Position-Based (TCP Position-Based) BETA
The end effector crosses a defined plane (position-based end state). Please note, this feature is released as a beta version (accuracy +/- 5mm on low speed setting (</= 1).
BETA Release Limitations: If you use a TCP offset, it currently will NOT be included. For example, if you select a specific height as the target value and the target height is not reached, the skill would be terminated.
How to Configure Position-based settings:
This setting can be defined perpendicular to the x, y or z-axis in the TCP frame. You can also define an end-state based on a defined plane: the robot will stop as soon as the end effector crosses that plane. Note: This feature is currently released as a ‘beta’ version.
To set a position-based end state, move the robot arm to a position where the threshold should be defined, then tap on the ‘Set position’ button. The X, Y and Z value will automatically update based on the current pose of the robot arm.
Next, select an axis (X, Y, or Z). The threshold should be perpendicular to the selected axis.
Tap on ‘Apply Settings’ to set a position-based end state. Make sure to confirm settings by tapping ‘Apply Settings’; otherwise, the changes will be lost.