Edit existing feature

Hello,

I am trying to build a URCap which changes a feature created in Polyscope by a User, inside an installation node. For this i get the Feature list from:

apiProvider.getInstallationAPI().getFeatureModel().getGeomFeatures(FeaturePlane.class);

and write each feature name (FeaturePlane.getName()) in a list to be used by a dropdown menu.

When a user selects a feature plane i want to change the selected one. I tried doing that using:

featureContributionModel = apiProvider.getInstallationAPI().getFeatureContributionModel();
featureContributionModel.updateFeature(Feature_Key, newPose);

where the Feature_Key variable holds the name i got from the dropdown menu.

This results in an error: FeatureNotFoundException: No Feature found using Ebene_1 as key

if the name is not the correct key, how else can i get this key. There seems to be no funktion for getting a key through a feature contribution model.

is there a better way?

Hello,

it is only possible to update features provided by the URCap itself. See the inserted excerpt from the API Reference docs:

The idKey is the unique name provided by you upon creating the feature. It can be different than the name of the Feature.

If you want to adjust a Feature afterwards using the updateFeature()-Method, you would need to provide the feature yourself.

Alternatively depending at what stage you need to adjust the feature, you can use the found name to update it using script in the robot program itself.

sko

Hi all,

Just to be sure to understand this topic.

There is no way to edit a feature created on polyscope directly on an UR program?

Thank you for your answer,

Romain

Hi rs1,

The ability to edit a feature in Polyscope was added in 5.9.1 for E-series only, but this has to be done on the Installation tab. You can update a Feature in the program when it runs(i.e. shift it up 20mm to offset all the points associated with it), but this does not affect the Installation version of the Feature. There is no way to permanently change the Feature from the program.

1 Like

Hello krmi,

I do not know the urcaps capabilities. What I undestand is that using urcap it’s possible to create or modify features permanently ?

My problematic is the following : we have a robot which is moved at different places to make some different jobs.The robot is on a frame with retractable wheels. What I would like is to automatize the creation of working frame (feature plane) using the robot force abilities of the ur10.

The robot frame is placed on some ground markers or mechanical stops (not very accurate). And after that I imagine an automatic frame calibration. A metal ball is attached to the end effector and 3 metalic cones are placed on the working area. The three metalic cones are known in the robot frame (written in hard).

The robot begins the probing of the three cones using force/compliance functions along a vertical move. Once the robot steady (ball in the cone) the point is registered… and so on for the 2nd and 3rd point. With these 3 points I would use the function to create a feature plane ( I found the math in the Robotics in UR Robots_March 2019.pdf)
The force touching allows me to be more repeatable and not operator dependent… and I save time.

Is a specific urcap developpement can do that ?
If yes, I have to learn the urcaps coding :slight_smile:

Thank you for your answer.

Florent

@florent.monbrun You are correct, it is possible to permanently create and modify features using a urcap. Our company has a urcap that does something very similar by creating and managing features / planes for a mechanical mounting interface. This allows for offsetting the robot after it has been moved to different jobs.

Hi @tylerj , hi @florent.monbrun ,

Can you use your plane created by your URCaps, in a MoveL/J function?

Florent, if you need some help for URCaps coding, we can maybe do a specific training session to explain how it is working (in mainline). It will be a pleasure to see you again.

Romain, Sysaxes

Hi @rs1, yes, you can apply the URCap contributed feature to a move node.