Grip

The Grip component is essential for linking Movable Units (MUs) to components being moved by a drive system. It offers flexibility in how MUs are attached, either as rigid bodies or as sub-components, ensuring seamless integration with the drive's movement.

Fixing with Rigid-Body or as Sub-Component

  • Sub-Components: Grip can attach MUs as sub-components, which is the recommended way

  • Fixed Joints: Alternatively, MUs can be attached using Fixed Joints for a connection by physical joints.

Identifying the MU to grip

To grip a part, it must first be identified by assigning a Sensor to the "Part To Grip" parameter. Once Grip is activated, the MUs recognized by this sensor will be automatically attached.

Gripping MUs

Methods to Start Gripping MUs

  1. Directly Grip: Initiates gripping when the sensor detects a part.

  2. Pick Based on Another Sensor: Uses another sensor's trigger to start the grip action.

  3. Pick Based on Cylinder: Useful for modeling grippers, this method starts the pick action based on the position of a selected cylinder, either fully retracted or extended.

  4. Pick Based on Signals: Gripping actions can be controlled via PLC signals using boolean values:

    • Single Boolean: Toggle between picking (true) and placing (false) with one boolean.

    • Dual Boolean: Use separate booleans for picking and placing for clearer control.

    Use the OneBitControl property for single boolean control.

Placing MUs

MUs can be placed on other MUs in two ways.

To position Manufacturing Units (MUs) on other MUs or surfaces, you can employ physical behavior by simply releasing the picked MU.

Loading an MU means adding it as a child GameObject under another MU. This setup ensures that the child MU moves along with the parent MU, just like a part loaded onto another part in a real-world scenario. This relationship allows for synchronized movement, making it easier to simulate complex loading and unloading operations in virtual commissioning setups.

In this approach, ensure the Place Load On MU setting is false. However, be aware that MU attachment using this method may not be fully stable in the current release. As a more reliable alternative, we suggest setting Place Load On MU to true for placing MUs onto other MUs.

When Place Load On MU is set to true, it's necessary to specify an additional sensor, termed Place Load On MU Sensor, to identify the target MU for placement. This setup ensures that the placed MU becomes a sub-component of the identified MU, enhancing stability and precision. This relationship can be verified within the properties of the MU script.

Aligning MUs

For aligning Moveable Units (MUs) accurately, the features Pick Align With Object and Place Align With Object are utilized to ensure the picked and placed parts align with a specified position. By selecting any GameObject, the pivot point of the MU will match the pivot point of the chosen GameObject, including alignment of the center and all axes. This precise alignment occurs either before the object is attached or after it is placed, ensuring a seamless integration into the desired location.

Properties

PartToGrip Identifies the MU to be gripped. This must be assigned to a sensor.

DirectlyGrip If set to true, the MU is directly gripped when the sensor (PartToGrip) detects a part.

PickAlignWithObject If specified, aligns the MUs with this object before picking them (see above).

PlaceAlignWithObject If specified, aligns the MUs with this object after placing them.

ConnectToJoint Pysical Unity Joint to be used for gripping. Typically kept empty and only used in special cases where a joint should be used.

If set to false (default behavior), the MU is made a subcomponent under the Grip GameObject to ensure it is transported by the gripper. If set to true, you need to assign a Unity Joint, which will then be connected to the MU. For more details about Unity Joints, please refer to Unity's documentation on joints.

PickBasedOnSensor Picking starts when this sensor is occupied (optional).

PickBasedOnCylinder Picking starts when the cylinder is at its maximum or minimum position (optional).

PickOnCylinderMax If true, picking starts when the cylinder reaches its maximum.

NoPhysicsWhenPlaced If true, the object remains kinematic (no physics) when placed. This will for example let MUs not fall down due tue physics.

PlaceLoadOnMU If true, components are loaded onto an MU as a subcomponent when placed.

PlaceLoadOnMUSensor Defines the MU where picked MUs should be loaded when placed, based on a sensor.

Pick & Place Control

PickObjects Set to true to pick MUs identified by the sensor.

PlaceObjects Set to true to place the loaded MUs.

Events

EventMUGrip Unity event triggered for MU grip and ungrip actions. It passes the MU and true for grip, and the MU and false for ungrip.

PLC IOs

OneBitControl If true, the grip is controlled by a single bit. If false, it is controlled by two bits.

With OneBitControl, gripping and releasing the MU is managed with a single signal:

  • A positive flank (changing from false to true) will grip the MU.

  • A negative flank (changing from true to false) will release the MU.

With TwoBitControl, two separate signals are used to control the process:

  • The positive flank (changing from false to true) of SignalPick will pick the MU.

  • The positive flank of SignalPlace will place the MU.

In this setup, you require two signals to control the gripping process from a PLC.

SignalPick The signal to control picking.

SignalPlace The signal to control placing. Only used if OneBitControl is set to false.

PickedMUs

PickedMUs A list of currently picked MUs.

Please check the Realvirtual.io Class Reference for more information about the properties and methods of this component.

© 2022 realvirtual GmbH https://realvirtual.io - All rights reserved. No part of this publication may be reproduced, distributed, or transmitted in any form or by any means, including printing, saving, photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the publisher.

Last updated