Skip to main content

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.proto containing the unused ProductPartReference message from the //intrinsic/config/proto package.
  • Calls to simulation.reset() in the devcontainer will return UnimplementedError, 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 delete command.
  • 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 PoseEquality from pose_equality to cartesian_pose. When using via SBL, update MotionPlannerService calls to PlanTrajectory, ComputeIk, and ColllisionChecking to 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 theGeometricConstraint directly to the MotionSegment.
  • Removed failure_behavior from parallel node.
    • The SBL functions for this unimplemented feature have been removed.
  • The cel_expression option in the data node has been deprecated.
    • The field has been marked deprecated and will be removed in the future. Replace the blackboard_key with the cel_expression in all places that use the blackboard_key. E.g., for a data node with blackboard key foo and cel_expression skill_return.bar, when foo is used in any assignment, replace that assignment by skill_return.bar.
  • Changed the way how grasp-object defines motion types.
    • Instead of setting path_constraint.mutable_linear_path_constratin = … set path_constraint.motion_type=LINEAR. Instead of patch_constraint.enforce_joint_path_interpolation set path_constraint.motion_type=JOINT
  • Removed domain_formula from behavior tree proto.
    • Remove any uses of the field if they exist.
  • The from_world option 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_key variable is available to index into a list of protos returned by a skill.

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_parameter and intrinsic/motion_planning/proto/v1/motion_planning_limits.
  • Proto files in //intrinsic/geometry have been moved to //intrinsic/geometry/api
  • For motion planning messages, update to motion_planning.v1.MotionPlannerService. Instead of using intrinsic/motion_planning/proto/, use intrinsic/motion_planning/proto/v1/. This change break all solutions which include the motion planner service and their protos
  • intrinsic/hardware/proto/settings.proto has been moved to intrinsic/perception/proto/v1/settings.proto.
  • Protos JointLimitUpdate moved from intrinsic_proto.skills.JointLimitsUpdate to intrinsic_proto.motion_planning.JointLimitsUpdate.
  • intrinsic/perception/proto/capture_data.proto has been deprecated, please use intrinsic/perception/proto/v1/capture_data.proto instead.
  • intrinsic/perception/protopose_estimate_in_root.proto has been deprecated, please use intrinsic/perception/proto/v1/pose_estimate_in_root.proto instead

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

  1. 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.
  2. Edit real-time control service (often named "robot_controller" in the scene tree) settings and replace xfa.empty by intrinsic.empty and xfa.stop by intrinsic.stop.
  3. 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".
  4. 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".
  5. 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.h by intrinsic/icon/proto/v1/service.proto.h and intrinsic_proto::icon:: by intrinsic_proto::icon::v1:: . For Golang, replace intrinsic/icon/proto/service_go_proto by intrinsic/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_gripper skill or a gripper service, you will need to update.
  • If the enable_gripper skill fails when running a solution, this may be the cause.

Required actions

  • If the enable_gripper skill is already installed in your solution but there is no gripper service installed:
    • Manually update the enable_gripper skill to the newest version
  • If the gripper service(s) are installed in their solution but the enable_gripper skill itself was not yet installed
    • Manually update the gripper service(s)
  • Both enable_gripper skill 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.