rf_custom_path

If you have not read the information explaining the custom path feature, then please refer to this page before reading onwards: https://rocketfarm.atlassian.net/wiki/spaces/PB/pages/899285339

This page gives a short overview of the variable rf_custom_path; and then a more in depth look at how the variable can be used in Pally:


In Short: rf_custom_path

rf_custom_path

A boolean value that instructs the program to skip the path planning calculations completely.

If set to True, then Pally will not calculate the robot’s path from the pickup position towards the target position on the pallet and back. You must therefore supply Pally with a customized path in both directions, i.e. from the pick position towards the pallet and back from the pallet to the waiting position. (See details in https://rocketfarm.atlassian.net/wiki/spaces/PB/pages/899285339 ).

Possible values

  • True

  • False

Example

In one of Pally’s callback, use the ‘Script’-node in Polyscope to assign a value to the rf_custom_path variable. The example shows how you can set the variable to True in the beforePallet-callback:

In Detail: rf_custom_path

The variable rf_custom_path instructs the program to skip the path planning calculations completely. Set the variable to True if you want to have full control over the robot motion. This can be especially useful in projects where the default path planning calculations would fail, or otherwise not desired.

Below, the use of rf_custom_pathis explored in two scenarios .

Customize Path for All Boxes

If you wish to override the path outlined by Pally for all boxes in the selected pattern, then simply set the rf_custom_path variable to True in the initial MoveJ node.

You must follow the steps outlined by https://rocketfarm.atlassian.net/wiki/spaces/PB/pages/899285339 to successfully use the custom path feature when rf_custom_path = True.

Customize Path for Some Boxes

If you need to handle exceptional box positions for some reason, e.g. where the default path planning calculations would fail, or otherwise not neeeded, just add rf_custom_path=True for specific box positions in the onNextTask callback. This will instruct the program to skip path planning calculations for the given positions only.

Example:

def CheckProblematicPosition(): if (PalletNr == 1 and ProductCount == 12): rf_custom_path = True else: rf_custom_path = False end end

An example of how to skip path planning calculations for box position 12 on the right pallet.

Adding CheckProblematicPosition() in the onNextTask callback will instruct the program to skip path planning calculations for box position on the right pallet. Modify the program as needed. Please note the else-branch where rf_custom_path is set back to False when the special conditions don't met.

Please note: You should not set rf_custom_path=True if you want to modify the robot motion in only one direction, i.e. from the pickup to the pallet or back from the pallet to the next pickup. You must override both directions when rf_custom_path is set to True.

Footnotes:

1PalletNr is either 1 or 2, where 1 is the right pallet and 2 is the left pallet.