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
Directly Grip: Initiates gripping when the sensor detects a part.
Pick Based on Another Sensor: Uses another sensor's trigger to start the grip action.
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.
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
totrue
) will grip the MU.A negative flank (changing from
true
tofalse
) will release the MU.
With TwoBitControl, two separate signals are used to control the process:
The positive flank (changing from
false
totrue
) 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