External Move

You are currently viewing the documentation for the latest version (2.1.0). To access a different version, click the "Switch version" button located in the upper-right corner of the page.

■ If you are not sure which version of the product you are currently using, please feel free to contact Mech-Mind Technical Support.

Function

This Step obtains the target pose from the external service, Adapter, and then performs path planning and robot motion control in Mech-Viz. You can set JPs, TCP, and the object pose in the “External Move” Step.

Parameter Description

Move-Type Step Common Parameters

Send Waypoint

Selected by default, i.e., send the current waypoint to the receiver, such as the robot. Once deselected, the current waypoint will not be sent. However, the waypoint will remain in the planned path.

Try Continuously Running through Succeeding Non-Moves

Unselected by default. When non-move Steps, such as Visual Recognition, Set DO, Check DI, etc., are connected between move-type Steps, the sending of the waypoints will be interrupted, and the real robot will take a short pause, reducing the smoothness of running.

When this parameter is selected, the project will continue to run without waiting for the current move-type Step to complete execution, and therefore the robot can move in a smooth way without pauses. However, selecting this parameter may cause the execution of the Step to end prematurely.

Why will this feature cause the execution of the Step to end prematurely?

Mech-Viz will send multiple waypoints simultaneously to the robot when the project is running. When the currently returned JPs of the robot correspond to the last waypoint sent by Mech-Viz, Mech-Viz will assume that the robot has moved to the last waypoint.

For example, there are 10 move-type Steps in a path, and the pose of the 5th move-type Step is the same as that of the last move-type Step. When the robot moves at a low speed, the current JPs will be sent to Mech-Viz after the robot moves to the 5th waypoint. Since the poses of the 5th move-type Step and the last move-type Step are the same, Mech-Viz may mistakenly determine that the robot has reached all waypoints and prematurely ends the command.

Do Not Check Collision with Placed Target Object

Once Detect collisions on target objects is enabled in the Collisions panel, selecting this parameter will disable the collision detection between the robot, robot tool, and placed target objects. Typically, this parameter is selected in the move-type Step following the Step whose Pick or place is set to Place to avoid false collision detections.

Application Example:

The TCP of a depalletizing vacuum gripper is usually set inside the model rather than on the surface of the vacuum gripper. As a result, when picking a box, the vacuum gripper model may overlap with the box model. However, the software does not detect collisions between the end tool and the picked target object, so no collision alarm will be triggered during picking. Once the robot places the box down, the picked box model becomes a scene model, and the software will start to detect the collision between the end tool and the box’s scene model, triggering a collision alarm and preventing the completion of the palletizing task.

Once this parameter is selected, no collision between the robot, end tool, and the model of the placed target object will be detected, and the above issue will be resolved.

Point Cloud Collision Detection Mode

Usually, Auto can be selected, i.e., directly apply the Point cloud collision detection settings in the Collisions panel. For the Steps between picking and placing, Check collision can typically be selected.

Auto

Default setting. Once Detect collisions on target objects is enabled in the Collisions panel, only point cloud collisions of the “Vision Move” Step and the “Relative Move” Steps that depend on the “Vision Move” Step will be detected, while other move-type Steps will not be detected.

Do not check collision

Point cloud collisions of all move-type Steps will not be detected.

Check collision

Point cloud collisions of all move-type Steps will be detected.

Ignore Target Object Symmetry

This parameter is only visible when the Waypoint type of the move-type Step is set to Target object pose.

The target object symmetry here refers to the Rotational symmetry of held target object predefined in the target object editor during collision model setup.

None

Default setting, i.e., do not ignore symmetry on any axis.

Around target object frame Z axis

Only ignore symmetry around the Z-axis.

Around target object frame X&Y axes

Ignore symmetry around the X-axis and Y-axis.

Around all axes

Once the symmetry around all axes is ignored, the robot will place the object strictly according to the target object pose.

When the move-type Steps are used to place the target objects, the consistency of the placing poses of the target objects cannot be guaranteed once the rotational symmetry is applied. If you want all target objects to be placed strictly according to a specific rule, ignore the symmetry of the target object around all axes.
Plan Failure Out Port

Once this parameter is selected, a Plan failure exit port will be added to the Step.

If the path planning of the current Step succeeds, the workflow will continue along the Success exit port. If the path planning of the current Step fails, the workflow will proceed along the Plan failure exit port. If multiple move-type Steps with “Plan failure” exit ports display in the same plan history entry, the workflow will proceed along the “Plan failure” exit port of the first move-type Step.

Held Target Object Collision Detection Settings

Before configuring this parameter group, please go to the Collisions panel and enable Detect collisions on target objects.

Disabling collision detection will increase the collision risks. Please select the following parameters with caution.
Do Not Check Collision with Scene Objects

Once this parameter is selected, collisions between the held target object and the scene model will not be detected, reducing the computational load of collision detection in the software, speeding up path planning, and optimizing the overall cycle time.

Do Not Check Collision with Robot

Once this parameter is selected, collisions between the held target object and the robot will not be detected, reducing the computational load of collision detection in the software, speeding up path planning, and optimizing the overall cycle time.

Do Not Check Collision with Point Cloud

Once Point cloud collision detection is enabled in the Collisions panel, selecting this parameter will stop detecting collisions between the held target object and the point cloud, further reducing the software’s computational load, shortening path planning time, and enhancing the overall cycle time.

Service Name

The Adapter’s external service name registered in the communication component, which is used to connect the interface of this Step and send waypoints. Please make sure that the service name is the same as the Adapter name.

Use JPs from External Service

Unselected by default. The software will use the previous waypoint as the initial position when planning the path. Once this option is selected, the initial position for path planning will be the joint positions obtained from external services. This function is usually used in the scenarios where Mech-Viz is not used for master-control of the robot.

Interface Example

class CustomOuterMoveService(OuterMoveService):
    def gather_targets(self, di, jps, flange_pose):
        self.add_target(self.move_target_type, [0.189430,-0.455540,0.529460,-0.079367,0.294292,-0.952178,0.021236])
python

The CustomOuterMoveService class is developed based on the OuterMoveService class. self.move_target_type indicates the target type. Valid values: 0, 1, and 2. A value of 0 indicates the JP type, a value of 1 indicates the TCP type, and a value of 2 indicates the object pose type. Mech-Viz calls getMoveTargets() when running an External Move Step. Different External Move Steps can be distinguished by their service names.

def _register_service(self):
   self.outer_move_service = CustomOuterMoveService()
   self._outer_move_server, port = register_service(outer_move_service, port)
python
If self.move_target_type is set to 2, you must place a Step that defines the picking before the External Move Step. Otherwise, the following error message will pop up: - The posture of the object is invalid when the object is not held!.

We Value Your Privacy

We use cookies to provide you with the best possible experience on our website. By continuing to use the site, you acknowledge that you agree to the use of cookies. If you decline, a single cookie will be used to ensure you're not tracked or remembered when you visit this website.