CircleMoveNode creates static ViaPoint andEndPoint

Hi,

when i create a CircleMoveNode through the URCaps API it generates a Waypoint, a ViaPoint and EndPoint. The Problem is, the Via- und EndPoint do not have a Waypoint number and when i define those Waypoints Configuration it assigns the Configuration to ALL Via- and EndPoints of the CircleMoveNodes in the whole Robot Program!

is there ANY way to change the Waypoint Names or give them an unambigous object reference?

otherwise it is not possible to define a CircleMoveNode inside a URCap generated Program with more than one circle moves

1 Like

Would it be a possibility for you to delete the two auto-created child Waypoints of the Circle Move (Via and End), and insert your own two new Waypoints?

When waypoints have the same name, they are automatically linked (aka Linked Waypoints), which means they share the position.

this wont be an option because the URCap would be pointless if our customers need to modify the waypoints in that strange way :frowning:

The only difference would be, that the waypoints names would be “Waypoint_x” instead of “ViaPoint_x”, but you could do it all from the parent node, that inserts the CircleMove, removed the default waypoints, and re-inserts your own two waypoints including individual locations.

Not viable?

i already tried to remove and add new waypoints under the CircleMove Node but it is not possible:
in PolyScope it throws s a message “This section cannot be altered” and through the API it just doesnt add or remove the waypoints

The Problem is shown below:
uivsapi

Can you share your code used to build the sub-tree and assign a position to the end-point?

yes :slight_smile:

Adding CircleMoveNode:

                        try {
                            arcCPointsMoveTreeNode = subTreeNode.addChild(addMoveNode(true));
                            CircleMoveNode circle = programNodeFactory.createCircleMoveNode();
                            arcCPointsMoveTreeNode.addChild(circle);
                            //remove Auto inserted Circle Move Waypoint
                            arcCPointsMoveTreeNode.removeChild(arcCPointsMoveTreeNode.getChildren().get(0));
                            addCircleWaypoints(arcCPointsMoveTreeNode, pose, jointPositions,i);
                        } catch (TreeStructureException e) {
                            e.getMessage();
                        }

Function addCircleWaypoints

private void addCircleWaypoints(TreeNode moveTreeNode, Pose pose, JointPositions jointPositions, int circleMoveChildPos) {
    //viaPoint
    WaypointNode viaWaypointNode = (WaypointNode) moveTreeNode.getChildren().get(circleMoveChildPos).getChildren().get(0).getProgramNode();
    waypointNodeConfigFactory = viaWaypointNode.getConfigFactory();
    WaypointNodeConfig newViaWaypointNodeConfig = createWaypointConfig(tmpViaPose, tmpViaJoints);
    viaWaypointNode.setConfig(newViaWaypointNodeConfig);

    //targetPoint
    WaypointNode targetWaypointNode = (WaypointNode) moveTreeNode.getChildren().get(circleMoveChildPos).getChildren().get(1).getProgramNode();
    waypointNodeConfigFactory = targetWaypointNode.getConfigFactory();
    WaypointNodeConfig newTargetWaypointNodeConfig = createWaypointConfig(pose, jointPositions);
    targetWaypointNode.setConfig(newTargetWaypointNodeConfig);
}

i was confused that adding another CircleMoveNode without WaypointNodeConfig already had defined viaPoint and endPoint - this only occurs because the created waypoint Nodes in the second CircleMoveNode have the same names. :frowning:

Thanks,
We will investigate!

1 Like

any news about this ? :slight_smile:

We have verified the behavior, and are working on a fix for this issue.

1 Like

This bug is fixed in PolyScope 3.7 and 5.1.