Software release V1.18 update guide
This guide outlines all of the changes included in the V1.18 software release that may impact the functionality of your existing solutions—both in simulation (virtual machine) and on hardware. You may need to follow multiple steps in this guide to ensure your solution continues to function as expected. If you need further assistance, please don't hesitate to submit a support ticket.
Update IPCs
The 1.18 release is not backwards compatible with previous versions of the software on your Intrinsic-configured PCs (IPC). If you have disabled automatic updates for IPCs you will need to manually update the IPC to continue.
- Backward compatibility is not supported, when a solution is started, resources are converted to the new version. You cannot go back to the previous pose estimator resource. Also, the frontend needs to be at the new version.
- It requires the platform (frontend), perception pod, train pod, and estimate_pose skills to be updated to the amnesty release.
- The skill catalog is being deprecated. Old clients will no longer be able to use the skill catalog. They should be updated to use the asset catalog.
Update SDK / Solution Building Library (SBL) / inctl / DevContainer
After deploying the 1.18 release, earlier versions of the Intrinsic SDK will not be usable with solutions running on 1.18. Update your SDK to the current release and review the release notes for specific changes in the SDK since the last release.
- Moved geometric constraints from world to motion planning folder. Breaks everyone using Geometric Constraints. Update imports to reflect the updated folder.
- Deletes the
ppr_refs.protocontaining the unusedProductPartReferencemessage from the//intrinsic/config/proto package. - Calls to
simulation.reset()in the devcontainer will returnUnimplementedError, please update your SDK version to the latest to fix. - Removed ResourceHealth and OperationalStatus from SDK. Support for ResourceHealth will be removed soon and ServiceState should be used instead.
- Removed an API used by older versions of the
inctl cluster deletecommand. - When using the motion planner service to plan motions, compute IK, or check collisions switch from using the joint position equality to joint vec.
- When using the motion planner via SBL, calls to the service must switch to joint vec parameters.
- Renamed field for geometric constraint
PoseEqualityfrompose_equalitytocartesian_pose. When using via SBL, updateMotionPlannerServicecalls toPlanTrajectory,ComputeIk, andColllisionCheckingto the new name. - A nesting layer in the definition of the motion target in the motion specification has been removed.
- When using via SBL, add the
GeometricConstraintdirectly to theMotionSegment.
- When using via SBL, add the
- Removed
failure_behaviorfrom parallel node.- The SBL functions for this unimplemented feature have been removed.
- The
cel_expressionoption in the data node has been deprecated.- The field has been marked deprecated and will be removed in the future. Replace the
blackboard_keywith thecel_expressionin all places that use the blackboard_key. E.g., for a data node with blackboard keyfooand cel_expressionskill_return.bar, whenfoois used in any assignment, replace that assignment byskill_return.bar.
- The field has been marked deprecated and will be removed in the future. Replace the
- Changed the way how grasp-object defines motion types.
- Instead of setting
path_constraint.mutable_linear_path_constratin = …setpath_constraint.motion_type=LINEAR. Instead ofpatch_constraint.enforce_joint_path_interpolationsetpath_constraint.motion_type=JOINT
- Instead of setting
- Removed
domain_formulafrom behavior tree proto.- Remove any uses of the field if they exist.
- The
from_worldoption in the data node has been deprecated.- The field has been marked deprecated and is to be removed in the future. Replace this, e.g., by a task node with Python code execution.
- Data nodes with the protos field and for each loops have been deprecated.
- The field has been marked deprecated and is to be removed in the future. Prefer to use a while loop instead. The
loop_counter_keyvariable is available to index into a list of protos returned by a skill.
- The field has been marked deprecated and is to be removed in the future. Prefer to use a while loop instead. The
List of Proto renaming / versioning changes
- Motion planning joint limits and blending parameters are not contained in motion specification messages anymore. When importing these parameter types, import
intrinsic/motion_planning/proto/v1/motion_blending_parameterandintrinsic/motion_planning/proto/v1/motion_planning_limits. - Proto files in
//intrinsic/geometryhave been moved to//intrinsic/geometry/api - For motion planning messages, update to
motion_planning.v1.MotionPlannerService. Instead of usingintrinsic/motion_planning/proto/, useintrinsic/motion_planning/proto/v1/. This change break all solutions which include the motion planner service and their protos intrinsic/hardware/proto/settings.protohas been moved tointrinsic/perception/proto/v1/settings.proto.- Protos
JointLimitUpdatemoved fromintrinsic_proto.skills.JointLimitsUpdatetointrinsic_proto.motion_planning.JointLimitsUpdate. intrinsic/perception/proto/capture_data.protohas been deprecated, please useintrinsic/perception/proto/v1/capture_data.protoinstead.intrinsic/perception/protopose_estimate_in_root.protohas been deprecated, please useintrinsic/perception/proto/v1/pose_estimate_in_root.protoinstead
Changes in real time control assets
What is affected
Existing saved solutions using real time control assets. Solutions will not be able to run after opening.
Required actions
- Upgrade each real-time control service, hardware module, and OPC-UA service to the latest version, at least 20250407. To update an asset, navigate to the 'Services' tab in the right sidebar. Right-click on the service asset and select 'Manage Version'. Select the most recent version and click 'Update'. Learn more.
- Edit real-time control service (often named "robot_controller" in the scene tree) settings and replace
xfa.emptybyintrinsic.emptyandxfa.stopbyintrinsic.stop. - If an EtherCAT hardware module exists, edit its settings and replace type.googleapis.com/intrinsic_proto.icon.EtherCatModuleConfig by type.googleapis.com/intrinsic_proto.icon.v1.EtherCatModuleConfig and "master" by "main_device".
- If real-time control service fails with an error missing the control frequency, edit hardware module settings and add or fill out the field control_frequency_hz at the top level. For example, add a line "control_frequency_hz: 500".
- If custom services or HMI backend servers exist, re-compile them with the latest SDK from https://github.com/intrinsic-ai/sdk, fix compile errors, and sideload again. For example, for a C++ service that uses ICON, replace
intrinsic/icon/proto/service.proto.hbyintrinsic/icon/proto/v1/service.proto.handintrinsic_proto::icon::byintrinsic_proto::icon::v1::. For Golang, replaceintrinsic/icon/proto/service_go_protobyintrinsic/icon/proto/v1/service_go_proto.
Removed process control node from behavior tree. The extension_point field of a behavior tree decorator has been removed.
What is affected
If you specify process control nodes or extension point decorators.
Required actions
This feature is not available. Please remove any uses.
Removed the field default_cartesian_limits from the robot specification.
What is affected
Using the Motion Planner Service in a solution and have set default_cartesian_limits.
Required actions
The field is not required anymore for motion request with the Motion Planner Service. Please remove the field from the solution.
The enable_gripper skill is updated to use ServiceState client instead of ResourceHealth (which is deprecated).
What is affected
Solutions using the enable_gripper skill or a gripper service.
- If your existing solution uses the
enable_gripperskill or a gripper service, you will need to update. - If the
enable_gripperskill fails when running a solution, this may be the cause.
Required actions
- If the
enable_gripperskill is already installed in your solution but there is no gripper service installed:- Manually update the
enable_gripperskill to the newest version
- Manually update the
- If the gripper service(s) are installed in their solution but the
enable_gripperskill itself was not yet installed- Manually update the gripper service(s)
- Both
enable_gripperskill and gripper service(s) exist in their solution- Manually update both the skill and services.
objects has been removed from plan_grasp params, use candidate_objects instead.
What is affected
Solutions using the plan_grasp skill.
Required actions
Use the candidate_objects parameter instead of objects from plan_grasp params.
The Equipment manager has been removed since it used the deprecated ResourceHealth.
What is affected
Equipment Manager in Flowstate
Required actions
Update your services to utilize ServiceStatethrough the Service Manager dialog in the Flowstate UI. If you need to access the Equipment manager you can temporarily add ?showEquipmentManager=true to the URL (eg. https://flowstate.intrinsic.ai/solution-editor/project/vmp-123-123/?showEquipmentManager=true).
This will be removed in the short feature. Please file a ticket if an issue arises.
Connection to ghcr.io container registry required during startup.
What is affected
Workcells behind firewalls which block internet services might fail to start waiting for “code-execution-server”.
Required actions
If a workcell does not come up the github container registry (ghcr.io) might not be reachable. Follow the troubleshooting guide under 'Failed to start code execution' to determine if this is the case. Make sure ghcr.io is reachable or contact support.
Additional information
This is only a required for the initial pull of the image and not required during runtime. Other images come from gcr.io (Google Cloud Container Registry) rather than ghcr.io (GitHub Container Registry). Enable a connection to ghcr.io. This is required to use Python script nodes.
output only fields in the executive api are now marked by the extension google.api.FieldBehavior and do not use a custom proto any more
What is affected
Behavior tree proto API. The type of the extension has been changed. Any tools that read this field need to be adapted.
Required actions
Adapt tools that use the output_only extension as a google.api.FieldBehavior.
use_default_plan has been deprecated when creating a new executive operation.
What is affected
Executive API, e.g., HMI authors.
Required actions
Specify a behavior tree explicitly in the CreateOperationRequest.
The instance_name and skill_execution_data fields in a BehaviorCall have been deprecated.
What is affected
Manually setting or reading the BehaviorCall proto.
Required actions
Do not set or read these fields anymore.
The behavior_tree_state field in the executive RunMetadata has been replaced by operation_state.
What is affected
Executive API, e.g., HMI creation. behavior_tree_state has been deprecated but is still available transitionally.
Required actions
Use operation_state instead of behavior_tree_state for the canonical state of an operation. Handle the additional state PREPARING appropriately. PREPARING is active when an execution has been requested, but the tree has not started, yet, waiting, e.g., for a simulation reset. Common cases like waiting for terminal states, e.g., SUCCEEDED/FAILED/CANCELED, are unchanged.
Drop usage of geometry_id to refer to geometry data like meshes. This proto field was marked as deprecated in 2024 Q1.
What is affected
Solutions with SceneObject assets that are older than 2024 Q1
Required actions
Update the SceneObject asset to the latest version.
Definitions of path constraints for the motion planner service in the motion specification changes. collision_settings move one layer up into the motion_segment.
What is affected
Solutions using the motion planner service.
Required actions
Instead of setting path_constraint.mutable_linear_path_constraint = … set path_constraint.motion_type=LINEAR. Instead of patch_constraint.enforce_joint_path_interpolation set path_constraint.motion_type=JOINT
Additional information
linear_path_constraint and enforce_joint_path_interpolation will be defined through motion_type=LINEAR and motion_type=JOINT in the motion_segment. joint_position_limits is getting merged into joint_limits. joint_limits and dynamic_cartesian_limits are now defined directly in the motion_segment as well.
Inclusive naming of EtherCAT hardware module configuration proto fields
What is affected
Solutions containing ICON hardware module configuration.
Required actions
After updating ICON assets to the latest version, update configuration protos to use the updated field names: replacing master with main_device and slave with sub_device.
Configuration for simulated hardware modules no longer supports cycle_duration.
What is affected
Solutions with sim_bus_hardware_configuration which sets cycle_duration.
Required actions
Configure this in the top-level HWM configuration proto using either the control_period_ns or control_frequency_hz members
Advisory changes, but not breaking
These breaking changes are included in the release notes but are advisory changes. There is no specific user action required to “migrate” during the update.
- VM lease behavior changed: VMs are now returned after 15 minutes of keyboard/mouse inactivity in the solution builder tab. Previously VMs were returned 30-60 minutes after the tab was closed.
- Frames that are defined in uploaded assets can no longer be reparented, renamed, or deleted from the world editor.
- New camera assets can no longer be created with zero image height or width.
- Potentially break old world/fragment/resource data stored on disk. Some fields have been deprecated for a long time and no longer written, with this change we no longer read these fields either.
- Removed unsupported EtherCAT MainDevice Synchronization Modes (DCM sync modes).
- a pre-existing check in place that would have created an error if someone had tried to use them.